在过去的几年里,我编写了一些 c++ 和 java 代码,现在我开始使用 python。目标是制作游戏。然而,我注意到,在玩家左右移动的基本动画部分,我的左侧“速度”比右侧“速度”快。尽管我的“速度”值完全相同。
更新功能:
def update(self,dt,game):
last=self.rect.copy()
self.time+=dt
if self.left:
self.rect.x-=300*dt
if self.right:
self.rect.x+=300*dt
我注意到如果我将左侧速度更改为 250,而不是 300,它将运行相同。例如,如果我同时按下左右键,玩家将停留在完全相同的位置。但是,如果我的左右速度都为 300。玩家将缓慢地向左移动。
我的游戏循环:
while 1:
dt=clock.tick(60)
if dt>1000/60.0:
dt=1000/60.0
for event in pygame.event.get():
if event.type==pygame.QUIT:
return
if event.type==pygame.KEYDOWN and event.key==pygame.K_ESCAPE:
return
if event.type==pygame.KEYDOWN and event.key==pygame.K_LEFT:
self.player.left=True
self.player.image=self.player.leftimages[1]
if event.type==pygame.KEYDOWN and event.key==pygame.K_RIGHT:
self.player.right=True
self.player.image=self.player.rightimages[1]
if event.type==pygame.KEYUP and event.key==pygame.K_LEFT:
self.player.left=False
self.player.image=self.player.leftimages[0]
if event.type==pygame.KEYUP and event.key==pygame.K_RIGHT:
self.player.right=False
self.player.image=self.player.rightimages[0]
self.tilemap.update(dt/1000.0,self)
screen.fill((0,0,0))
self.tilemap.draw(screen)
pygame.display.update()
我正在使用 Richard Jones 的 tmx 库来导入我在平铺地图编辑器中制作的地图。我希望这是足够的信息来回答我奇怪的问题。我问过我的另一个编程朋友,他觉得很奇怪。
某些代码可能已关闭,因为我刚刚从包含更多内容的原始代码中复制粘贴。但我已经提取了控制运动的最基本部分。
感谢您的时间!