我制作了python代码的测试版本,添加了新东西,然后运行它。外壳窗口出现了,但pygame没有。图标出现了,但右键单击表示程序没有响应。点击它什么也没做。我不知道为什么会发生这种情况,但下面是我添加的每一段新代码。
orangebombpowerup = Actor("orangebombpowerup")
Powerups = [orangebombpowerup]
randompowerup = randint(0, len(Powerups)-1)
powerupchance = randint(0, 35)
def place_Powerup():
global Powerups
Powerups[randompowerup].x = randint(10, 1250)
Powerups[randompowerup].y = randint(10, 700)
while True:
if powerupchance == 15:
Powerups[randompowerup].draw()
这就是我添加到程序中的所有新代码。现在pygame还没有发布。shell不显示任何错误。MacBookAir ml1,我已正确安装了所有设备。感谢您的帮助。
1条答案
按热度按时间cczfrluj1#
我不能测试它,但是
while
-循环不是一个好主意pygame
,pygame zero
,pyglet
或任何gui框架(tkinter
,pyqt
,wxPython
,PyGTK
,等等),因为它会阻塞main loop
每个框架都必须从系统中获取(键/鼠标等)事件,将事件发送到小部件/对象,更新值,重新绘制窗口。基于
pgzrun
您应该使用的文档update()
(而不是while
)在每一个frame
(每秒可以执行30次)并且不会阻止其他代码。或者它应该在
draw()
用于绘制每个帧中的所有元素。但我认为它会有不同的问题——它会运行
update
可能在一秒钟内30次(为了30 FPS
-每秒帧数),因此它将非常快地取代通电,并且不会有多大用处。可能需要一些timer
放慢速度,每隔几秒钟更换一次。pgzero
我有这个钟。