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 Floor

The floor is made of tiles created with my ColouredTiles class, and axis labels made with the Java 3D Text2D utility class. Figure 15-5 shows the floor branch, previously hidden inside a "Floor Branch" box in Figure 15-3.

Floor branch of the scene graph

Figure 15-5. Floor branch of the scene graph

The floor subgraph is constructed with an instance of my CheckerFloor class and made available via the getBG() method:

    sceneBG.addChild( new CheckerFloor().getBG() );  // add the floor

The CheckerFloor() constructor uses nested for loops to initialize two ArrayLists. The blueCoords list contains all the coordinates for the blue tiles, and greenCoords holds the coordinates for the green tiles. Once the ArrayLists are filled, they are passed to ColouredTiles objects, along with the color that should be used to render the tiles. A ColouredTiles object is a subclass of Shape3D, so can be added directly to the floor's graph:

    floorBG.addChild( new ColouredTiles(blueCoords, blue) );
    floorBG.addChild( new ColouredTiles(greenCoords, green) );

The red square at the origin (visible in Figure 15-1) is made in a similar way:

 Point3f p1 = new Point3f(-0.25f, 0.01f, 0.25f); Point3f p2 = new Point3f(0.25f, 0.01f, 0.25f); Point3f p3 = new Point3f(0.25f, 0.01f, -0.25f); Point3f p4 = new Point3f(-0.25f, 0.01f, -0.25f); ArrayList oCoords = new ArrayList(); oCoords.add(p1); oCoords.add(p2); oCoords.add(p3); oCoords.add(p4); floorBG.addChild( ...

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