使用pygames碰撞模块而不初始化显示

时间:2013-02-01 09:52:21

标签: python opengl pygame

我正在编写一个包含两个进程的游戏。一个用于使用OpenGL进行渲染。另一种是碰撞检测。这样我就可以使用多个核心。

但是,如果没有显示打开,我不能使用任何pygame表面。因此,我无法使用位掩码进行像素完美碰撞或任何其他碰撞。

我试图简单地打开另一个窗口,看看我是否可以使Surfaces工作但我无法打开第二个pygame窗口而不会出现OpenGL函数错误。

您可以在两个单独的进程中使用pygame打开两个非OpenGL窗口,但我使用的是OpenGL。

我想我可能会在某个地方插入一个指向显示的指针,让表面停止说Dead Display。我可以在第二个过程中操作某种SDL变量来说“它不死在这里”。或者使用像素完美碰撞的其他方式。

我对不使用pygame的像素完美替代品开放。

2 个答案:

答案 0 :(得分:1)

你应该没问题,渲染和碰撞相同的线程,相同的CPU。此测试在没有四叉树的情况下循环,然后将其打开。

然后将阻止代码(网络)移动到另一个线程。

运行示例引用:

  

找到了峰值。这台电脑的性能不会比现在好。   通常会有359400次碰撞检查,   但是这个四叉树将它减少到大约241次碰撞检查

original is pygame.org但需要进行细微修改:http://pastebin.com/U371LaLy

enter image description here

答案 1 :(得分:0)

我要用pymunk。 Chipmunk的python端口。

一年多以前,当我第一次开始编程时,我做了一个愚蠢的实验。这很简单。我完全忘了它。

我无法让pybox2d在任何python版本中工作。