OS X 上 Pygame 的抗锯齿颜色错误

2023-11-23

我在运行 OS X 的 Macbook Pro(非视网膜)上使用 Pygame。当我尝试创建抗锯齿线条或圆圈时,它似乎显示为错误的颜色。这是一个例子:

import sys, pygame, random, math
import pygame.gfxdraw

black = (0,0,0)
white = (255, 255, 255)
green = (0, 255, 0)


pygame.init()

size = width, height = 800, 600

screen = pygame.display.set_mode(size)

# make the background
background = pygame.Surface(screen.get_size())
#background.fill(black)
background.fill(white)

while 1:
    # handle single events
    for event in pygame.event.get():
        if event.type == pygame.QUIT: sys.exit()

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE: sys.exit()

    screen.blit(background, (0, 0))

    pygame.draw.line(screen, green, [0, 0], [50,30], 1)
    pygame.draw.aaline(screen, green, [0, 50],[50, 80], True)

    pygame.draw.circle(screen, black, [100, 100], 10)
    pygame.gfxdraw.aacircle(screen, 100, 130, 10, black)

    pygame.display.flip()

这导致:

color example


尽管搜索了 pygame 源代码,但仍无法找到原因。

不过,我确实想出了一个解决方法。实际上是两个。

似乎有一个错误pygame.gfxdraw当蓝色值为 0 时,会导致 OS X 中颜色混乱的模块。如果您更改了black到 (0,0,1),圆圈看起来已经好多了,但仍然带有轻微的蓝色调。将其更改为 (0,0,2),它会显示几乎全黑。对我来说没什么意义,但它有效。

Edit:这是针对不包含任何蓝色的背景颜色。看来,在包含 >0 蓝色的背景 RGB 上,圆圈至少需要一定量的蓝色才能防止出现错误。例如,要在 (50,50,50) 背景上获得黑色圆,我能得到的最接近的结果是使用 (0,0,50) 作为圆。任何较低的蓝色量都会导致亮蓝色伪影。

