我一直在尝试用一个可以移动的角色来编写一个小游戏。由于某些原因,我不能使用gif。在那之后,我把gif变成了一堆png,然后我试着写一些代码来让它有动画效果:
def animate():
global frame
curr_img = "player-walk" + str(frame)
player.image = curr_img
frame += 1
if frame > 2:
frame = 1当我尝试这段代码时,我一调用它就会得到一个错误。下面是我写的完整代码:
import pgzrun as pgzero
import pygame
player = Actor("player")
frame = 1
WIDTH = 660
HEIGHT = 450
def move_player():
if keyboard.w:
player.y -= 2
clock.schedule_interval(animate(), 0.5)
if keyboard.s:
player.y += 2
if keyboard.a:
player.x -= 2
if keyboard.d:
player.x += 2
def animate():
global frame
curr_img = "player-walk" + str(frame)
player.image = curr_img
frame += 1
if frame > 2:
frame = 1
def draw():
screen.clear()
player.draw()
def update():
move_player()
pgzero.go()此链接中存在错误: mystb.in/LitFillEquilibrium.sql
发布于 2021-03-08 12:02:28
在这条线上
clock.schedule_interval(animate(), 0.5)
clock.schedule_interval接受一个可调用的(一个函数)和间隔。通过在animate后面添加括号,您实际上是在调用函数并传递其输出。由于animate不返回任何内容(None),因此您可以像下面这样做:
clock.schedule_interval(None, 0.5)
它应该在哪里
clock.schedule_interval(animate, 0.5)
https://stackoverflow.com/questions/66450076
复制相似问题