new Creature(game, x, y, key, mesh, animation)
Creature is a custom Game Object used in conjunction with the Creature Runtime libraries by Kestrel Moon Studios.
It allows you to display animated Game Objects that were created with the Creature Automated Animation Tool.
Note 1: You can only use Phaser.Creature objects in WebGL enabled games. They do not work in Canvas mode games.
Note 2: You must use a build of Phaser that includes the CreatureMeshBone.js runtime and gl-matrix.js, or have them loaded before your Phaser game boots.
See the Phaser custom build process for more details.
By default the Creature runtimes are NOT included in any pre-configured version of Phaser.
So you'll need to do grunt custom
to create a build that includes them.
Parameters:
Name | Type | Argument | Default | Description |
---|---|---|---|---|
game |
Phaser.Game | A reference to the currently running game. |
||
x |
number | The x coordinate of the Game Object. The coordinate is relative to any parent container this Game Object may be in. |
||
y |
number | The y coordinate of the Game Object. The coordinate is relative to any parent container this Game Object may be in. |
||
key |
string | PIXI.Texture | The texture used by the Creature Object during rendering. It can be a string which is a reference to the Cache entry, or an instance of a PIXI.Texture. |
||
mesh |
string | The mesh data for the Creature Object. It should be a string which is a reference to the Cache JSON entry. |
||
animation |
string |
<optional> |
'default' | The animation within the mesh data to play. |
- Source - gameobjects/Creature.js, line 42
Extends
- PIXI.DisplayObjectContainer
- Phaser.Component.Core
- Phaser.Component.Angle
- Phaser.Component.AutoCull
- Phaser.Component.BringToTop
- Phaser.Component.Destroy
- Phaser.Component.FixedToCamera
- Phaser.Component.LifeSpan
- Phaser.Component.Reset
Members
-
alive :boolean
-
A useful flag to control if the Game Object is alive or dead.
This is set automatically by the Health components
damage
method should the object run out of health. Or you can toggle it via your game code.This property is mostly just provided to be used by your game - it doesn't effect rendering or logic updates. However you can use
Group.getFirstAlive
in conjunction with this property for fast object pooling and recycling.- Inherited From:
- Default Value:
- true
- Source - gameobjects/components/LifeSpan.js, line 50
-
angle :number
-
The angle property is the rotation of the Game Object in degrees from its original orientation.
Values from 0 to 180 represent clockwise rotation; values from 0 to -180 represent counterclockwise rotation.
Values outside this range are added to or subtracted from 360 to obtain a value within the range. For example, the statement player.angle = 450 is the same as player.angle = 90.
If you wish to work in radians instead of degrees you can use the property
rotation
instead. Working in radians is slightly faster as it doesn't have to perform any calculations.- Inherited From:
- Source - gameobjects/components/Angle.js, line 29
-
animation :CreatureAnimation
-
The CreatureAnimation instance.
- Source - gameobjects/Creature.js, line 69
-
animations :Phaser.AnimationManager
-
If the Game Object is enabled for animation (such as a Phaser.Sprite) this is a reference to its AnimationManager instance. Through it you can create, play, pause and stop animations.
- Inherited From:
- Source - gameobjects/components/Core.js, line 193
- See:
-
autoCull :boolean
-
A Game Object with
autoCull
set to true will check its bounds against the World Camera every frame. If it is not intersecting the Camera bounds at any point then it has itsrenderable
property set tofalse
. This keeps the Game Object alive and still processing updates, but forces it to skip the render step entirely.This is a relatively expensive operation, especially if enabled on hundreds of Game Objects. So enable it only if you know it's required, or you have tested performance and find it acceptable.
- Inherited From:
- Source - gameobjects/components/AutoCull.js, line 28
-
cameraOffset :Phaser.Point
-
The x/y coordinate offset applied to the top-left of the camera that this Game Object will be drawn at if
fixedToCamera
is true.The values are relative to the top-left of the camera view and in addition to any parent of the Game Object on the display list.
- Inherited From:
- Source - gameobjects/components/FixedToCamera.js, line 86
-
<readonly> children :Array.<DisplayObject>
-
[read-only] The array of children of this container.
Type:
- Array.<DisplayObject>
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 17
-
<internal> colors :PIXI.Uint16Array
-
The vertices colors
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source - gameobjects/Creature.js, line 142
-
<internal> components :object
-
The components this Game Object has installed.
- Inherited From:
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source - gameobjects/components/Core.js, line 167
-
<internal> creatureBoundsMax :Phaser.Point
-
The maximum bounds point.
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source - gameobjects/Creature.js, line 111
-
<internal> creatureBoundsMin :Phaser.Point
-
The minimum bounds point.
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source - gameobjects/Creature.js, line 105
-
data :Object
-
An empty Object that belongs to this Game Object. This value isn't ever used internally by Phaser, but may be used by your own code, or by Phaser Plugins, to store data that needs to be associated with the Game Object, without polluting the Game Object directly.
- Inherited From:
- Default Value:
- {}
- Source - gameobjects/components/Core.js, line 160
-
debug :boolean
-
A debug flag designed for use with
Game.enableStep
.- Inherited From:
- Source - gameobjects/components/Core.js, line 218
-
<readonly> destroyPhase :boolean
-
As a Game Object runs through its destroy method this flag is set to true, and can be checked in any sub-systems or plugins it is being destroyed from.
- Inherited From:
- Source - gameobjects/components/Destroy.js, line 22
-
events :Phaser.Events
-
All Phaser Game Objects have an Events class which contains all of the events that are dispatched when certain things happen to this Game Object, or any of its components.
- Inherited From:
- Source - gameobjects/components/Core.js, line 185
- See:
-
exists :boolean
-
Controls if this Game Object is processed by the core game loop. If this Game Object has a physics body it also controls if its physics body is updated or not. When
exists
is set tofalse
it will remove its physics body from the physics world if it has one. It also toggles thevisible
property to false as well.Setting
exists
to true will add its physics body back in to the physics world, if it has one. It will also set thevisible
property totrue
.- Inherited From:
- Source - gameobjects/components/Core.js, line 284
-
fixedToCamera :boolean
-
A Game Object that is "fixed" to the camera uses its x/y coordinates as offsets from the top left of the camera during rendering.
The values are adjusted at the rendering stage, overriding the Game Objects actual world position.
The end result is that the Game Object will appear to be 'fixed' to the camera, regardless of where in the game world the camera is viewing. This is useful if for example this Game Object is a UI item that you wish to be visible at all times regardless where in the world the camera is.
The offsets are stored in the
cameraOffset
property.Note that the
cameraOffset
values are in addition to any parent of this Game Object on the display list.Be careful not to set
fixedToCamera
on Game Objects which are in Groups that already havefixedToCamera
enabled on them.- Inherited From:
- Source - gameobjects/components/FixedToCamera.js, line 56
-
<readonly> fresh :boolean
-
A Game Object is considered
fresh
if it has just been created or reset and is yet to receive a renderer transform update. This property is mostly used internally by the physics systems, but is exposed for the use of plugins.- Inherited From:
- Source - gameobjects/components/Core.js, line 248
-
game :Phaser.Game
-
A reference to the currently running Game.
- Inherited From:
- Source - gameobjects/components/Core.js, line 142
-
height :Number
-
The height of the displayObjectContainer, setting this will actually modify the scale to achieve the value set
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 72
-
ignoreChildInput :Boolean
-
If
ignoreChildInput
isfalse
it will allow this objects children to be considered as valid for Input events.If this property is
true
then the children will not be considered as valid for Input events.Note that this property isn't recursive: only immediate children are influenced, it doesn't scan further down.
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 26
-
<readonly> inCamera :boolean
-
Checks if the Game Objects bounds intersect with the Game Camera bounds. Returns
true
if they do, otherwisefalse
if fully outside of the Cameras bounds.- Inherited From:
- Source - gameobjects/components/AutoCull.js, line 37
-
<internal> indices :PIXI.Uint16Array
-
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source - gameobjects/Creature.js, line 131
-
isPlaying :boolean
-
Is the current animation playing?
- Source - gameobjects/Creature.js, line 443
-
key :string|Phaser.RenderTexture|Phaser.BitmapData|Phaser.Video|PIXI.Texture
-
The key of the image or texture used by this Game Object during rendering. If it is a string it's the string used to retrieve the texture from the Phaser Image Cache. It can also be an instance of a RenderTexture, BitmapData, Video or PIXI.Texture. If a Game Object is created without a key it is automatically assigned the key
__default
which is a 32x32 transparent PNG stored within the Cache. If a Game Object is given a key which doesn't exist in the Image Cache it is re-assigned the key__missing
which is a 32x32 PNG of a green box with a line through it.Type:
- string | Phaser.RenderTexture | Phaser.BitmapData | Phaser.Video | PIXI.Texture
- Inherited From:
- Source - gameobjects/components/Core.js, line 203
-
lifespan :number
-
The lifespan allows you to give a Game Object a lifespan in milliseconds.
Once the Game Object is 'born' you can set this to a positive value.
It is automatically decremented by the millisecond equivalent of
game.time.physicsElapsed
each frame. When it reaches zero it will call thekill
method.Very handy for particles, bullets, collectibles, or any other short-lived entity.
- Inherited From:
- Source - gameobjects/components/LifeSpan.js, line 65
-
loop :boolean
-
Should the current animation loop or not?
- Source - gameobjects/Creature.js, line 463
-
manager :CreatureManager
-
The CreatureManager instance for this object.
- Source - gameobjects/Creature.js, line 74
-
name :string
-
A user defined name given to this Game Object. This value isn't ever used internally by Phaser, it is meant as a game level property.
- Inherited From:
- Source - gameobjects/components/Core.js, line 150
-
pendingDestroy :boolean
-
A Game Object is that is pendingDestroy is flagged to have its destroy method called on the next logic update. You can set it directly to allow you to flag an object to be destroyed on its next update.
This is extremely useful if you wish to destroy an object from within one of its own callbacks such as with Buttons or other Input events.
- Inherited From:
- Source - gameobjects/components/Core.js, line 259
-
<readonly> previousPosition :Phaser.Point
-
The position the Game Object was located in the previous frame.
- Inherited From:
- Source - gameobjects/components/Core.js, line 225
-
<readonly> previousRotation :number
-
The rotation the Game Object was in set to in the previous frame. Value is in radians.
- Inherited From:
- Source - gameobjects/components/Core.js, line 232
-
<readonly> renderOrderID :number
-
The render order ID is used internally by the renderer and Input Manager and should not be modified. This property is mostly used internally by the renderers, but is exposed for the use of plugins.
- Inherited From:
- Source - gameobjects/components/Core.js, line 240
-
texture :PIXI.Texture
-
The texture the animation is using.
- Source - gameobjects/Creature.js, line 94
-
timeDelta :number
-
How quickly the animation advances.
- Default Value:
- 0.05
- Source - gameobjects/Creature.js, line 80
-
<readonly> type :number
-
The const type of this object.
- Source - gameobjects/Creature.js, line 50
-
<internal> uvs :PIXI.Float32Array
-
The UV data.
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source - gameobjects/Creature.js, line 125
-
<internal> vertices :PIXI.Float32Array
-
The vertices data.
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source - gameobjects/Creature.js, line 119
-
width :Number
-
The width of the displayObjectContainer, setting this will actually modify the scale to achieve the value set
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 43
-
world :Phaser.Point
-
The world coordinates of this Game Object in pixels. Depending on where in the display list this Game Object is placed this value can differ from
position
, which contains the x/y coordinates relative to the Game Objects parent.- Inherited From:
- Source - gameobjects/components/Core.js, line 211
-
<readonly> z :number
-
The z depth of this Game Object within its parent Group. No two objects in a Group can have the same z value. This value is adjusted automatically whenever the Group hierarchy changes. If you wish to re-order the layering of a Game Object then see methods like Group.moveUp or Group.bringToTop.
- Inherited From:
- Source - gameobjects/components/Core.js, line 177
Methods
-
addChild(child) → {DisplayObject}
-
Adds a child to the container.
Parameters:
Name Type Description child
DisplayObject The DisplayObject to add to the container
Returns:
The child that was added.
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 102
-
addChildAt(child, index) → {DisplayObject}
-
Adds a child to the container at a specified index. If the index is out of bounds an error will be thrown
Parameters:
Name Type Description child
DisplayObject The child to add
index
Number The index to place the child in
Returns:
The child that was added.
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 114
-
bringToTop() → {PIXI.DisplayObject}
-
Brings this Game Object to the top of its parents display list. Visually this means it will render over the top of any old child in the same Group.
If this Game Object hasn't been added to a custom Group then this method will bring it to the top of the Game World, because the World is the root Group from which all Game Objects descend.
Returns:
PIXI.DisplayObject -This instance.
- Inherited From:
- Source - gameobjects/components/BringToTop.js, line 24
-
destroy(destroyChildren, destroyTexture)
-
Destroys the Game Object. This removes it from its parent group, destroys the input, event and animation handlers if present and nulls its reference to
game
, freeing it up for garbage collection.If this Game Object has the Events component it will also dispatch the
onDestroy
event.You can optionally also destroy the BaseTexture this Game Object is using. Be careful if you've more than one Game Object sharing the same BaseTexture.
Parameters:
Name Type Argument Default Description destroyChildren
boolean <optional>
true Should every child of this object have its destroy method called as well?
destroyTexture
boolean <optional>
false Destroy the BaseTexture this Game Object is using? Note that if another Game Object is sharing the same BaseTexture it will invalidate it.
- Inherited From:
- Source - gameobjects/components/Destroy.js, line 37
-
getBounds() → {Rectangle}
-
Retrieves the bounds of the displayObjectContainer as a rectangle. The bounds calculation takes all visible children into consideration.
Returns:
Rectangle -The rectangular bounding area
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 318
-
getChildAt(index) → {DisplayObject}
-
Returns the child at the specified index
Parameters:
Name Type Description index
Number The index to get the child from
Returns:
The child at the given index, if any.
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 205
-
getChildIndex(child) → {Number}
-
Returns the index position of a child DisplayObject instance
Parameters:
Name Type Description child
DisplayObject The DisplayObject instance to identify
Returns:
Number -The index position of the child display object to identify
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 170
-
getLocalBounds() → {Rectangle}
-
Retrieves the non-global local bounds of the displayObjectContainer as a rectangle. The calculation takes all visible children into consideration.
Returns:
Rectangle -The rectangular bounding area
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 383
-
kill() → {PIXI.DisplayObject}
-
Kills a Game Object. A killed Game Object has its
alive
,exists
andvisible
properties all set to false.It will dispatch the
onKilled
event. You can listen toevents.onKilled
for the signal.Note that killing a Game Object is a way for you to quickly recycle it in an object pool, it doesn't destroy the object or free it up from memory.
If you don't need this Game Object any more you should call
destroy
instead.Returns:
PIXI.DisplayObject -This instance.
- Inherited From:
- Source - gameobjects/components/LifeSpan.js, line 113
-
moveDown() → {PIXI.DisplayObject}
-
Moves this Game Object down one place in its parents display list. This call has no effect if the Game Object is already at the bottom of the display list.
If this Game Object hasn't been added to a custom Group then this method will move it one object down within the Game World, because the World is the root Group from which all Game Objects descend.
Returns:
PIXI.DisplayObject -This instance.
- Inherited From:
- Source - gameobjects/components/BringToTop.js, line 87
-
moveUp() → {PIXI.DisplayObject}
-
Moves this Game Object up one place in its parents display list. This call has no effect if the Game Object is already at the top of the display list.
If this Game Object hasn't been added to a custom Group then this method will move it one object up within the Game World, because the World is the root Group from which all Game Objects descend.
Returns:
PIXI.DisplayObject -This instance.
- Inherited From:
- Source - gameobjects/components/BringToTop.js, line 66
-
play(loop)
-
Plays the currently set animation.
Parameters:
Name Type Argument Default Description loop
boolean <optional>
false Should the animation loop?
- Source - gameobjects/Creature.js, line 413
-
<internal> postUpdate()
-
Internal method called by the World postUpdate cycle.
- Inherited From:
- Internal:
- This member is internal (protected) and may be modified or removed in the future.
- Source - gameobjects/components/Core.js, line 338
-
preUpdate()
-
Automatically called by World.preUpdate.
- Source - gameobjects/Creature.js, line 169
-
removeChild(child) → {DisplayObject}
-
Removes a child from the container.
Parameters:
Name Type Description child
DisplayObject The DisplayObject to remove
Returns:
The child that was removed.
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 222
-
removeChildAt(index) → {DisplayObject}
-
Removes a child from the specified index position.
Parameters:
Name Type Description index
Number The index to get the child from
Returns:
The child that was removed.
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 237
-
removeChildren(beginIndex, endIndex)
-
Removes all children from this container that are within the begin and end indexes.
Parameters:
Name Type Description beginIndex
Number The beginning position. Default value is 0.
endIndex
Number The ending position. Default value is size of the container.
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 255
-
removeStageReference()
-
Removes the current stage reference from the container and all of its children.
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 428
-
reset(x, y, health) → {PIXI.DisplayObject}
-
Resets the Game Object.
This moves the Game Object to the given x/y world coordinates and sets
fresh
,exists
,visible
andrenderable
to true.If this Game Object has the LifeSpan component it will also set
alive
to true andhealth
to the given value.If this Game Object has a Physics Body it will reset the Body.
Parameters:
Name Type Argument Default Description x
number The x coordinate (in world space) to position the Game Object at.
y
number The y coordinate (in world space) to position the Game Object at.
health
number <optional>
1 The health to give the Game Object if it has the Health component.
Returns:
PIXI.DisplayObject -This instance.
- Inherited From:
- Source - gameobjects/components/Reset.js, line 30
-
revive(health) → {PIXI.DisplayObject}
-
Brings a 'dead' Game Object back to life, optionally resetting its health value in the process.
A resurrected Game Object has its
alive
,exists
andvisible
properties all set to true.It will dispatch the
onRevived
event. Listen toevents.onRevived
for the signal.Parameters:
Name Type Argument Default Description health
number <optional>
100 The health to give the Game Object. Only set if the GameObject has the Health component.
Returns:
PIXI.DisplayObject -This instance.
- Inherited From:
- Source - gameobjects/components/LifeSpan.js, line 78
-
sendToBack() → {PIXI.DisplayObject}
-
Sends this Game Object to the bottom of its parents display list. Visually this means it will render below all other children in the same Group.
If this Game Object hasn't been added to a custom Group then this method will send it to the bottom of the Game World, because the World is the root Group from which all Game Objects descend.
Returns:
PIXI.DisplayObject -This instance.
- Inherited From:
- Source - gameobjects/components/BringToTop.js, line 45
-
setAnimation(key)
-
Sets the Animation this Creature object will play, as defined in the mesh data.
Parameters:
Name Type Description key
string The key of the animation to set, as defined in the mesh data.
- Source - gameobjects/Creature.js, line 400
-
setChildIndex(child, index)
-
Changes the position of an existing child in the display object container
Parameters:
Name Type Description child
DisplayObject The child DisplayObject instance for which you want to change the index number
index
Number The resulting index number for the child display object
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 187
-
setStageReference(stage)
-
Sets the containers Stage reference. This is the Stage that this object, and all of its children, is connected to.
Parameters:
Name Type Description stage
Stage the stage that the container will have as its current stage reference
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 412
-
stop()
-
Stops the currently playing animation.
- Source - gameobjects/Creature.js, line 431
-
swapChildren(child, child2)
-
Swaps the position of 2 Display Objects within this container.
Parameters:
Name Type Description child
DisplayObject -
child2
DisplayObject -
- Inherited From:
- Source - pixi/display/DisplayObjectContainer.js, line 145
-
update()
-
Override this method in your own custom objects to handle any update requirements. It is called immediately after
preUpdate
and beforepostUpdate
. Remember if this Game Object has any children you should call update on those too.- Inherited From:
- Source - gameobjects/components/Core.js, line 328