Menu
CoddyTech

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.

challenge icon

Tantangan

Sedang

Di _on_body_entered, tambahkan elif untuk body dalam grup bricks:

  1. Panggil body.smash().
  2. 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)
quiz iconUji dirimu

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

Semua pelajaran di Proyek

Latihan sendiri: Playground Godot