Tag: 游戏物理

如何将欧拉angular转换为方向vector?

我有俯仰,滚转和偏航angular度。 我将如何将这些转换为方向vector? 如果你能告诉我一个四元数和/或matrix表示,这将是特别酷的!

如何为Android创build一个简单的2D游戏?

在游戏开发方面,我是一个完全新手,我需要有人指点我正确的方向。 为了清晰起见,请考虑以下animation。 基本上我需要知道如何模拟上述animation作为一个Android游戏,但我不知道这样做的必要步骤。 我的问题可以概括如下: 我是否需要使用游戏引擎来进行这样简单的游戏? 或者可以不使用任何特定的框架呢? 我是否需要使用Adobe Flash等animation应用程序? 做这种游戏有什么必要的步骤?

SpriteKit的带有多边形辅助工具的SKPhysicsBody

我想知道是否有一个工具可以用于轻松生成SpriteKit中的复杂物理实体。 我想有一个基于体积的物体与多边形types的形状。 SpriteKit允许使用该方法创build这样的实体: + (SKPhysicsBody *)bodyWithPolygonFromPath:(CGPathRef)path 不幸的是,手动生成这样的path是一项耗时的任务,而且在testing时可能会产生问题。 有一个SpriteHelper应用程序,允许你在易于使用的可视化编辑器中定义身体形状,但是这个应用程序不能导出这里可以使用的path。 它是为cocos2d制作的,它做了很多像纹理包装等我不需要的东西,我不能用于SpriteKit。 有谁知道一个解决scheme,将允许定义CGPath的很容易,甚至可以自动生成它们与alpha通道的PNG图像? 虽然从我的经验来看,自动生成function需要优化,因为当纹理可能具有更复杂的形状时,身体的形状应该尽可能简单。

iOS 7 Sprite Kit释放内存

我正在构build一个针对新iOS 7和Sprite Kit的iOS游戏,使用发射器节点和物理来增强游戏性。 在开发应用程序的时候,我遇到了一个严重的问题:创build你的场景,节点,效果,但是当你完成并且需要返回到主屏幕时,你如何释放这些资源分配的所有内存? 理想情况下,ARC应该释放一切,应用程序应该回到创build场景之前的内存消耗级别,但这不是发生的情况。 我添加了下面的代码,作为视图的dealloc方法,它绘制场景并负责在closures(删除)时删除所有内容: – (void) dealloc { if (scene != nil) { [scene setPaused:YES]; [scene removeAllActions]; [scene removeAllChildren]; scene = nil; [((SKView *)sceneView) presentScene:nil]; sceneView = nil; } } sceneView是一个UIView,它是场景的容器 场景是SKScene类的扩展,创build所有SKSpriteNode对象 我非常感谢在这个问题上的任何帮助。

是否有可能在尺寸和质量上做出逼真的n体太阳系模拟?

重要提示:这个问题与“PhysX” 完全没有关系,它是一个计算机游戏物理系统(对于诸如球类游戏之类的街机游戏中的物理学是有用的); PhysX是Unity3D和其他游戏引擎的内置系统, PhysX在这里完全不相干。 ////////////////////更新(先阅读底部)///////////////////// 我一直在logging价值观和确切的问题在哪里,我想我find了。 我在我的代码中有这样的东西 Velocity += Acceleration * Time.deltaTime; position += Velocity * Time.deltaTime; 加速度现在是0,0000000000000009 .. 随着代码的stream动,速度会随着时间的推移而增加,而浮动则没有问题。 但是在开始时,地球的初始位置是(0,0,23500f)你可以在我最后给出的图表中看到这一点。 那么现在当我加速度* timedelta(这是类似于0,00000000000000005在这一点上)的位置是23500,基本上不会增加​​它。 位置仍然是(0,0,23500)而不是像(0,0,23500.00000000000005)那样,因此地球不移动,因此加速不会改变。 如果我将地球的初始位置设置为0,0,0,则将加速度设置为0.0000000000000000009,以确定其位置是(0,0,23500)然后“加速”速度* timedelta。 它变得像(0,000000000000000000005),并保持增长。 当float为0时,添加这么小的值没有问题。 但是如果浮点数是23500,那么它不会加上小数值。 我不知道这是否是团结的问题或C#的浮动。 这就是为什么我不能使它的价值小的工作。 如果我能克服这个问题,我的问题就解决了。 ////////////////////////////////////////////////// ///////////////////////////// 我一直在开发n体物理来模拟我们的太阳系,所以我一直在收集数据,使其尽可能现实。 但数据大小有问题。 我search了互联网的每一个小小的一点,我找不到一个解释人们如何克服这一点。 (如果他们这样)所以我试着在这里拍摄。 因此,为了保持行星之间的距离,半径和“质量”的比例固定,我创build了一个excel文件来计算所有的数据。 (因为为什么有人会把“如果有地球的质量是什么”放在互联网上的“半径图”上呢?)我将把ss作为附件。 它基本上“正常化”,换句话说就是“规模化”一个星球上的每一个属性。 在这种情况下,我把这个参考称为“地球半径”。 我是团结一致的工作,你们知道,你们不能一起工作,“太大”或“太小”的价值观。 所以我不得不缩小太阳系,“太多了!” 所以我用牛顿的万有引力定律(F = GMm / r ^ 2)来简单化,我直接从一个其他的物体上计算出一个给定的物体a = GM / r […]