我正在尝试在小行星类游戏中实现二维物理。我在窗口边界设置了碰撞边界。在
然而,当我把我的飞船精灵撞到一个边界(并反转x轴或y轴的适当速度),我偶尔会在移动时遇到故障。飞船会暂时跳转,但如果我按住移动键足够长的时间,它通常会自行修复。在
问题是这种故障是显而易见的。在
相关规范章节:
#update velocity
def velocity(self, speed):
self.vx += math.sin(math.radians(self.angle)) * speed
self.vy += math.cos(math.radians(self.angle)) * speed
magnitude = math.sqrt(self.vx*self.vx + self.vy*self.vy)
if magnitude > self.maxvel:
self.vx *= 4/magnitude
self.vy *= 4/magnitude
if self.speed >= self.maxvel:
self.speed = self.maxvel
if self.speed <= -self.maxvel:
self.speed = -self.maxvel
我的移动代码:
^{pr2}$我的完整代码在这里:http://pastebin.com/19rHq97R要运行只需要2个映像,您可以使用我猜测的任何东西。在
关于速度的问题,我想不出,关于速度的问题。任何洞察力都值得赞赏。在
编辑:我又做了些调查。我想知道突然的跳跃是不是因为我没有任何加速度程序。http://pastebin.com/vFy9tjyN我的终端日志摘录。我从程序中打印出相关变量。在
尝试以下操作:
我认为这会更稳定,它总是对我有效的。
相关问题 更多 >
编程相关推荐