Menu
CoddyTech

Roches en dérive

Fait partie de la section Projets du Journey Godot de Coddy. Leçon 14 sur 33.

Viennent ensuite les rochers. Un rocher est une scène, rock.tscn, et rock.gd le déplace. Il dérive à sa velocity, tourne lentement et réapparaît de l’autre côté comme le vaisseau. Un rocher est gros, alors il réapparaît à -30 et 670 au lieu de 0 et 640. Ainsi, il quitte entièrement l’écran avant de revenir.

main.gd crée les rochers avec une fonction, pour que toute la création soit regroupée au même endroit :

func spawn_rock(where, velocity):
	var rock = ROCK.instantiate()
	rock.position = where
	rock.velocity = velocity
	add_child(rock)

Dans _ready, appelle-la quatre fois avec une boucle. Chaque rocher reçoit une position aléatoire sur le bord supérieur et une vitesse aléatoire :

spawn_rock(Vector2(randf_range(0, 640), 0), Vector2(randf_range(-90, 90), randf_range(40, 90)))
challenge icon

Défi

Difficile
  1. Dans rock.gd, ajoute _physics_process. Déplace le rocher de velocity * delta et ajoute 0.5 * delta à rotation.
  2. Fais réapparaître le rocher de l’autre côté : au-delà de -30 ou de 670 sur x, déplace-le de 700 dans l’autre sens. Au-delà de -30 ou de 390 sur y, déplace-le de 420.
  3. Dans main.gd, ajoute const ROCK = preload("res://rock.tscn") et la fonction spawn_rock(where, velocity). Fais apparaître 4 rochers dans _ready, comme indiqué.

Essayez vous-même

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
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Projets

Entraînez-vous par vous-même : Playground Godot