python - Pygame 窗口在启动 game_loop() 后冻结
问题描述
嘿它的最大我有一个问题,我的game_loop()
运行大约半秒钟然后冻结,它没有说没有响应或任何东西只是对所有按钮完全没有响应,有人知道我做错了什么吗?我正在定义game_intro()
并说,如果我单击输入[RETURN]
startgame_loop()
和intro=False
.
任何帮助深表感谢 :)
def game_loop():
global bot_x1
global bot_x2
global bot_y1
global bot_y2
global x
global y
global running
pygame.display.update()
clock.tick(60)
pygame.display.update()
if running:
pygame.display.update()
pygame.display.update()
for event in pygame.event.get():
#CLOSE
if event.type==pygame.QUIT:
pygame.quit()
pygame.quit()
quit()
#MOVEMENT
## if pygame.key.get_pressed()[pygame.K_LEFT] and x > 0:
## x-= selfspeed
##
## if keys [pygame.K_RIGHT] and x < 710 :
## x+= selfspeed
##
## if keys [pygame.K_UP] and y > 0:
## y-= selfspeed
##
## if keys [pygame.K_DOWN] and y < 400:
## y+= selfspeed
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT and x > 0:
x-=selfspeed
elif event.key == pygame.K_RIGHT and x < 710 :
x+=selfspeed
elif event.key == pygame.K_UP and y > 0:
y-=selfspeed
elif event.key == pygame.K_DOWN and y < 400 :
y+=selfspeed
#BOT MOVEMENT
if bot_y2 > window_height:
bot_y2 = 0
bot_x2 = random.uniform(50,750)
if bot_y1 > window_height:
bot_y1 = 0
bot_x1 = random.uniform(50,750)
#SHOW PICTURES
bot_y1+=botspeed
bot_y2+=botspeed
window.fill(grey)
bot_1(bot_x1,bot_y1)
bot_2(bot_x2,bot_y2)
plane(x,y)
print("working")
running=True
#UPDATE GAME DISPLAY+FPS
keys=pygame.key.get_pressed()
pygame.display.flip()
clock.tick(30)
#GAME LOOP BROKEN CLOSE
game_intro()
game_loop()
解决方案
我的代表还不够高,无法发表评论,但有很多细节你没有足够澄清,例如game_intro()
函数的作用或窗口是否在冻结后关闭。您还在解释中引用了一个从未在代码中显示的变量 ( intro = False
)。但是根据您提供的代码,您似乎从未将其game_loop()
放入实际循环中。代替...
...
if running:
pygame.display.update()
...
在你里面game_loop()
试试这个
...
while running:
pygame.display.update()
....
如果这仍然不起作用,请尝试使用更新的问题或 pastebin 链接提供更多代码。
推荐阅读
- kotlin - 为什么尝试在 GoogleMap 上放置标记时出现 NullPointerException?
- python - 如何就地修改字典中的列表值?
- visual-studio-code - 当文本文档未打开/加载时,无法执行命令 vscode.executeFormatRangeProvider
- python - 如何在 pytest 中模拟 spark.read.json
- pandas - 如何在 pandas scatter_matrix 中使用 density_kwds?
- azure - 使用 OPC Publisher 从 OPC UA 服务器订阅模拟数据
- android-contacts - 如何在android studio中显示按地址排序的联系人姓名和号码
- angular - Azure 登录另一个 Angular 应用程序的 iFrame 中的 Angular 应用程序
- python - 如何检查 requirements.txt 文件中列出的所有包是否在 Python 项目中使用
- python - 计算在给定范围内对具有重复元素的数组进行排序所需的最小交换的算法?