因此,在我正在创建的游戏中,当玩家拿起速度提升的精灵,我希望玩家的速度周期性地提升大约5秒,有人能帮助我理解如何做到这一点吗?“句柄捕获”方法将包含速度提升的代码,播放机的实际速度也被设置为等于2的全局变量“速度”。
class Addspeed(games.Sprite):
image = games.load_image('addspeed.png')
speed = 2
def __init__(self,x,y = 10):
super(Addspeed, self).__init__(image = Addspeed.image,
x = x, y = y,
dy = Addspeed.speed)
def update(self):
if self.bottom>games.screen.height:
self.destroy()
def handle_caught(self):
global speed发布于 2013-11-11 18:14:18
如果你的游戏够大的话,我建议你找个计时器经理。有一个基于pygame.Clock的大计时器。创建方法,以注册时间和在时间流逝时要调用的方法。所以,就像:
timerMananger.register(self.myMethod,5000)
# registers an event to be called after 5 seconds经理应该包括时钟,并有一个优先队列的任务要完成。下面是一个简短的草图,说明这是什么样子的:
def register(myMethod,t):
pqueue.add(myMethod,time_now+t)
def tick():
clock.tick()
if(time_now > pqueue[0]):
pqueue.pop()[0]()这样,您只检查最近的事件。如果会有许多事件,您可以将if更改为a while循环,以便所有事件都能一次处理。
https://stackoverflow.com/questions/19911812
复制相似问题