【问题标题】:Does Chipmunk/Pymumk have culling of objects that are outside screen boundary?Chipmunk/Pymumk 是否剔除屏幕边界外的对象?
【发布时间】:2019-04-01 05:29:45
【问题描述】:

我发现只剔除 under spatial hashing 的碰撞。我指的是由 3D 图形库执行的那种背面剔除,其中不呈现任何不需要可见的东西。

Chipmunk2D/Pymunk 是否有任何规定不绘制不在屏幕范围内的对象,还是用户必须自己实现?
例如:

红色矩形是屏幕边界。所有蓝色对象都应该被绘制,因为它们在屏幕内。不应绘制绿色对象。

我希望debug_draw() 有剔除功能。

ps:顺便说一句,如果我不使用debug_draw() 进行绘图,那么另一种绘图方式是什么?我没有看到 draw()release_draw() 函数。那么用户是否必须编写代码来单独迭代所有对象并绘制它们?我想这会很好,因为这样用户可以进行矩形相交测试并决定要剔除哪些对象。也许debug_draw 可以重命名为drawAll()

【问题讨论】:

    标签: chipmunk pymunk


    【解决方案1】:

    调试绘制方法主要用于调试和快速原型制作,因此剔除等更高级的功能不在其实现范围内。

    如果您觉得自己受到调试绘图的限制,那么可能是时候转换到您自己的绘图代码了,您可以在其中完全控制。自己模拟调试绘制应该很容易,一些示例代码可以自定义绘制。

    【讨论】:

    • 好吧,这很可悲。我已经看到了进行自定义绘图的方法,并在之前的答案中发布了一个示例(我已将其编辑到您的答案中)但不知道我将如何进行约束的自定义绘图,这就是为什么我坚持debug_draw。更多此类功能的示例将很有帮助。
    • Pygame 会在它跳出屏幕之前进行自己的剔除,因此您不会受到全部性能影响:stackoverflow.com/questions/39185187/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多