使用Python做飞机大战小游戏时,当按下空格时,发射炮弹。让炮弹移动我用的代码:
注:使用了动画精灵
while True:
self.rect.top += 1
pygame.display.flip()
因为用了死循环,导致主循环卡住 ,窗口关也关不了,程序也无法运行到下一帧,窗口动画也卡住了,请问这样是要上多线程吗?还是有什么好方法?
在线等,急!
按你的逻辑, 这个炮弹要飞多长呀, 总有个循环停止的标志才行呀。 不能让炮弹一直飞呀。
有解决方案了,当按下空格键后,设一个变量值为1,在主循环里,检测到变量值大于0,就调用移动函数移动子弹,长度是子弹步长距离,并把变量值每次加一。在主循环里每一帧还要检测变量是否大于飞机y轴÷(子弹步长-1),如果是的话,把变量调为0。