Physics 物理引擎

# Physics 物理引擎

http://phaser.io/docs/2.6.2/Phaser.Physics.html

物理管理器负责照看所有正在运行的物理系统。 Phaser 支持 4 种物理系统。Arcade Physics、P2、Ninja Physics 和 Box2D(通过一个商业插件)。

游戏对象(如精灵)只能属于一个物理系统,但你可以在一个游戏中激活多个系统。

例如,你可以让 P2 管理车辆驶过的多边形地形,而它可以发射子弹,使用的是 P2 系统。 更快(因为更简单)的街机物理系统。

new Physics(game, physicsConfig);

参数

  • game
    • 对当前运行的游戏的引用。
  • physicsConfig
    • 一个物理配置对象,在创建时传递给物理世界。

# 属性

# arcade

# 方法

# startSystem()

// 初始化 Arcade Physics 引擎
game.physics.startSystem(Phaser.Physics.ARCADE);

# clear()

<内部方法> clear() 清理所有活动的物理系统。这并不破坏它们,它只是清除它们的对象,并在状态改变时被调用

# destroy()

销毁所有活动的物理系统。通常只在游戏关闭时调用,在状态交换时不调用。

# enable()

enable(object, system, debug)

参数

  • object 【object | array】

    要创建物理体的游戏对象。也可以是一个对象的数组,数组中的每个对象都将被创建一个体。

  • system 【number】可选,默认 Phaser.Physics.ARCADE

    将用于创建身体的物理系统。默认为街机物理。

  • debug 【boolean】可选,默认 false

    启用本体的调试绘图。默认为 false。

这将在给定的游戏对象或对象阵列上创建一个默认物理体。 一个游戏对象在任何时候都只能有一个激活的物理体,而且在该对象被销毁之前,它不能被改变。 它可以是任何已经启动的物理系统。

Phaser.Physics.Arcade - 一个基于 AABB 的轻量级碰撞系统,具有基本的分离功能。 Phaser.Physics.P2JS - 一个全身高级物理系统,支持多种物体形状、多边形加载、接触材料、弹簧和约束。 Phaser.Physics.NINJA - Metanet Softwares N+物理系统的一个移植。先进的 AABB 和圆形与瓦片的碰撞。 Phaser.Physics.BOX2D - 移植自https://code.google.com/p/box2d-html5。 Phaser.Physics.MATTER - 全身和轻量级的高级物理系统(仍在开发中)。 Phaser.Physics.CHIPMUNK 仍在开发中。

如果你需要对创建的身体类型有更多的控制,例如创建一个 Ninja Physics Circle 而不是默认的 AABB,那么请看 个别物理系统的启用方法,而不是使用这个通用方法。

// 开启球的物理效果
game.physics.enable(ball, Phaser.Physics.ARCADE);

#