Годо ИИ понг движение неуклюже - PullRequest
0 голосов
/ 20 февраля 2020

Я новичок в Godot и делаю игру в понг на практике, я пытался создать ИИ, и он работает, но движение очень неуклюже, когда мяч приближается к веслу, вот мой код:

var direction: = Vector2(0.0,0.0)
var velocity:= Vector2(0.0,0.0)

Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass

Called every frame. 'delta' is the elapsed time since the previous frame.
func physicsprocess(delta: float) -> void:
position.x = 135
var ball = getparent().getnode("ball").position
if ball.y < position.y:
direction.y = -1
velocity = speed * direction
moveandslide(velocity)
elif ball.y > position.y:
direction.y = 1
velocity = speed * direction
moveandslide(velocity)```

1 Ответ

0 голосов
/ 21 февраля 2020

что произойдет, если вы не повторите следующий код?

velocity = speed * direction
moveandslide(velocity)

Кроме того, я предполагаю, что скорость весла выше, чем скорость мяча, и в этом случае вы получит эффект заикания, когда лопатка закроется на шаре и создаст это л oop:

пропускает мяч, весло меняет направление движения мяча, мяч пропускает весло, меняет направление ... и так далее.

Я не проверял это, но если вы немного измените свой код, это может решить проблему:

if ball.y < (position.y - speed): и elif ball.y > (position.y + speed)

Как я уже сказал, у меня нет не проверял это, так что вам, возможно, придется изменить знаки, но это, мы надеемся, должно остановить судороги.

...