我需要用Java编写一个非常简单的3D物理模拟器,立方体和球体相互撞击,而不是更多.我从来没有这样做过,我应该从哪里开始?有关如何完成的任何文件?我可以重用的任何图书馆?
我是一名iOS游戏开发者,最近看到一款有趣的物理和绘图游戏“糖糖”。在游戏中,屏幕上会产生大量像素粒子(数千个)并自由落体到地面。玩家可以绘制任何形状的线条,这些线条可以将这些颗粒引导到某些杯子。来自谷歌的图片:

我正在尝试使用 SpriteKit 和 Swift 来实现类似的效果。这是我得到的:

然后我遇到了性能问题。一旦粒子数量>100。CPU和能源成本非常高。(我使用 iPhone 6s)。所以我相信《糖糖》中的物理引擎比现实的SpriteKit简单得多。但我不知道那里的物理引擎是什么以及如何在 SpriteKit 中实现这一点?
PS:我使用一张图像作为所有这些粒子的纹理,仅加载一次以节省性能。我只使用 SKSpriteNode,出于性能原因也没有使用 ShapeNode。
我最近开始了一个项目,建立一个物理引擎.我希望你能给我一些与一些文档和/或最佳技术相关的建议.
首先,我已经看到Game-Physics-Engine-Development被强烈推荐用于手头的任务,我想知道你是否可以给我第二个意见.我应该得到它吗?此外,在浏览亚马逊时,我偶然发现了 游戏引擎架构,因为我想为游戏构建我的物理引擎,我认为这也许是一个很好的阅读.
其次,我知道模拟物理是高度计算的,所以我想使用CUDA或OpenCL.Right现在我倾向于OpenCL,因为它适用于NVIDIA和ATI芯片组.你们建议什么?
PS:我将在Linux上用C++实现它.
谢谢.
如何像愤怒的小鸟一样制造运动撞击/碰撞.当物体击中盒子和木头时,它们的相互作用和动画的流动将到达正确的位置.我需要从头学习如何构建它.我需要物理和概念的基础
示例图片:

到目前为止,我认为到目前为止.受到影响,我会申请
恢复原则
物体1速度= e(球速度)
我将采取球的方向并使对象1旋转90%对着球.
如果球--->方向.对象1的最终结果将是90度.所以它会成为
| ____ | 它会变成这个.
到目前为止看来没错.但我不确定如何与物体2相互作用.我是否重复步骤2.然后我将速度和方向传递给物体2.所以它会再次旋转90度?
这是我到目前为止收集的内容.任何暗示我正朝着正确方向前进的建议都会很好.
对于碰撞部分.我打算用AABB.和旋转AABB.
我查看了cannon.js示例,它们似乎主要用于-10和-40之间的重力和1到10之间的物体质量(或称为CANNON.RigidBody),这些演示物体对这些值的"表现良好",因为它们只是"重"足以克服重力而不是那么"沉重",以至于它们使地平面看起来是假的......我的意思是我试图增加落下的质量物品和它们拥有的质量越多,它们越多,地板看起来就像棉花糖(即海绵状)一样落地.(顺便说一句:是的,我知道质量和重量不是一回事 ;-)
数学中的引力通常为9.8 m/s/s,那么如何在CANNON.World.gravity中实现呢?
我在互联网上发现石块的质量是2515千克/立方米,所以如果我想放下一块1x1x1米的石块,那将如何转化为质量:
var block = new CANNON.RigidBody(mass, shape, material);
Run Code Online (Sandbox Code Playgroud)
然后有这个material参数..我需要有2个材料(1个用于地板,1个用于石块)然后我如何设置摩擦系数和恢复值以使材料在碰撞时作出反应?
我知道这似乎有很多问题,而且我的目标不是绝对准确,只是需要指导,因为a)我缺乏物理知识和b)对于我们这些试图使用cannon.js的人没有太多文档物理学教授;-)
我猜是真正的问题是"如何逼近现实主义".
cannon.js很棒,效果很好,我非常感谢Stefan Hedman(schteppe)迄今为止所付出的辛勤工作.
这是我一直希望解决的问题,虽然我永远找不到解决方法.我想我可能会遗漏一些东西,但我似乎找不到什么.
我试图从b2World中摧毁身体,我在各种教程中看到,当他们在调试绘图的情况下破坏box2d中的对象时,形状也会被破坏.出于某种原因,我这样做:
world.DestroyBody(_body)它似乎没有做任何事情.形状停留在屏幕上.
以前有人有这个问题吗?这让我很担心,因为玩游戏一段时间后,我想破坏的所有物体都会留在屏幕上,并且仍会记录真正落后于游戏的碰撞.
任何帮助将非常感激,
谢谢,
威尔
编辑:[已决议]谢谢你们,这非常有道理.
flash garbage-collection actionscript-3 box2d physics-engine
我会保持简短,要知道我所说的事情发生在 2009 年的 Box2d for AS3 上,今天也发生在 JavaScript 中的完全独立的 p2 物理库中。
请转到以下 2d 布娃娃演示页面,并用力旋转布娃娃的头部。
https://schteppe.github.io/p2.js/demos/ragdoll.html
您将看到关节分离并变得有弹性的结果。
这个问题阻止了我用物理做任何有趣的事情。球链、弹射器、叉车、布娃娃、蜘蛛侠射击网、二维车辆......
限制似乎不稳定,甚至是多余的。我认为物理引擎适用于愤怒的小鸟或掉落的方块,但是当您添加约束时,该项目就会变成适合破坏的演示。
你能解释一下为什么会发生这种情况吗?我很天真吗?是否存在物理引擎来提供基本的主体和约束?作为开发人员,我应该应用数学来使约束正常工作?
我一直在另一个for循环中进行for循环,以便同时从数组中获取2个对象,但必须有更好的方法.我只想检查它们是否发生碰撞然后从视图和数组中删除它们.
game-physics ×5
arrays ×1
box2d ×1
cannon.js ×1
cuda ×1
flash ×1
ios ×1
java ×1
javascript ×1
objective-c ×1
opencl ×1
performance ×1
physics ×1
simulation ×1
sprite-kit ×1
swift ×1