Melhorando a Bola
Antes de fazermos o jogador lançar a bola, precisamos de uma bola decente para ser lançada. Por isso, vamos deixar ela bem melhor e digna de lançamentos:
-
const MAX_SPEED
: velocidade maxima da bola (quando ela está no menor tamanho) -
const MAX_BOUNCES
: quantas vezes a bola pode bater na parede antes de quebrar -
var launched
: booleana que diz se a bola foi lançada (e deve se mover) ou não. -
var direction
: vetor normal da direção de movimento da bola -
var speed
: velocidade atual da bola -
var hits
: quantas paredes já foram batidas -
Movimentação: No
_physics_process(delta)
, a bola deve se mover no sentido dadirection
com velocidadespeed
. Caso ela acerte uma parede, ela deve realizar uma colisão completamente elástica e aumentar ohits
. Caso o número de hits seja igual aMAX_BOUNCES
, ela deve quebrar (queue_free
).
Dicas:
- Formula de colisão elastica:
direction = direction - 2*(direction.dot(collision.normal))*collision.normal
- Use
move_and_collide
.