Java Reference
In-Depth Information
body.adjustVelocity(new Vector2f(Math.cos(theta)*startingSpeed,
Math.sin(theta)*startingSpeed));
insert body into bodies;
}
public override function update():Void{
stepsLeft--;
if (stepsLeft <= 0){
Main.removeWorldNode(this)
}
var ratio = stepsLeft/totalSteps;
if (ratio < 0){
ratio = 0;
}
opacity = fadeInterpolator.interpolate(0.0, 1.0, ratio) as Number;
translateX = bodies[0].getPosition().getX();
translateY = bodies[0].getPosition().getY();
rotate = Math.toDegrees(bodies[0].getRotation());
}
}
Listing 10-4 shows the class PhysicsParticle , which extends Group , WorldNode , and Particle . The
init function of PhysicsParticle adds an ImageView to the content . A Body is also created with the same
location and rotation as the PhysicsParticle , and it's given a velocity based on the startingDirection
and startingSpeed .
The update function is called after each step of the world object, and the location and rotation of the
PhysicsParticle is adjusted to match the Body . The lifecycle of the PhysicsParticle is also handled by
the function update . The value of stepsLeft is reduced by one, and if it reduces to zero, the entity is
removed from the scene and the world.
If fadeInterpolator is set, the opacity of the PhysicsParticle is adjusted. The actual opacity is
calculated by figuring out what ratio of the PhysicsParticle's steps have expired. This ratio is then fed
into the fadeInterpolator to get the final result. The spark particles in this example use a spline
interpolator with its value set so that most of the fading is put off until the end of the lifecycle.
Emitters as Bodies
The next example uses only a few bodies, but each body specifies the location of a more traditional
particle emitter. As the emitters move about the screen, the particles they create basically stay in place.
The advantage of this technique is that the number of bodies in the simulation is greatly reduced, so
there are performance gains.
Figure 10-3 shows a number of fireballs bouncing down a field of pegs. As the fireball moves, a
particle is created that drifts slightly upward, giving each fireball a trail effect—something required by
fireballs.
Search WWH ::




Custom Search