import java.applet.Applet; import java.awt.*; import com.genuts.gameui.*; /** * Displays randomly sprites as tiles on the board.
* This offer the abilty to have a none uniform display of tiles. * The order of tiles is taken from the class Tiles. */ public class RandomBoard extends Applet { private PlayField playfield = null; private Sprite currentSprite; private Image ballImage = null; private Image redBallImage = null; public void init() { setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0)); // Loading images Image[] tileImage = new Image[4]; tileImage[0] = getImage(getClass().getResource("tile-1.gif")); tileImage[1] = getImage(getClass().getResource("tile-2.gif")); tileImage[2] = getImage(getClass().getResource("tile-3.gif")); tileImage[3] = getImage(getClass().getResource("tile-4.gif")); Image backgroundImage = getImage(getClass().getResource("background.jpg")); MediaTracker tracker = new MediaTracker(this); tracker.addImage(tileImage[0], 0); tracker.addImage(tileImage[1], 0); tracker.addImage(tileImage[2], 0); tracker.addImage(tileImage[3], 0); tracker.addImage(backgroundImage, 0); try { tracker.waitForID(0); } catch (InterruptedException e) { System.out.println("Loading interrupted"); } // Gets the size of a tile int tileSize = tileImage[0].getWidth(null); // Creates the playfield playfield = new PlayField(Tiles.tiles[0].length*tileSize, Tiles.tiles.length*tileSize); playfield.setBackground(Color.white); playfield.setBackgroundImage(backgroundImage); // Display tiles from class Tiles. // If the current position in the Tiles array is set to true, // a sprite, randomly taken from four ones, is created. for (int y = 0; y < Tiles.tiles.length; y++) { for (int x = 0; x < Tiles.tiles[y].length; x++) { if (Tiles.tiles[y][x]) { Sprite tile = new Sprite(tileImage[((int) (Math.random()*10000)) % 4]); tile.setPosition(x*tileSize, y*tileSize); playfield.addSprite(tile); } } } // Displays the playfield add(playfield); } public void start() { // Activate the playfield playfield.setPause(false); } public void stop() { if (playfield != null) { playfield.stop(); } } }