wjkb 发表于 2025-8-5 10:54:06

问题求助

使用python做的一个游戏,在桌面打开后游戏,返回桌面

FishC 发表于 2025-8-5 10:54:54

下面是用Python实现游戏窗口最小化返回桌面的方法(使用Pygame库),代码简洁清晰:

核心思路:
1. 使用Pygame创建游戏窗口
2. 监听键盘事件(如按ESC键)
3. 调用系统API实现最小化窗口


import pygame
import sys
import ctypes# 用于调用系统API

# 初始化Pygame
pygame.init()

# 创建游戏窗口
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("我的游戏")

# 主循环
running = True
while running:
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
            running = False
      
      # 检测ESC键按下
      if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                # 最小化窗口(仅支持Windows系统)
                ctypes.windll.user32.ShowWindow(
                  ctypes.windll.kernel32.GetConsoleWindow(),
                  6# 6代表最小化窗口命令
                )
   
    # 游戏绘制逻辑(此处省略)
    screen.fill((0, 0, 0))# 黑色背景
    pygame.display.flip()

pygame.quit()
sys.exit()


关键代码说明:
1. ctypes.windll.user32.ShowWindow() 调用Windows系统API
2. GetConsoleWindow() 获取当前窗口句柄
3. 参数 6 对应 SW_MINIMIZE 命令

其他实现方案:
1. 使用 pygame.display.iconify()(部分系统支持):

if event.key == pygame.K_ESCAPE:
    pygame.display.iconify()# 最小化窗口


2. 完全退出游戏(回到桌面):

if event.key == pygame.K_ESCAPE:
    running = False# 退出游戏循环


注意事项:
1. Windows系统推荐使用 ctypes 方案
2. macOS/Linux系统可用 pygame.display.iconify()
3. 需要安装Pygame库: pip install pygame

需要其他平台的实现方案可以告诉我~

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

冲浪的口香糖 发表于 2025-8-5 11:06:19

会不会是代码有bug

某一个“天” 发表于 2025-8-5 11:51:42

看看是不是忘了循环,打开方式对不对

wjkb 发表于 2025-8-5 11:54:46

冲浪的口香糖 发表于 2025-8-5 11:06
会不会是代码有bug

在IDLE里面运行正常

wjkb 发表于 2025-8-5 12:13:25

某一个“天” 发表于 2025-8-5 11:51
看看是不是忘了循环,打开方式对不对

我和小甲鱼的代码一模一样{:10_266:}

某一个“天” 发表于 2025-8-5 13:46:32

右键用idle 运行
页: [1]
查看完整版本: 问题求助