Menu
CoddyTech

Pantulkan Bola dari Pemukul

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

Bola menembus paddle. Bola adalah Area2D. Sinyal body_entered-nya aktif saat sebuah body, seperti paddle, menyentuhnya. Arahkan bola ke atas saat body tersebut adalah paddle:

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	if body.name == "Paddle":
		velocity.y = -abs(velocity.y)

abs() menghilangkan tanda minus, jadi -abs(velocity.y) selalu mengarah ke atas. Sentuhan kedua tidak dapat mengirim bola kembali ke bawah.

Agar pemain dapat membidik, atur velocity.x berdasarkan titik tempat bola mengenai paddle. position.x - body.position.x adalah jarak bola dari bagian tengah paddle. Nilainya negatif di separuh bagian kiri dan positif di separuh bagian kanan. Kalikan dengan 5.

challenge icon

Tantangan

Sedang

Di ball.gd, buat bola memantul dari paddle:

  1. Hubungkan body_entered ke _on_body_entered di _ready.
  2. Saat nama body adalah Paddle, atur velocity.x menjadi (position.x - body.position.x) * 5 dan velocity.y menjadi -abs(velocity.y).

Coba sendiri

extends Area2D

var velocity = Vector2(110, -280)

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

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

Semua pelajaran di Proyek

Latihan sendiri: Playground Godot