这是我使用pygame库在python中使用简单平台游戏的代码片段:
def animate(self):
if self.jumping and not self.onplatform:
if self.small:
self.image = self.jumpingimage_small
else:
self.image = self.jumpingimage
elif (self.left or self.right) and not self.small:
self.counter +=1
if self.counter == 1:
self.image = self.walkingimage[1]
elif self.counter == 5:
self.image = self.walkingimage[2]
elif self.counter == 9:
self.image = self.walkingimage[3]
elif self.counter == 13:
self.counter = 0
elif not (self.left or self.right):
if not self.small:
self.image = self.normalimage
else:
self.image = self.smallimage
if self.facing == "left":
self.image = pygame.transform.flip(self.image,True,False)
self.flipped = True
它应该做的是为我的玩家对象的精灵设置动画。它有一个用于跳跃的精灵,一个用于静止的精灵,以及3个分别命名为self.walkingimage [1],[2]和[3]的步行框架。
最后我调用了pygame方法pygame.transform.flip(),该方法应该在玩家面向左侧时翻转所有精灵(它们最初都朝向右侧)
所以我将一个图像(Pygame Surface?)分配给未更改的基本精灵列表中的self.image属性(全部面向右侧)。
对于只有一个动画帧作为跳跃和正常(静止不动)的精灵来说一切正常,但是当我在移动时尝试它时,它会在标准图像和翻转图像之间来回快速变换。这不是bliting的情况,因为我在分配并可选地翻转我的图像后这样做。
我在这里发帖是因为我不能为我的生活找到错误。我是否以错误的方式使用flip()方法?