python - pygame双显示器和全屏

我正在使用 pygame 编写一个简单的行为测试程序。我在我的 macbook pro 上运行它,几乎所有功能都可以使用。但是,在测试期间,我将有第二个外部显示器供受试者看到,还有笔记本电脑显示器。我想让游戏在外接显示器上全屏显示,而不是在笔记本电脑的显示器上,这样我就可以监控性能。目前,文件的开头类似于:

#! /usr/bin/env python2.6

import pygame
import sys

stdscr = curses.initscr()
pygame.init()
screen = pygame.display.set_mode((1900, 1100), pygame.RESIZABLE)

我曾考虑在可调整大小的屏幕中开始游戏,但 OS X 在调整窗口大小方面存在问题。

最佳答案

Pygame 不支持在单个 pygame 进程中显示两个屏幕(目前)。见问题here和开发者回答immediately after ,他说

Once SDL 1.3 is finished then pygame will get support for using multiple windows in the same process.

因此,您的选择是:

  1. 使用多个流程。两个 pygame 实例,每个都在自己的屏幕上最大化,来回通信(您可以使用以下任何一个:非常酷的 python multiprocessing module 、本地 TCP、管道、写入/读取文件等)
  2. 在两个显示器上设置相同的分辨率,并创建一个跨越它们的大(宽)窗口,一半是您的信息,另一半是用户显示。然后手动放置窗口,使用户侧位于他们的屏幕上,而您的位于笔记本电脑屏幕上。这很老套,但可能比设计更好的解决方案更好地利用您的时间(“如果它很愚蠢并且有效,那它并不愚蠢”;)。
  3. 使用pyglet,类似于pygame 和supports full screen windows : pyglet.window.Window(fullscreen=True, screens[1])

祝你好运。

https://stackoverflow.com/questions/64495381/

相关文章:

f# - 如何使用 FSharp.Compiler.Service 从 F# 字符串中获取 F# A

java - 对于 IntelliJ 中的 Java 项目,Run 命令究竟做了什么?从 ./mvn

c# - 自动展开PropertyGrid中的一些属性

python - 异常值处理部分零值过多怎么办?

python - Vscode - .env 文件中的变量扩展

c# - 如何在不同的范围内获取同一服务接口(interface)的多个实现

ios - Fabric Crashlytics 不工作。 iOS 14 应用/XCode 12

google-sheets - 如何让条形图数据标签在谷歌表格中显示值和百分比(总数)?

spring-boot - 线程 "main"java.lang.NoSuchMethodError

django - 如何使用 Django Rest Framework 将上传进度条与 s3 存储桶