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
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access