Menu
CoddyTech

Wynik w Breakout

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

Każda cegła jest warta 10 punktów. Piłka wie, kiedy ją rozbija, a main.gd prowadzi punktację. Łączy je sygnał. Piłka emituje go za każdą rozbitą cegłę, a główny skrypt 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 podłą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 elemencie 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

Zdobywaj 10 punktów za każdą cegłę.

  1. W pliku ball.gd dodaj signal brick_broken i emituj ten sygnał, gdy cegła pęknie.
  2. W pliku main.gd dodaj var score = 0 i wyświetl Score: 0 w $HUD/Score w funkcji _ready.
  3. Połącz $Ball.brick_broken z funkcją, która dodaje 10 i wyświetla wynik.

Naciśnij „Graj” i rozbij cegłę: etykieta pokaże Score: 10. Następnie naciśnij „Sprawdź”.

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)

Wszystkie lekcje w sekcji Projekty

Poćwicz samodzielnie: Edytor online Godot