为什么我的Pygame窗口运行几秒后无响应?附代码求助
Pygame窗口冻结的问题修复
你的代码有两个关键问题导致窗口冻结:
- 事件处理循环和屏幕更新代码被放在了主
while循环外面,主循环一直在重复绘制背景,但完全没机会处理用户的退出操作,系统会判定程序无响应,直接冻结窗口。 - 代码里有一行无意义的
(5, 0)语句,建议删掉。
修复后的完整代码:
import pygame import sys pygame.init() # game window screen_width = 800 screen_height = 400 screen = pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption('battle') # load images # background image background_img = pygame.image.load(r"C:\Users\olive\AppData\Local\Programs\Python\Python312\Lib\idlelib\created games.package\rpg\img\setting\Background.png").convert_alpha() # function for drawing background def draw_bg(): screen.blit(background_img,(0,0)) run = True while run: # draw background draw_bg() # 事件处理要放在主循环内 for event in pygame.event.get(): if event.type == pygame.QUIT: run = False # 屏幕更新也要放在主循环内 pygame.display.update() pygame.quit()
内容的提问来源于stack exchange,提问作者i need help
相关产品推荐
相关产品推荐

