Menu
CoddyTech

패들에 튕기기

Coddy Godot 여정의 프로젝트 섹션에 포함된 레슨. 33개 중 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를 곱하세요.

challenge icon

챌린지

중급

ball.gd에서 공이 패들에 튕기도록 만드세요:

  1. _ready에서 body_entered를 _on_body_entered에 연결하세요.
  2. 몸체의 이름이 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
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

프로젝트의 모든 레슨

직접 연습해 보세요: Godot 플레이그라운드