패들에 튕기기
Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 36개 중 4번째.
공이 패들을 통과합니다. 공은 Area2D입니다. 공이 패들처럼 어떤 물체에 닿으면 body_entered 신호가 발생합니다. 그 물체가 패들이면 공을 위로 향하게 하세요:
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if body.name == "Paddle":
velocity.y = -abs(velocity.y)abs()는 마이너스 기호를 없애므로 -abs(velocity.y)는 항상 위를 향합니다. 두 번째로 닿아도 공이 아래로 되돌아가지 않습니다.
플레이어가 공의 방향을 조준할 수 있도록, 공이 맞은 위치에 따라 velocity.x를 설정하세요. position.x - body.position.x는 패들 중앙에서 공까지의 거리입니다. 왼쪽 절반에서는 음수이고 오른쪽 절반에서는 양수입니다. 여기에 5를 곱하세요.
챌린지
중급공이 패들에 맞고 튕기게 하세요.
ball.gd에서_ready안의body_entered를_on_body_entered에 연결하세요.- 몸체의 이름이
Paddle이면velocity.x를(position.x - body.position.x) * 5로,velocity.y를-abs(velocity.y)로 설정하세요.
‘플레이’를 누르고 공을 받아 보세요. 공이 맞은 쪽을 향해 위로 날아갑니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
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
프로젝트의 모든 레슨
직접 연습해 보세요: Godot 플레이그라운드