O'Reilly logo

Killer Game Programming in Java by Andrew Davison

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required