Rebata na raquete
Parte da seção Projetos do Journey de Godot da Coddy. Lição 4 de 33.
A bola atravessa a raquete. A bola é uma Area2D. Seu sinal body_entered é emitido quando um corpo, como a raquete, toca nela. Faça a bola subir quando esse corpo for a raquete:
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if body.name == "Paddle":
velocity.y = -abs(velocity.y)abs() remove o sinal de menos, então -abs(velocity.y) sempre aponta para cima. Um segundo toque não pode fazer a bola voltar para baixo.
Para permitir que o jogador mire, defina velocity.x com base no ponto em que a bola bate. position.x - body.position.x é a distância da bola até o meio da raquete. É negativo na metade esquerda e positivo na direita. Multiplique por 5.
Desafio
MédioEm ball.gd, faça a bola quicar na raquete:
- Conecte
body_entereda_on_body_enteredem_ready. - Quando o nome do corpo for
Paddle, definavelocity.xcomo(position.x - body.position.x) * 5evelocity.ycomo-abs(velocity.y).
Experimente você mesmo
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
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Projetos
1Projeto: Breakout
Raquete do BreakoutMantenha a raquete na tela4Projeto: Explorador de Masmorras
Percorra a masmorraPegue a chave2Projeto: Jogo de Tiro com Asteroides
Gire a naveAcione o motorPratique por conta própria: Playground de Godot