正如标题所说,我正在尝试使用 pygame 库在 python 中构建一个 RPG 引擎。已经能够构建一个简单的映射引擎,我决定尝试创建玩家对象。目前我有两个类,gameObjects 和一个主类。我已经能够构建一个在“网格表面”中移动的玩家对象。我已经使用以下代码完成了此操作:
def move(self):
self.start = time.time()
self.timeElapsed = time.time()-self.start
while (self.timeElapsed < .1):
self.timeElapsed = time.time()-self.start
self.x += self.movex
self.y += self.movey
这允许玩家以我选择的任何速度移动,并在游戏循环期间被调用:
for event in pygame.event.get():
(code to make the controls, basically modifies the players movex or movey)
player.move()
这一切都很好,但我需要的下一步是让玩家在空间之间“滑动”,也就是说,他们不会简单地跳到下一个空间,而是在空间之间平滑移动。我尝试了一些愚蠢的事情,但似乎无法找出正确的方法来解决这个问题。谢谢!
编辑:我忘记提到的相当重要的事情是,在显示播放器时,我将它们的 x 和 y 乘以 32,这就是创建 32x32 网格的原因。这是代码:
screen.blit(player.img, (player.x*32, player.y*32))