The Animated 3D Sprite
Figure 19-5 shows the visible methods of AnimSprite3D
.
The interface of this class is almost identical to Sprite3D
(from the Tour3D
application in Chapter 18). The setPosition()
, moveBy()
, and doRotateY()
operations adjust the position and orientation of the sprite, isActive()
and setActive()
relate to the sprite's activity (i.e., whether it is visible on the screen or not), getCurrLoc()
returns the sprite's position, and getTG()
returns its top-level TransformGroup
.
The only new method is setPose()
, which takes a pose name as an argument and changes the displayed model accordingly. Its implementation is explained later in this section.
Figure 19-4. Scene graph for the application
Figure 19-5. The public methods of AnimSprite3D
Loading the Poses
The choice of models is hardwired into AnimSprite3D
, which makes things simpler than having to deal with arbitrary input. The names of the models are predefined in the poses[]
array:
private final static String poses[] = {"stand", "walk1", "walk2", "rev1", "rev2", "rotClock", "rotCC", "mleft", "mright", "punch1", "punch2"};
The names in poses[]
are used by loadPoses()
to load the same-named 3D Studio Max files using PropManager
. The loaded models (the different sprite poses) are attached to the scene using a Java 3D Switch
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.