如何移除Pygame游戏中鼠标光标周围的反转色方框?
解决macOS上Pygame鼠标光标反转方框问题
嘿,我之前在macOS上用Pygame开发时也碰到过这个烦人的反转方框!这其实是系统自带的「鼠标点击高亮」特性在作祟,给你几个实用的解决办法:
方法1:直接关闭系统的鼠标点击高亮
这是最快速的全局解决方案:
- 打开「系统偏好设置」→「辅助功能」→「显示器」
- 找到「显示鼠标光标」下方的「启用鼠标点击高亮」选项,取消勾选即可
这个方法一劳永逸,但会影响所有应用的鼠标点击高亮效果,如果只是临时解决游戏里的问题,也可以试试下面的代码层面方案。
方法2:在Pygame中隐藏系统光标,改用自定义光标
不想改系统设置的话,完全可以在代码里屏蔽系统光标,自己绘制光标样式:
方案A:设置透明系统光标
import pygame pygame.init() screen = pygame.display.set_mode((800, 600)) # 创建一个1x1的完全透明表面作为光标 transparent_cursor = pygame.Surface((1, 1), pygame.SRCALPHA) transparent_cursor.fill((0, 0, 0, 0)) # 生成自定义光标对象,(0,0)是光标热点位置 custom_cursor = pygame.cursors.Cursor((0, 0), transparent_cursor) # 应用这个光标 pygame.mouse.set_cursor(custom_cursor)
方案B:隐藏系统光标,手动绘制光标
如果需要自定义光标样式,这种方法更灵活:
import pygame pygame.init() screen = pygame.display.set_mode((800, 600)) # 隐藏系统默认光标 pygame.mouse.set_visible(False) running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 获取当前鼠标位置 mouse_pos = pygame.mouse.get_pos() # 绘制自定义光标(这里示例是红色小圆圈) pygame.draw.circle(screen, (255, 0, 0), mouse_pos, 5) pygame.display.flip() pygame.quit()
这样系统的反转方框就不会出现了,因为系统光标已经被隐藏,完全由你控制光标显示。
方法3:升级Pygame版本
你当前使用的Pygame 1.9.3是比较旧的版本,这个版本在macOS High Sierra上可能存在系统光标兼容性问题。尝试升级到较新的版本:
pip install --upgrade pygame
新版本的Pygame针对macOS的系统特性做了优化,可能已经修复了这个反转方框的问题。
内容的提问来源于stack exchange,提问作者Jonathan Haar




