Particle defines a single-pixel element (a-la mini-sprite) that has its own lifecycle and gets updated on each
frame update. Particle emitter is a components that is responsible for creating particles. And particle
sprite ties all that together into single renderable component. Particle sprite can have one or more particle
emitters and each emitter can create multiple particles. One of the key features of particle effect support is its
modularity: particle implementation can be reused by multiple emitters, and an emitter implementation can be reused by
multiple independent particle sprites.
CosPlay provides number of built-in sprites. A sprite is a scene objects, visible or off-screen,
that is custom designed for a particular use case. Built-in sprites provide concrete
implementations for the abstract methods in the base CPSceneObject class. Most non-trivial games
will use combination of the built-in sprites and their own ones. Here's the list of the built-in
sprites:
Gets the optional list of shaders attached to this scene object. By default, returns
an empty list. Note that shaders are called regardless of whether the object visible, in camera
frame or invisible.
Gets the optional list of shaders attached to this scene object. By default, returns
an empty list. Note that shaders are called regardless of whether the object visible, in camera
frame or invisible.
Gets current X-coordinate of this object within dimensions of its scene. Note that returned value
is allowed to be outside scene's dimension (e.g. negative value). In such cases, the clipping of the
scene rendering will result in showing only portion or none of the object.
Gets current X-coordinate of this object within dimensions of its scene. Note that returned value
is allowed to be outside scene's dimension (e.g. negative value). In such cases, the clipping of the
scene rendering will result in showing only portion or none of the object.
Gets current Y-coordinate of this object within dimensions of its scene. Note that returned value
is allowed to be outside scene's dimension (e.g. negative value). In such cases, the clipping of the
scene rendering will result in showing only portion or none of the object.
Gets current Y-coordinate of this object within dimensions of its scene. Note that returned value
is allowed to be outside scene's dimension (e.g. negative value). In such cases, the clipping of the
scene rendering will result in showing only portion or none of the object.
Gets Z-index or order to use in rendering of this object. A pixel with higher Z-index visually
overrides the overlapping pixel in the same XY-coordinate with equal or smaller Z-index.
Gets Z-index or order to use in rendering of this object. A pixel with higher Z-index visually
overrides the overlapping pixel in the same XY-coordinate with equal or smaller Z-index.
Called to render this scene object. Only visible and in camera frame objects will receive this
callback. This callback is called on scene object
after all scene objects received update callback. Note that unlike update callbacks
and shaders that are called for all scene objects on each frame, this callback is only called for scene
objects that are visible and, at least partially, in camera frame.
Called to render this scene object. Only visible and in camera frame objects will receive this
callback. This callback is called on scene object
after all scene objects received update callback. Note that unlike update callbacks
and shaders that are called for all scene objects on each frame, this callback is only called for scene
objects that are visible and, at least partially, in camera frame.
Sets or removes the callback for the end of the effect. End of the effect is
defined as first game frame when there are no live particles remained.
Note that if the effect is cyclical the callback will be called everytime
the end of effect is detected.
Sets or removes the callback for the end of the effect. End of the effect is
defined as first game frame when there are no live particles remained.
Note that if the effect is cyclical the callback will be called everytime
the end of effect is detected.
Attributes
fun
Callback function to set or None to remove any previously set callback.
Sets or removes the callback for the start of the effect. Start of the effect is
defined as first game frame when the first particle was emitted.
Note that if the effect is cyclical the callback will be called everytime
the start of the effect is detected.
Sets or removes the callback for the start of the effect. Start of the effect is
defined as first game frame when the first particle was emitted.
Note that if the effect is cyclical the callback will be called everytime
the start of the effect is detected.
Attributes
fun
Callback function to set or None to remove previously set callback.
Toggles pause state of all emitters by calling their CPParticleEmitter.toggle method.
Note that with this method you don't have the control of resetting the emitter before resuming
its emission.
Toggles pause state of all emitters by calling their CPParticleEmitter.toggle method.
Note that with this method you don't have the control of resetting the emitter before resuming
its emission.
Called to update the internal state of this scene object. This callback is called each frame on every
object in the scene and it is called before any render callback. Note that all scene object will
receive this callback before first render callback.
Called to update the internal state of this scene object. This callback is called each frame on every
object in the scene and it is called before any render callback. Note that all scene object will
receive this callback before first render callback.
It is reflexive: for any instance x of type Any, x.equals(x) should return true.
It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and
only if y.equals(x) returns true.
It is transitive: for any instances x, y, and z of type Any if x.equals(y) returns true and
y.equals(z) returns true, then x.equals(z) should return true.
If you override this method, you should verify that your implementation remains an equivalence relation.
Additionally, when overriding this method it is usually necessary to override hashCode to ensure that
objects which are "equal" (o1.equals(o2) returns true) hash to the same scala.Int.
(o1.hashCode.equals(o2.hashCode)).
Attributes
that
the object to compare against this object for equality.
Returns:
true if the receiver object is equivalent to the argument; false otherwise.
If object is invisible than only update method will be called
on each frame. If object is visible and in camera frame - method render will be called
as well to render itself. Note that shaders are called regardless of whether the object visible, in camera
frame or invisible.