- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有兴趣尝试为 2D 游戏创建逼真的流体(水)。这个游戏类似于泰拉瑞亚。我听说过如何在场景中拍打一堆碰撞粒子并在其上进行渲染,瞧,逼真的水。
Terraria 使用基于瓷砖的水,我不喜欢它……我想要更高级的东西。
我考虑过使用子弹 3D 物理(box2d 有我会达到的限制)。对于非碰撞粒子效果,我正在考虑使用 SPARK 之类的东西,因为我认为这会让我两全其美。
我正在考虑的问题是,每个 block 都是 16x16,因此在 1600x900 的场景中,大约有 5000 个图 block 。
所以我需要告诉物理引擎这些瓦片是可碰撞的。当然,还有被认为是不可碰撞的空瓦片。
有人对此有想法吗?语言是 C++,但我怀疑这是否相关。
编辑:我想我将不得不陷入困境并使用基于网格的水。我想,回想起来,基于粒子的方法只会让一切变得更加困难,但有什么好处呢?
最佳答案
您的问题是关于平铺流体的,但您似乎实际上是在询问基于粒子的方法。
如果是这种情况,您正在寻找的是“平滑粒子流体动力学”或 SPH,这是一种非常流行的实时 2D 和 3D 流体模拟技术。
是的,它基本上只是一个粒子系统,每个粒子以合理(数学上稳定)的方式响应环境中的力(重力、碰撞等),并结合它们必须保持一定距离的约束为了使流体不可压缩。
您可以将粒子渲染为点,如果您有足够的粒子,或者您可以将它们用作派生表面的来源(例如使用行进立方体,但在 2D 中我不会担心)。
http://en.wikipedia.org/wiki/Smoothed-particle_hydrodynamics
它的优点是相对容易编码,而且确实可以在 GPU 上加速。
事实上,我认为它们可能是比尝试某种基于图 block 的方法更好的方法,而且您会得到一些更有趣的结果,例如喷射浪花、波浪踢到物体边缘等。很难找到令人愉快的工作,我会试一试。
关于c++ - Tilemap 2D 逼真的流体物理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13791782/
我在 cocos2d-x 中使用等距 tilemap,我面临的一个问题与深度管理有关。玩家 Sprite 没有正确地隐藏在放置在不同瓷砖 map 层上的树木和房屋后面。我已申请 cc_vertexz
我正在尝试制作一个 TileMap,但是当我去渲染tileMap 并迭代 map 中的所有整数时,我得到一个ArrayIndexOutOfBoundsException。 这是渲染方法: public
我正在开发一个小应用程序,我在其中将 tilemap ( JSTilemap ) 加载到 sprite kit 中。 这一切都很好,除了瓦片 map 在纵向上看起来正常而且很好,但是当我翻转到横向时它
我在做一些本应非常简单的事情时遇到了一些麻烦。我无法让瓷砖的地板显示在背景图片上方。然而,我可以让我的所有其他游戏对象从我的控制面板显示到我的 HUD,甚至是在同一个瓷砖 map 中设置的硬币和怪物。
如何在基于 2D 图 block 的游戏中映射负 map 坐标?前任。 (-180,100)或 (10, -8) 我需要用 O(1) 来访问它们。我不想创建一个巨大的二维 vector 并将 (500
我正在创建一个 2d 横向卷轴游戏并且有一个关于碰撞的问题。我一直在阅读各种文章,其中一些文章说您应该有一个碰撞层,它与平铺层的样式完全相同,但只是存储位。我理解这个逻辑,但如果我的图 block 实
我用周围瓷砖的所有可能组合制作了一个自定义组。 我将它与我的 TileMap 上启用的自动映射模式一起使用,结果如下: 如您所见,有几个错误: 我以编程方式和在编辑器中都尝试过。行为是相同的。 我的想
我尝试了很多不同的解决方案,但我不太确定这是否是问题所在使用我的方法或者如果代码不起作用 例如, 我希望能够在我最初设置的值中设置下面数组中的值,这是我的尝试 function makepointfr
我找不到解决问题的方法。我平铺了一个图像并将其保存到一个位图数组中。现在我想把它填成一个 7 x 7 的网格。我需要这样做,因为我想访问并可能更改单个磁贴。我尝试了 Gridview,但似乎我只能设置
下面的代码应该用空格替换 tilemap 索引,但是没有任何反应。 瓷砖 map : var tilemap = [ "wwwwwwwwwwwwwwww", "wmmmmmmmmm
我希望用户在那里选择 map 大小,所以我不知道运行时 map 的大小。我一直在寻找如何实现这一点,但收效甚微。最接近正常工作的是 vector 变体,但在它运行时仍然无法正常工作。 我想要一个 3
我有两个瓷砖 map 。可以使用 WASD 移动一个(瓦片会立即移动到新位置),我想检测此瓦片 map 的瓦片何时与另一个瓦片 map 的瓦片发生碰撞。 两者都有 tilemapcollider2d
我使用 SDL 编写了一个显示相当大的瓷砖 map (大约 240*240 瓷砖)的模拟。由于我对 SDL 库还很陌生,所以我真的无法判断渲染超过 50,000 个图 block 时相当慢的性能是否真
我有兴趣尝试为 2D 游戏创建逼真的流体(水)。这个游戏类似于泰拉瑞亚。我听说过如何在场景中拍打一堆碰撞粒子并在其上进行渲染,瞧,逼真的水。 Terraria 使用基于瓷砖的水,我不喜欢它……我想要更
我正在计划使用 SpriteKit 和 Swift 为 iOS 开发一款平台游戏。我研究了如何处理玩家 Sprite 的碰撞并偶然发现了这篇文章。 http://www.learn-cocos2d.c
我正在使用 SDL2 编写一个在每一帧都显示瓦片 map 的游戏,但性能太慢了。我写了一个小程序来隔离问题。假设“temp.bmp”是一张 16x16 的图像。 #include #include
我正在寻找一种方法来创建一种新型的六边形规则图 block 来完成一些相当简单和具体的事情。我想创建一个六边形规则图 block ,该图 block 能够根据与它相邻的其他类型的六角形图 block
我正在尝试在运行时将我的一个可编写脚本的图块添加到我的 Unity Tilemap 中。我可以在编辑器中绘制磁贴,一切看起来都很好,但我想在运行时添加它。 我尝试实例化 ScriptableObjec
我使用 Tiled 软件创建了以下 map ,我想让箱子发挥作用。实际上,我想知道玩家和宝箱何时重叠,但即使搜索了几个小时我也找不到解决方案。 我正在使用 ARCADE 物理。我尝试使用对象层但没有任
这是我现在用来尝试生成 tilemap 的代码: // --- Javascript --- window.onload = function (){ var can = document.get
我是一名优秀的程序员,十分优秀!