添加蓝色对修复没有帮助pygame.draw.aaline不过的行为。这一定是一个单独的错误。然而,pygame.gfxdraw.line也是抗锯齿的。改为使用该方法,更改green到 (0,255,1),青色线现在将变为绿色。

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OS X 上 Pygame 的抗锯齿颜色错误 的相关文章

  • 在 XCode 7.0.1 中设置 VTK 6.1

    所以 我遇到了问题VTK 可视化工具包 http www vtk org在 Mac OSX 上工作 特别是让它在XCode https developer apple com xcode 我让它工作并将在下面发布这个问题的答案 截至 201
  • AVCaptureDevice 找不到任何设备

    这行代码是我今天遇到的问题 macOS 应用程序 NSArray devices AVCaptureDevice devicesWithMediaType AVMediaTypeVideo 我更新Xcode后 系统总是让我空着devices
  • `pyqt5'错误`元数据生成失败`

    我正在尝试安装pyqt5使用带有 M1 芯片和 Python 3 9 12 的 mac 操作系统 我怀疑M1芯片可能是原因 我收到一个错误metadata generation failed 最小工作示例 directly in the t
  • VLCJ 无法在 Mac 上运行 - 插件 libvlccore.5.dylib

    我正在尝试让 VLCJ 在 Mac 和 PC 上运行 它在 Windows 7 64 位 下运行良好 但当我尝试在 Mac 上运行它时 它崩溃了 我指向 VLC dylib 文件的正确目录 但收到 使用 libvlccore 5 dylib
  • 如何在 macOS 上将 Git 升级到最新版本?

    我刚刚购买了一台装有 OS X Lion 的新 Mac 我在终端中检查了默认安装的 git 版本 我得到了答案 git version gt git version 1 7 5 4 我想将 git 升级到最新版本 1 7 8 3 因此我下载
  • OSX bash 最小化窗口

    在 Mac 中并使用 bash shell 我想执行一个包含单个命令 启动 Jupyter Lab 的文件并立即最小化终端窗口 有没有办法在不安装第三方软件的情况下做到这一点 是的 只需使用osascript https ss64 com
  • 如何在 MacBook Pro 上的 Docker 容器内运行 tkinter?

    我正在尝试运行一个使用以下命令的 python GUI 应用程序tkinter我的 MacBook Pro 上的 docker 容器内的模块 所以我安装了XQuartz https www xquartz org 并跟随本教程 https
  • Git 2.2.x 无缘无故更新旧包文件的时间戳

    Git 2 2 0 和 2 2 1 似乎修改了旧的时间戳 git objects pack pack pack偶尔会无缘无故地文件 它只是改变时间戳 内容是相同的 调试这一点很困难 因为它似乎很少进行更改 我在 2 2 0 之前的任何 Gi
  • 如何使用 Pygame 将捕获的图像保存到磁盘

    这是我的代码 它启动网络摄像头 import pygame camera import pygame image import sys pygame camera init cameras pygame camera list camera
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 在 pygame 中添加/创建下拉选择框的提示

    我正在 pygame 中制作一个游戏 需要有一个下拉框和单选按钮来选择选项 任何有关如何进行此操作的提示将不胜感激 Regards 我建议为图形 UI 元素实现一个类 该类有一个构造函数 init 定义所有必需的属性和所有必需的状态 ADr
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • 在 mac-os-x Yosemite 上调用“npm”时,Jenkins 构建步骤失败

    在开始之前 我想说我已经检查过这些答案 Jenkins 构建步骤在 npm install 上失败 https stackoverflow com questions 11564508 jenkins build step fails on
  • 错误:执行 gem 时... (Gem::FilePermissionError)

    我检查了所有其他类似的答案 没有一个与我的完全一样 这些解决方案也不适合我 gem environment and sudo gem environment给出相同的结果 RubyGems Environment RUBYGEMS VERS
  • 谁在 Mac OS X 上监听给定的 TCP 端口?

    在Linux上 我可以使用netstat pntl grep PORT or fuser n tcp PORT找出哪个进程 PID 正在侦听指定的 TCP 端口 如何在 Mac OS X 上获得相同的信息 在 macOS 上Big Sur然
  • MacOS 10.15 (Catalina) 中的 ASWebAuthenticationSession

    我正在尝试实施新的ASWebAuthenticationSession在 MacOS 10 15 中 我对callbackURLScheme 头文件为ASWebAuthenticationSession says 回调 URL 通常具有自定
  • 在java中查找OSX的版本

    我需要测试 java 中 osx 的版本是否 Try System getProperty os name and or System getProperty os version 它返回字符串 HERE https docs oracle
  • 在 OS X 中,如何检测当前活动应用程序何时发生变化?

    尝试为 OS X 编写一个应用程序 该应用程序根据当前的应用程序触发行为 它不需要与它交互 它只需要知道何时更改以及更改内容 任何人都可以推荐哪些 API 可用于此目的吗 我的猜测是辅助服务中的某些内容 因为这是大多数应用程序 例如 Bet
  • 在 OS X 上与 clang++ 链接会生成大量符号未找到错误

    我正在尝试使用 clang 编译器在 OS X 10 8 上编译一些 C 代码 包括 C 11 功能 我有一个生成目标文件的 makefile OK 然后在命令上 clang o Analysis so shared DataFile o
  • ln: /usr/lib/libssl.dylib: OSX 不允许操作

    我正在尝试创建一个到 usr lib 的符号链接 但我似乎没有权限 包含在 root 中 系统返回不允许该操作 在 Yosemite 上我工作得很好 但在 El Capitan 上却坏了 有人知道我能做什么吗 我在使用 Sublime te

随机推荐

  • 如果 import 语句只包含文件名,python 如何查找模块文件?

    我到处都看到 Python 代码使用以下命令导入模块import sys or import mymodule 如果没有提供目录或路径 解释器如何找到正确的文件 http docs python org 3 tutorial modules
  • Java 相当于 unsigned long long?

    在 C 中 我喜欢通过以下方式访问 64 位无符号整数 unsigned long long int 或通过uint64 t 现在 我知道 Java 中的 long 是 64 位 然而 他们已经签署了 是否有 unsigned long 长
  • UIScrollView contentOffset 在另一个视图推送后发生变化

    我有一个UIViewController在 Interface Builder 中 我添加了一个UIScrollView to the UIView 它有一个contentOffset属性等于 0 0 但是当我滚动UIScrollView到
  • 枚举类可以转换为基础类型吗?

    有没有办法转换enum class字段到基础类型 我以为这会是自动的 但显然不是 enum class my fields unsigned field 1 unsigned a my fields field 该分配被 GCC 拒绝 er
  • 是否可以生成独立的 haskell 可执行文件

    假设架构相似 有没有办法生成独立的 haskell 可执行文件以在不同的 Linux 机器上运行 抱歉 我应该说得更清楚 其他机器上可能没有安装 ghc 有点像我正在寻找的 python pyinstaller 您可以使用标志 static
  • java中如何将时间四舍五入到最接近的一刻钟?

    鉴于今天的时间 例如2 24PM 如何让它四舍五入到 2 30PM 同样 如果时间是下午 2 17 我如何让它四舍五入到下午 2 15 Rounding 您需要使用模来截断刻钟 Date whateverDateYouWant new Da
  • 标准库中的 C++11 值和对象示例?

    在 C 11 3p3 中 它指出 一个实体是一个value object 引用 函数 枚举器 类型 类成员 模板 模板特化 命名空间 参数包或此 在 17 6 1 1p1 中指出 C 标准库提供了以下类型实体的定义 宏 values 类型
  • 如何获取今天午夜的 NSDate 对象?

    获取代表当天午夜的 NSDate 对象的最有效方法是什么 iOS 8 中的新 API iOS 8 在 NSCalendar 上包含一个新方法 称为日期开始日 这真的很容易使用 let startOfToday NSCalendar curr
  • Android:无法实例化活动/ClassNotFoundException

    我最近向市场发布了一个应用程序 现在我收到一些用户的错误 该应用程序可能会在启动时崩溃 不幸的是 我无法直接联系他 并且该应用程序在模拟器和我的手机 以及一些朋友的手机 上运行良好 编辑 我想这种情况发生在不止一个用户身上 因为我在市场上收
  • 如何使用Android中的下载管理器将下载的图像存储在内部存储中

    如何使用下载管理器将图像或 mp3 文件保存在内部存储中 Code public void StartDownload String path ContextWrapper cw new ContextWrapper context Fil
  • 检查Android系统设置中是否启用了“自动更新”

    是否可以通过编程方式检查这一点 设置 gt 关于设备 gt 软件更新 gt 自动更新 自动检查更新 None
  • moment.js 从格式数组进行日期验证

    我需要测试输入的日期格式是否正确 我想接受多种日期格式 因此我创建了一个验证函数来测试至少一种格式是否正确 在这种情况下返回 true 我使用 moment js 来测试日期 当我简单地输入硬编码字符串日期格式的条件时 该函数可以正常工作
  • 为什么在 WiX / MSI 设置中限制自定义操作的使用是个好主意?

    为什么在 WiX MSI 设置中限制自定义操作的使用是个好主意 部署是大多数开发的关键部分 请给此内容一个机会 我坚信 通过应用程序设计的微小改变 可以显着提高软件质量 使部署更符合逻辑 更可靠 这就是这个 答案 的全部内容 软件开发 这是
  • 为什么我的 EF Code First 预生成视图没有效果?

    我的上下文中有大约 300 个 DbSet 应用程序加载后的第一个查询 索引字段上的 FirstOrDefault 需要大约 40 秒 为了改进这一点 我尝试使用此处的 T4 模板在 EF 4 3 1 Code First 中使用预生成的视
  • 类型错误:callback.apply 不是函数(Node.js 和 Mongodb)

    当我添加 upsert true 行时 出现以下错误 类型错误 callback apply 不是函数 on routes that end in users competitorAnalysisTextData router route
  • 无法获取 $_SESSION 变量

    In Log in php I have email POST email pass POST pass SESSION type user SESSION email email SESSION pass pass header loca
  • 从 GitHub 删除已关闭的拉取请求

    我不小心发出了错误的拉取请求 最终自己关闭了请求 它现在处于关闭状态 但可以通过直接 URL 访问并显示在我的活动栏上 有没有办法完全删除拉取请求 使其无法再通过 URL 访问或显示在您的活动历史记录中 您无法删除拉取请求yourself
  • 嵌套菜单(子菜单)

    我正在尝试实现子菜单 嵌套菜单 值得一提的是 我正在使用 Hydra 组件 并且之前没有 Redux 的经验 因为这个特定问题 几天前开始学习它 我已按照material ui 上提供的嵌套列表示例https material ui com
  • 如果没有“function”关键字,这个对象方法定义如何工作?

    我无意中遗漏了这一点 发现了这一点function关键词 通常情况下foobar下面模块中的方法将声明为foobar function arg1 但有趣的是 以下内容至少在某些浏览器中有效 例如Chrome版本44 0 2403 157 m
  • OS X 上 Pygame 的抗锯齿颜色错误

    我在运行 OS X 的 Macbook Pro 非视网膜 上使用 Pygame 当我尝试创建抗锯齿线条或圆圈时 它似乎显示为错误的颜色 这是一个例子 import sys pygame random math import pygame g