可以将Pygame作为cronjob运行吗?

kle*_*ell 7 python pygame

我希望这个问题本身并不荒谬.

我正在开发一款游戏.我已经从图形组件中分离出底层游戏引擎(在Python中).我有一个脚本可以模糊一些参数,使用游戏引擎模拟游戏的一部分,然后使用Pygame将其可视化.

我想自动执行以下过程:

  1. 将模拟作为cronjob运行
  2. 使用Pygame可视化(无头)
  3. 将可视化保存为短(~10秒)视频文件
  4. 以编程方式将视频上传到Youtube

理想情况下,我想每天做几次这样的事情,因此我的团队中的非技术成员可以观看视频并提供有关游戏视觉方面的反馈.

我想使用Pygame,因为我已经准备好了代码.但我怀疑我应该使用类似PIL的东西来创建一系列图像文件并从那里开始.

这可能与Pygame有关吗?我应该只使用PIL吗?完成这样的事情的任何其他想法?

Ant*_*pos 3

假设您在 Linux 上运行,并且您的图形引擎在 X 中工作,您可以使用 Xvfb(X 虚拟帧缓冲区)无头运行任何您想要的应用程序。您可以运行虚拟(无头)帧缓冲区会话的视频编码器。有几个实用程序可以使此任务变得更容易:

您想要制作一个顶级脚本,其中:

  • 启动Xvfb
  • 启动视频编码器(即 ffmpeg)
  • 在 Xvfb 中运行您的游戏。您不需要以任何方式修改您的游戏,假设它可以在没有用户输入的情况下运行,只需将 DISPLAY 环境变量设置为正确的值即可。
  • 结束视频编码
  • 将视频上传到 youtube

Xvfb 和 ffmpeg 绝对是无头录制游戏的最佳选择,这确保您可以按原样录制游戏,无需任何修改。这应该是可行的,但不一定容易。上面的脚本应该可以帮助您入门。