Menu
CoddyTech

Wynik w Breakout

Część sekcji Projekty ścieżki Godot w Coddy. Lekcja 7 z 33.

Każda cegła jest warta 10 punktów. Piłka wie, kiedy ją rozbije, a main.gd prowadzi wynik. Łączy je sygnał. Piłka emituje go za każdą rozbitą cegłę, a skrypt główny nasłuchuje.

W pliku ball.gd zadeklaruj sygnał na górze i wyemituj go obok smash():

signal brick_broken

# w _on_body_entered, po body.smash():
brick_broken.emit()

W pliku main.gd połącz go w _ready i dodaj punkty w wywoływanej przez niego funkcji:

func _on_brick_broken():
	score += 10
	$HUD/Score.text = "Score: %d" % score

Etykieta znajduje się w obiekcie CanvasLayer o nazwie HUD. Ustaw ją również na Score: 0 w _ready, bo inaczej pozostanie pusta aż do rozbicia pierwszej cegły.

challenge icon

Wyzwanie

Średni
  1. W pliku ball.gd dodaj signal brick_broken i emituj ten sygnał, gdy klocek zostanie rozbity.
  2. W pliku main.gd dodaj var score = 0, połącz $Ball.brick_broken z funkcją, która dodaje 10 i wyświetla Score: 10, Score: 20, ... w $HUD/Score.
  3. Po uruchomieniu gry wyświetl Score: 0.

Spróbuj swoich sił

extends Node2D

const BRICK = preload("res://brick.tscn")
const COLORS = [Color(1, 0.42, 0.42), Color(1, 0.78, 0.34), Color(0.49, 0.95, 0.75), Color(0.369, 0.635, 1), Color(0.75, 0.82, 0.95)]

func _ready():
	for row in 5:
		for column in 8:
			var brick = BRICK.instantiate()
			brick.position = Vector2(68 + column * 72, 60 + row * 26)
			brick.color = COLORS[row]
			add_child(brick)
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Projekty

Poćwicz samodzielnie: Edytor online Godot