Rocas a la deriva
Parte de la sección Proyectos del Journey de Godot de Coddy. Lección 16 de 36.
Las rocas deben moverse. rock.gd desplaza cada roca según su velocity, la hace girar lentamente y la hace reaparecer al otro lado, como a la nave.
Una roca es grande, así que reaparece al otro lado en -30 y 670 en lugar de 0 y 640. De ese modo, sale completamente de la pantalla antes de volver a aparecer. El salto es de 700, el ancho de esa franja más amplia:
if position.x > 670:
position.x -= 700El borde izquierdo y la parte superior e inferior funcionan igual, con -30, 390 y un salto de 420.
Desafío
DifícilHaz que las rocas floten, giren y reaparezcan por el otro lado.
- En
rock.gd, añade_physics_process: muévelas mediantevelocity * deltay suma0.5 * deltaarotation. - Si pasan de
-30o670en x, muévelas700en la dirección opuesta. - Si pasan de
-30o390en y, muévelas420en la dirección opuesta.
Pulsa «Jugar»: las rocas dan vueltas por la pantalla y regresan. Después, pulsa «Comprobar».
Pruébalo tú mismo
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 las lecciones de Proyectos
2Proyecto: Disparador de asteroides
Gira la naveEnciende el motorPractica por tu cuenta: Playground de Godot