Duvarı Yık
Coddy'nin Godot Journey'sinin Projeler bölümünün bir parçası. Ders 9 / 33.
Son adım, kazanmanın bir yoludur: tüm tuğlaları kır.
Kalan tuğlaları say. 40'tan başla ve her brick_broken geldiğinde bir azalt. Sıfırda duvar temizlenir:
bricks_left -= 1
if bricks_left == 0:
$HUD/Message.text = "You Win!"
get_tree().paused = trueSıfırı kontrol etmeden önce bir azalt. Önce kontrol edersen, son tuğlada kontrol 1'i görür ve 0'ı asla görmez.
Game Over ekranındaki Enter tuşu burada da yeni bir oyun başlatır. Breakout'un tamamlandı.
Görev
Ortamain.gd dosyasında:
var bricks_left = 40ekleyin.- Kırılan her tuğla sayıyı bir azaltır.
- Hiç tuğla kalmadığında,
$HUD/MessageiçindeYou Win!gösterin ve oyunu duraklatın.
Kendin dene
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)]
var score = 0
var lives = 3
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)
$Ball.brick_broken.connect(_on_brick_broken)
$HUD/Score.text = "Score: 0"
$Ball.missed.connect(_on_missed)
$HUD/Lives.text = "Lives: 3"
func _process(delta):
if get_tree().paused and Input.is_action_just_pressed("action"):
get_tree().paused = false
get_tree().reload_current_scene()
func _on_brick_broken():
score += 10
$HUD/Score.text = "Score: %d" % score
func _on_missed():
lives -= 1
$HUD/Lives.text = "Lives: %d" % lives
if lives == 0:
$HUD/Message.text = "Game Over"
get_tree().paused = true
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Projeler bölümündeki tüm dersler
Kendi başına pratik yap: Godot playground