You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何移除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

火山引擎 最新活动