当您按下键盘上的按钮时,我正在尝试为 Sprite 表设置动画。我最初的想法是只在按键时传输图像。我将动画代码从主循环移至用户输入循环。但这不起作用,因为游戏循环处理整个游戏的单独状态。使用什么技术从用户输入触发动画?我想要一个动画系统,它既可以通过用户输入处理动画,也可以在后台自行处理动画。
if __name__ == "__main__":
print "the game"
pygame.init()
screen = pygame.display.set_mode((800,600))
images = load_sliced_sprites(100, 71, "spinning_roundhouse_kick.png")
spritesheet = AnimatedSprite(images, 20)
#while pygame.event.poll().type != KEYDOWN:
while True:
screen.fill((255,255,255))
event = pygame.event.poll()
if event.type == KEYDOWN:
#print "keydown"
for image in images:
screen.blit(image, (0,0))
#time = pygame.time.get_ticks()
#spritesheet.update(time)
#screen.blit(spritesheet.image, (0,0))
pygame.display.update()
最佳答案
看起来你应该做这样的事情..
sprite = AnimatedSprite(images, 20)
if event.type == KEYDOWN:
sprite.update(pygame.time.get_ticks())
screen.blit(sprite.getimage())
应该发生的情况是,您的 Sprite 类应该获得时间增量的更新,并在更改为新帧之前计算时间。只要按下键就绘制动画。
关于python - 按键时的 Sprite 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13209581/