平台游戏的2D物理引擎 - 乘坐平台

时间:2011-08-01 13:20:23

标签: c# 2d physics

  

发布于游戏开发:2D Physics Engine for Platform Games - Riding on a Platform

我有很多关于在平台游戏中使用2D物理引擎的问题,但是我正在努力解决的一个主要问题。我设法将Physics2D.Net引擎集成到Scrolling Game Development Kit 2项目中。我对物理学的表现和现实感到非常满意。但是,我失去了一些东西,我原来的SGDK2物理引擎(更专门针对平台游戏)变得更容易:

  1. 现在骑在平台上非常困难。这是我的主要问题。实施起来并不困难,但很难发挥。假设我甚至设法让玩家进入一个平台(这本身就足够了),一旦平台移动,玩家就会掉线,因为玩家和平台之间没有足够的摩擦力。我是否只需要调整诸如摩擦,惯性,线性速度阻尼之类的东西,以便更容易在平台上骑行,或者在平台上骑行是否存在根本困难的“真实”世界?我已经尝试减少施加在平台上的力使其移动(这样可以让骑手有更多的时间来匹配平台的速度),但是那时力量不足以让骑手保持高空,平台下沉到地面。我只是用力来移动平台。
  2. 阻止平台旋转的最佳方法是什么?我已经尝试将每个框架上的角度动量和角度位置设置为0,但是这可能会导致很少的抽搐,导致平台上的任何东西弹到空中,只要足够长就可以脱落。
  3. 沿着地面奔跑:大多数具有真实2D物理的平台游戏如何实现玩家?我的播放器目前是一个正方形,但由于摩擦撞击其中一个角落,它经常会翻滚并弹到空中。我的猜测是玩家应该是一个圆圈并且总是直立。这是标准做法,还是有另一种方式?如果我使用一个圆圈,我希望骑平台会更加困难!玩家将立即滚动。我在考虑小大星球,它似乎也让玩家保持良好状态。我是否只需要在播放器上放置大量的速度阻尼,或类似的东西,如果我想让它们也接地?
  4. 由于SGDK2是一个基于图块的引擎/ IDE,我编写的代码可以分析地形/图块的所有形状,并将它们转换为具有无限质量的物理体(水平合并它们,但不适当地垂直合并;合并两个方向对我来说太困难了,因为我无法弄清楚如何在圆环状的地层中追踪和表示洞。对于平台游戏来说,这是一个很好的方式来实现精灵与之互动的东西来代表坚实的基础吗?我最好把每块瓷砖变成一个物理体(几块简单的形状,很多体和瓷砖之间的内部表面),或者像我一样合并它们(更少的体,但更复杂的形状)?
  5. 我很难确定要使用的最佳顶点细分级别和网格间距。据我所知,我真的不明白这些概念和Pysics2D.Net上的文档是稀疏到不存在的。我通常细分到大约6并使用大约相同的网格间距。我的精灵和瓷砖大多是32x32单位(像素),暂时都是正方形。

0 个答案:

没有答案