phaser-grid-physics, 网格物理插件是街机物理,街机物理是MatterJS的

分享于 

6分钟阅读

GitHub

  繁體 雙語
The Grid Physics plugin is to Arcade physics what Arcade physics is to Box2D.
  • 源代码名称:phaser-grid-physics
  • 源代码网址:http://www.github.com/nkholski/phaser-grid-physics
  • phaser-grid-physics源代码文档
  • phaser-grid-physics源代码下载
  • Git URL:
    git://www.github.com/nkholski/phaser-grid-physics.git
    Git Clone代码到本地:
    git clone http://www.github.com/nkholski/phaser-grid-physics
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/nkholski/phaser-grid-physics
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    基于的相位栅物理

    这个插件是为你的游戏添加支持栅格/瓷砖,以及其他一些东西,以使你的生活更加轻松。 我的目标是建立尽可能接近街机物理的API。

    插件开发中,同时也有 Bug 和缺少的功能。 我让它在一个RPG项目中使用。 这意味着我将对所需的部分进行优先级排序,并且 Bug 不是我自己游戏的问题。 一个例子是,如果对象migth同时被severeral体推动,它们会飞离开。 如果遇到你希望解决的问题,请在这里打开问题。

    Walking on bridge

    在桥上行走,用collidable边框与瓦片碰撞。

    One way collision

    测试了一次碰撞然后被卡住了。

    Push and turn-based

    基于平滑动画和pushing多个实体的基于turn的模式。

    警告:我已经从Phaser到 Phaser 3完成了最基本的插件的当前状态。 源码有点凌乱,但它是一个开始,足以运行我的示例演示。 插件的部分未准备用于一般用途,并且包含用于运行演示程序的快捷方式。 这些快捷键都与tilemap实现相关: 为了使所有功能正常工作,需要一个带有 16个x16像素块的x8像素栅格,可能还需要两个级别的最大高度。 我的下一个焦点将是路径,然后清理,使它更好地准备一般用途。

    安装指令在这里文件的末尾。

    这里托管了演示当前版本: 在Phaser版本中,http://metroid.niklasberg.se/P3GridPhysics/ ( 带查找支持的Phaser 2演示还没有添加到 Phaser 3版本: http://metroid.niklasberg.se/gridPhysics/ )

    讨论问题,反馈,请求或者其它与插件相关的内容: http://www.html5gamedevs.com/topic/37156-grid-physics-plugin-for-phaser-3/

    Credits

    这里插件 vs-快速定制解决方案

    基于网格的移动并不是很复杂( 将你的sprite移动到右边一步: 。x+=gridunitwidth")。与这里插件相关的目的是以稳定的方式,允许动画,碰撞检测,one-way-tiles,可以移动的时间和属性。 will游戏,游戏游戏,retro游戏,怀旧动作 RPG"NES ) 游戏,游戏和棋盘游戏。

    特性

    • 任何网格大小( 不一定是正方形,换句话说,8 x16是可能的,并且不限于sprite或者tiles大小)。
    • Tilemap:
      • 瓷砖尺寸可能与网格尺寸( 但需要是多个网格尺寸,比如个x8网格上的x16条) 不同。
      • 瓷砖碰撞:正常,在指定方向上,在任何方向离开平铺。
    • 实体( 子画面):
      • 体大小不限于网格大小,不同的体大小可能存在( 但必须等于或者等于网格尺寸的倍数或者倍数)。 图形可以能与身体大小不同,比如 18个带有 16个像素像素的x18子画面。
      • 可以移动对象( 可以是链,玩家将一个箱子推到另一个箱子,也可以移动)。
      • 质量( 和强度限制总质量可以由一个子弹的强度推动)
      • 速度,("战斗"可以根据质量推减速度的物体。
      • 填充的属性如 isMoving.x ( 布尔型) 或者 isBlocked.top ( 布尔型)。

    即将推出的功能

    • 基于或者实时。
    • 可视化调试
    • 冲突回调。
    • 路径查找( 希望没有外部依赖关系)

    未来特性

    根据我的兴趣,我可以增加额外的特性。 它的中一些特性是快速修复,我只是记住了它们,它的他人会更有挑战性。 没有特定顺序的可能想法:

    • Tilemap:
      • 地面类型:滑动,减速( 因子),移动
      • getPath ( x,y,x2,y2 )
      • noExitTop ( 等等等) - 碰撞,但防止在方向上留下平铺。
    • 体:
      • setGridPosition
      • 手势:跳跃,摇晃等。
      • movement.slide - 滑动角以防止卡住( 按下身体右上角的字符,如果可以能在下一步上滑动将导致滑动)
      • movement.ZeldaNESMovement - 将主体调整为网格的"自由移动"。
      • movement.turn - 允许在完成移动之前在相反的direction 中返回。
      • movement.margin - 允许新转弯在最后一个( 默认值= 0 ) 中留下像素的margin
      • 对实体和瓦片的碰撞,可能取消碰撞的回调。
      • 站立- 身体上的瓦片的array
      • blocked.dir
      • pushque.dir ( oavsett orkar )
      • 粒子碰撞
      • arcade运动( 子弹,随机向量)
      • 移动平台
      • 拖动
      • 磁性
      • Conjoined体
      • 重力。x/y
      • 暂停
      • MoveCountToXY - 必需的移动数( 使用路径查找)
      • JumpToXY - 在无碰撞检测的情况下移动到 XY
      • NextPossible - 在给定方向移动到下一个自由空间。
      • 正文 oncollide stopVelocityOnCollide
      • 支持非线性速度( 如 tweens )
      • 属性:blocked.left/right/up/down, isMoving,isPushing,massPushed
      • 尝试前往x,y simulanously - 如果无法工作,请尝试。
      • forcedMovement ( 被推送到所需对象的velocioty )

    plugin  MAT  GRID  arc  物理