I Используйте следующий код, чтобы определить, должен ли спрайт идти вверх или вниз, и получить ответ
If (pos.Y + 100) >= Sprite.BottomY Then
Going_up = True
pos.Y = Sprite.BottomY - 130
End If
If pos.Y <= Sprite.TopY Then
Going_up = False
pos.Y = Sprite.TopY - 1
Vel.Y = 3
End If
затем
If Going_up Then
Vel.Y -= CSng(gameTime.ElapsedGameTime.TotalMilliseconds / 40)
pos.Y -= Vel.Y
Else
Vel.Y += CSng(gameTime.ElapsedGameTime.TotalMilliseconds / 40)
pos.Y += Vel.Y
End If
Sprite.velocity = Vel
Sprite.position = pos
но это довольно ужасно. Он работает только тогда, когда спрайт начинается сверху, а когда я хочу изменить BottomY и TopY, он просто начинает глючить. Что лучше определить, должен ли спрайт идти вверх или вниз?