The Animation Framework
AlienTilesPanel
is similar to JackPanel
in Chapter 12; it uses an active rendering animation loop driven by Java 3D's timer. It displays an introductory image when the game starts, which doubles as a help screen during the course of play. While the help screen is being shown, the game pauses.
Managing the Game World
AlienTilesPanel
creates the various game elements in createWorld()
:
// globals game entities private WorldDisplay world; private PlayerSprite player; private AlienSprite aliens[]; private void createWorld(ImagesLoader imsLoader) // create the world display, the player, and aliens { world = new WorldDisplay(imsLoader, this); player = new PlayerSprite(7,12, PWIDTH, PHEIGHT, clipsLoader, imsLoader, world, this); // sprite starts on tile (7,12) aliens = new AlienSprite[4]; aliens[0] = new AlienAStarSprite(10, 11, PWIDTH, PHEIGHT, imsLoader, world); aliens[1] = new AlienQuadSprite(6, 21, PWIDTH, PHEIGHT, imsLoader, world); aliens[2] = new AlienQuadSprite(14, 20, PWIDTH, PHEIGHT, imsLoader, world); aliens[3] = new AlienAStarSprite(34, 34, PWIDTH, PHEIGHT, imsLoader, world); // use 2 AStar and 2 quad alien sprites // the 4th alien is placed at an illegal tile location (34,34) world.addSprites(player, aliens); // tell the world about the sprites } // end of createWorld()
Tile coordinates are passed to the sprites, rather than pixel locations in the JPanel
. The two A* and two quad sprites are stored in an aliens[]
array to make it easier to send messages ...
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.