Menu
CoddyTech

Rury na czas

Część sekcji Projekty ścieżki Godot w Coddy. Lekcja 24 z 36.

Następne są rury. Rura to scena pipe.tscn: górna i dolna część z przerwą między nimi. W pipe.gd przesuwa się w lewo z prędkością SPEED pikseli na sekundę. Gdy minie lewą krawędź, usuwa się, dzięki czemu stare rury się nie gromadzą:

position.x -= SPEED * delta
if position.x < -60:
	queue_free()

Scena zawiera Timer o nazwie PipeTimer, który uruchamia się co 1.6 sekundy. W main.gd podłącz jego sygnał timeout i utwórz rurę za prawą krawędzią:

func _on_pipe_timer_timeout():
	var pipe = PIPE.instantiate()
	pipe.position = Vector2(700, 180)
	$Pipes.add_child(pipe)

Godot rysuje węzły w kolejności drzewa. Pipes znajduje się przed Ground, więc podłoże zasłania dolną część każdej rury.

challenge icon

Wyzwanie

Średni

Przesyłaj rury przez ekran.

  1. W pliku pipe.gd dodaj const SPEED = 160. Przesuwaj rurę w lewo w każdej klatce fizyki i usuwaj ją, gdy position.x będzie mniejsze niż -60.
  2. W pliku main.gd dodaj const PIPE = preload("res://pipe.tscn") i podłącz $PipeTimer.timeout.
  3. Przy każdym upływie czasu utwórz rurę w punkcie (700, 180) w węźle Pipes.

Naciśnij „Graj”: rury będą wsuwać się z prawej strony. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

extends Node2D

func _ready():
	pass

Wszystkie lekcje w sekcji Projekty

Poćwicz samodzielnie: Edytor online Godot