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 的方法