Hancurkan Balok
Termasuk bagian Proyek dalam perjalanan Godot di Coddy. Pelajaran 6 dari 33.
Bola melewati batu bata. Batu bata juga merupakan body, dan masing-masing berada dalam grup bricks. is_in_group membedakan batu bata dari paddle.
Setiap batu bata memiliki fungsi smash(). Fungsi ini memecahkan batu bata menjadi percikan dan menghapusnya.
elif body.is_in_group("bricks"):
body.smash()Kemudian bola memantul menjauhi bagian tengah batu bata: ke bawah jika bola berada lebih rendah daripada batu bata, ke atas jika bola berada lebih tinggi. Bola bisa mengenai batu bata dari atas setelah melewati celah.
if position.y > body.position.y:
velocity.y = abs(velocity.y)
else:
velocity.y = -abs(velocity.y)Jangan membalik velocity.y. Jika bola menyentuh dua batu bata sekaligus, dua kali pembalikan akan saling meniadakan.
Tantangan
SedangDi _on_body_entered, tambahkan elif untuk body dalam grup bricks:
- Panggil
body.smash(). - Pantulkan bola ke bawah jika posisinya di bawah bagian tengah brick, dan ke atas jika posisinya di atas.
Coba sendiri
extends Area2D
var velocity = Vector2(110, -280)
func _ready():
body_entered.connect(_on_body_entered)
func _physics_process(delta):
position += velocity * delta
if position.x < 8 or position.x > 632:
velocity.x = -velocity.x
if position.y < 42:
velocity.y = -velocity.y
func _on_body_entered(body):
if body.name == "Paddle":
velocity.x = (position.x - body.position.x) * 5
velocity.y = -abs(velocity.y)
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 KunciLatihan sendiri: Playground Godot