Rochas à Deriva
Parte da seção Projetos do Journey de Godot da Coddy. Lição 16 de 36.
As rochas precisam se mover. rock.gd faz cada rocha se deslocar com sua velocity, girar lentamente e dar a volta na tela, como a nave.
Uma rocha é grande, então ela dá a volta em -30 e 670, em vez de 0 e 640. Assim, ela sai completamente da tela antes de voltar. O salto é de 700, a largura dessa faixa mais larga:
if position.x > 670:
position.x -= 700A borda esquerda e as bordas superior e inferior funcionam da mesma maneira, com -30, 390 e um salto de 420.
Desafio
DifícilFaça as rochas flutuarem, girarem e reaparecerem do outro lado.
- Em
rock.gd, adicione_physics_process: mova usandovelocity * deltae some0.5 * deltaarotation. - Ao passar de
-30ou670em x, mova-a700na direção oposta. - Ao passar de
-30ou390em y, mova-a420na direção oposta.
Pressione “Jogar”: as rochas atravessam a tela girando e voltam. Depois, “Verificar”.
Experimente você mesmo
extends Area2D
var velocity = Vector2.ZERO
# Bursts into dust where the rock is. Call it when the rock breaks.
func burst():
var dust = CPUParticles2D.new()
dust.position = position
dust.one_shot = true
dust.explosiveness = 1.0
dust.amount = 20
dust.lifetime = 0.7
dust.spread = 180.0
dust.gravity = Vector2.ZERO
dust.initial_velocity_min = 30.0
dust.initial_velocity_max = 120.0 * scale.x
dust.scale_amount_min = 2.0
dust.scale_amount_max = 5.0
dust.color = Color(0.75, 0.82, 0.95)
dust.finished.connect(dust.queue_free)
get_parent().add_child(dust)
dust.emitting = true
Todas as lições de Projetos
1Projeto: Breakout
Raquete do BreakoutMantenha a raquete na tela4Projeto: Explorador de Masmorras
Percorra a masmorraPegue a chave2Projeto: Jogo de Tiro de Asteroides
Gire a NaveLigue o MotorPratique por conta própria: Playground de Godot