Menu
CoddyTech

Skor Breakout

Termasuk bagian Proyek dalam perjalanan Godot di Coddy. Pelajaran 7 dari 33.

Setiap batu bata bernilai 10 poin. Bola mengetahui saat menghancurkan satu batu bata, dan main.gd menyimpan skor. Sebuah sinyal menghubungkan keduanya. Bola memancarkan sinyal itu untuk setiap batu bata yang dihancurkan, dan skrip utama mendengarkannya.

Di ball.gd, deklarasikan sinyal di bagian atas dan pancarkan di sebelah smash():

signal brick_broken

# di _on_body_entered, setelah body.smash():
brick_broken.emit()

Di main.gd, hubungkan sinyalnya di _ready dan tambahkan poin di fungsi yang dipanggilnya:

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

Label berada di dalam CanvasLayer bernama HUD. Atur juga nilainya menjadi Score: 0 di _ready, atau label akan tetap kosong sampai batu bata pertama dihancurkan.

challenge icon

Tantangan

Sedang
  1. Di ball.gd, tambahkan signal brick_broken dan emit sinyal tersebut saat brick hancur.
  2. Di main.gd, tambahkan var score = 0, hubungkan $Ball.brick_broken ke fungsi yang menambahkan 10 dan menampilkan Score: 10, Score: 20, ... di $HUD/Score.
  3. Tampilkan Score: 0 saat game dimulai.

Coba sendiri

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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Proyek

Latihan sendiri: Playground Godot