gpt4 book ai didi

c# - XNA - 模拟雪

转载 作者:太空狗 更新时间:2023-10-29 19:44:12 26 4
gpt4 key购买 nike

这更像是一个问题,要求就我应该使用哪种模式/方法提出一些建议。我对这个问题做了一些调查 - 结果很差。

从本质上讲,我有一个游戏创意,其中关键的游戏机制是基于落雪 - 或者,在这个创意游戏的情况下 - 落下的粒子。

雪/颗粒需要从屏幕上掉落 - 但会堆积成堆。问题是,当雪堆成一定角度时,我需要让雪“滴落”到堆的两侧,并继续积聚。有可能在成堆的雪下开洞,雪必须掉出来 - 就像沙漏下的沙子一样。

我试过这是 Box2d - 很明显,Box2d 不是 10,000 个微小颗粒的正确选择 - 会持续很长时间。 Box 2D 很快就死了。

我尝试在屏幕上绘制 1px 位图,但事实证明每次更新处理 10,000 次碰撞也表现不佳。

如有任何想法,我们将不胜感激。

干杯

最佳答案

好吧,就像您发现的那样,现有的库除非专门针对您的场景,否则无法帮助您。不幸的是,对于 XNA,没有太多可供选择的东西,而且看起来现有的粒子系统库都不支持粒子物理。

所以你需要自己做很多工作。首先也是最重要的是,您需要考虑可能进行的所有优化。就像评论说的那样,你不应该在每一帧的所有粒子之间运行检查。您应该使用基于点的碰撞检查,而不是物理引擎通常使用的更高级的东西。在这种情况下,您应该确保粒子的大小始终相同(相对于引用坐标系,这并不意味着您不能缩放)。当然,你需要尽可能多地跳过碰撞检查——你知道静止的粒子不应该被检查,就像那些在所有方面都有相邻粒子的粒子——这让我想到了网格。或许您可以将整个“世界”表示为一个网格,并从这个角度简化逻辑 - 与 Minecraft 非常相似,您同意吗?

无论如何,我意识到我有点乱,但这是一个开放的主题......:)

关于c# - XNA - 模拟雪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15070348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com