Shooting Behavior
ShootingBehaviour
is a subclass of PickMouseBehavior
, which controls the various shooting-related entities when the user clicks the mouse. The gun cone and laser beam are rotated to point at the placed clicked on the checkerboard. Then, a FireBeam
thread is created to move (fire) the beam towards the location and display the explosion.
ShootingBehaviour
's central role in the application means that it has passed references to the GunTurret
, LaserBeam
, and ExplosionsClip
objects. In the first version of this class, the code was complex since it dealt directly with the TransformGroup
s and Shape3D
s of the shooting elements. Good OOD of the application entities (e.g., hiding subgraph details and computation) leads to a halving of ShootingBehaviour
's code length, making it easier to understand, maintain, and modify.
The ShootingBehaviour
constructor is similar to the constructor in ExamplePickBehavior
:
public ShootingBehaviour(Canvas3D canvas, BranchGroup root, Bounds bounds, Point3d sp, ExplosionsClip ec, LaserBeam lb, GunTurret g) { super(canvas, root, bounds); setSchedulingBounds(bounds); pickCanvas.setMode(PickCanvas.GEOMETRY_INTERSECT_INFO); // allows PickIntersection objects to be returned startPt = sp; // location of the gun cone explsClip = ec; laser = lb; gun = g; // other initialization code... }
updateScene()
is similar to the one in ExamplePickBehavior
since it requires intersection information. updateScene()
rotates the gun cone and beam to point at the ...
Get Killer Game Programming in Java now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.