Skor dan Kemenangan
Termasuk bagian Proyek dalam perjalanan Godot di Coddy. Pelajaran 17 dari 33.
Batu besar bernilai 20 poin dan batu kecil bernilai 50 poin. _on_rock_broken mengetahui ukurannya, jadi fungsi itu menambahkan poin dan memperbarui $HUD/Score.
Kamu menang saat tidak ada batu yang tersisa. Mulai hitungan dari 4. Kurangi satu untuk setiap batu yang pecah, dan tambahkan dua saat batu besar terbelah:
if rock.size == 2:
rocks_left += 2
rocks_left -= 1
if rocks_left == 0:
$HUD/Message.text = "You Win!"
get_tree().paused = trueHitung dua batu baru di sini, bukan di spawn_rock. spawn_rock berjalan di akhir frame, jadi hitungannya akan mencapai nol sebelum dua batu kecil terakhir muncul.
Batu, peluru, dan kapal bersifat Pausable. Main bersifat Always.
Tantangan
SulitDi main.gd:
- Tambahkan
var score = 0dan tampilkanScore: 0di awal. - Batu besar yang hancur menambah skor 20, sedangkan batu kecil menambah 50. Tampilkan skor baru.
- Tambahkan
var rocks_left = 4dan hitung nilainya seperti yang ditunjukkan. Saat nilainya nol, tampilkanYou Win!dan jeda permainan.
Coba sendiri
extends Node2D
const ROCK = preload("res://rock.tscn")
func _ready():
for i in 4:
spawn_rock(Vector2(randf_range(0, 640), 0), Vector2(randf_range(-90, 90), randf_range(40, 90)), 2)
func spawn_rock(where, velocity, size):
var rock = ROCK.instantiate()
rock.position = where
rock.velocity = velocity
rock.size = size
rock.broken.connect(_on_rock_broken)
add_child(rock)
func _on_rock_broken(rock):
if rock.size == 2:
spawn_rock.call_deferred(rock.position, rock.velocity.rotated(0.8) * 1.5, 1)
spawn_rock.call_deferred(rock.position, rock.velocity.rotated(-0.8) * 1.5, 1)
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Proyek
1Proyek: Breakout
Pemukul BreakoutJaga Pemukul Tetap di Layar4Proyek: Penjelajah Ruang Bawah Tanah
Jelajahi Ruang Bawah TanahAmbil Kunci2Proyek: Penembak Asteroid
Putar PesawatNyalakan MesinLatihan sendiri: Playground Godot