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)))Défi
Difficile- Dans
rock.gd, ajoute_physics_process. Déplace le rocher develocity * deltaet ajoute0.5 * deltaàrotation. - 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 sury, déplace-le de 420. - Dans
main.gd, ajouteconst ROCK = preload("res://rock.tscn")et la fonctionspawn_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
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
2Projet : jeu de tir d’astéroïdes
Faire tourner le vaisseauMettre le moteur en marcheEntraînez-vous par vous-même : Playground Godot