Sprite

# Sprite

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

一个有纹理的游戏对象,能够运行动画、输入事件和物理学。

精灵是游戏的命脉,几乎用于所有视觉效果。 最基本的 Sprite 由一组坐标和渲染到画布的纹理组成。 它们还包含允许物理运动(通过 Sprite.body)、输入处理(通过 Sprite.input)、 事件(通过 Sprite.events)、动画(通过 Sprite.animations)、相机剔除等。

构造函数

new Sprite(game, x, y, key, frame);

参数

  • game 【Phaser.Game】

    • 对当前正在运行的游戏的引用。
  • x 【number】

    • 放置 Sprite 的 x 坐标(在世界空间中)
  • y 【number】

    • 放置 Sprite 的 y 坐标(在世界空间中)
  • key 【string | Phaser.RenderTexture | Phaser.BitmapData | PIXI.Texture】

    • 这是 Sprite 在渲染过程中使用的图像或纹理。它可以是一个字符串,它是对缓存条目的引用,或者是 RenderTexture 或 PIXI.Texture 的实例。
  • frame 【string | number】

    • 如果此 Sprite 使用的是 Sprite 表或纹理图集的一部分,您可以通过提供字符串或数字索引来指定要使用的确切帧。

# 属性

# alive

一个有用的标志,用来控制游戏对象是活着还是死了。

如果对象的生命值耗尽,健康组件的伤害方法会自动设置这个标志。或者你可以通过你的游戏代码来切换它。

这个属性主要是提供给你的游戏使用的--它并不影响渲染或逻辑更新。然而,你可以使用 Group.getFirstAlive 与这个属性结合起来,以实现快速的对象池和回收。

# anchor

锚点设置纹理的原点。是一个 Point 对象 。

默认值为 (0, 0),这意味着纹理的原点位于左上角。将锚点设置为 (0.5, 0.5) 表示纹理原点居中,将锚点设置为 (1, 1) 将意味着纹理原点将位于右下角

# body

body 是游戏对象的物理体。一旦一个游戏对象被启用为物理学,你就可以通过它访问所有相关的属性和方法。

默认情况下,游戏对象不会将自己添加到任何物理系统中,其主体属性将为空。

要为物理学启用这个游戏对象,你需要调用 game.physics.enable(object, system) 其中 object 是这个对象 和系统是你正在使用的物理系统。如果没有给出,它默认为 Phaser.Physics.Arcade。

你也可以调用 game.physics.arcade.enable(object),或者将这个游戏对象添加到一个启用物理的组中。

重要提示:为 P2 或 Ninja 物理学启用一个游戏对象会自动将其锚点属性设置为 0.5。 所以物理体在游戏对象上是居中的。

如果你需要一个不同的结果,那就手动调整或重新创建主体形状的偏移,或者在启用物理学后重置锚点。

sprite.body 的属性

  • acceleration

    加速度是速度的变化率。以每秒平方的像素来衡量。

  • allowGravity

    允许本体受到重力的影响?无论是世界还是本地。

  • allowRotation

    允许这个身体被旋转吗?(通过角度速度等)

  • angle

    [readonly] angle : number

    体的速度角度,单位为弧度。

  • bounce

    碰撞反弹。bounce.x/y=1 意味着完全反弹,bounce.x/y=0.5 意味着 50%的反弹速度。

  • checkCollision

    设置 checkCollision 属性来控制这个车身的碰撞处理方向。 例如,checkCollision.up = false 意味着当碰撞发生在向上移动时,它不会发生碰撞。 如果你需要完全禁用一个 Body,使用 body.enable = false,这也会禁用运动。 如果你需要只禁用碰撞和/或重叠检查,但保留运动,请设置 checkCollision.none = true。一个包含允许碰撞的对象。

  • collideWorldBounds

    身体可以被设置为自动碰撞世界边界,如果设置为 "true",则反弹回世界。否则它将离开世界。身体应该与世界边界相撞吗?

  • drag

    摩擦力。

  • touching

    当实体与另一个碰撞时,此对象将填充布尔值。

    touch.up=true 表示碰撞发生在该主体的顶部。包含触摸结果的对象。

  • velocity

    速度,或身体的速度变化率。以每秒的像素为单位测量。Phaser.Point (opens new window)

    // 在屏幕上移动球
    ball.body.velocity.set(150, 150);
    // 球将通过向上移动而不是下降来开始游戏
    ball.body.velocity.set(150, -150);
    

# animations

如果游戏对象被启用为动画(比如 Phaser.Sprite),这就是对其 AnimationManager 实例的引用。

通过它,你可以创建、播放、暂停和停止动画。

sprite.body 的方法

#

# 方法

# 示例