Menu
CoddyTech

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 -= 700

El borde izquierdo y la parte superior e inferior funcionan igual, con -30, 390 y un salto de 420.

challenge icon

Desafío

Difícil

Haz que las rocas floten, giren y reaparezcan por el otro lado.

  1. En rock.gd, añade _physics_process: muévelas mediante velocity * delta y suma 0.5 * delta a rotation.
  2. Si pasan de -30 o 670 en x, muévelas 700 en la dirección opuesta.
  3. Si pasan de -30 o 390 en y, muévelas 420 en 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

Practica por tu cuenta: Playground de Godot