public void draw() { Graphics g = environment.getScreenHandler().getCurrentGraphics(); g.clearRect( 0, 0, environment.getScreenHandler().getWidth(), environment.getScreenHandler().getHeight()); fps.update(); fps.draw(g, Color.red, 10, 10); g.setColor(Color.white); g.drawString(model.getInfoString(), 50, 10); g.setColor(Color.white); if (cheatMode) { g.setColor(Color.white); g.drawString("CHEATMODE", 80, 10); } g.setClip(cont.getOffsetX(), cont.getOffsetY(), cont.getDrawingSizeX(), cont.getDrawingSizeY()); if (model.isInitialized()) { model.getMap().draw(g, 0); model.getMyCar().draw(g, 0); CarDrawInterface cars[] = model.getOpponentCars(); for (int i = 0; i < cars.length; i++) { cars[i].draw(g, 0); } if (!model.isStarted()) { g.setColor(Color.white); g.clearRect(50, 50, 400, 150); g.drawString("Accellerate to start game", 100, 100); if (model.isMultiplayer()) { if (model.getNoOfHumanCars() > 1) { g.drawString( "Currently " + (model.getNoOfHumanCars() - 1) + " other human player(s) connected", 100, 120); } else { g.drawString("Only you and computer contolled cars are connected", 100, 120); } g.drawString("You can wait for more human players to connect", 100, 140); } } } else { g.setColor(Color.white); g.clearRect(50, 50, 400, 150); g.drawString("Loading game data, please wait...", 100, 100); } }
/** Draw all the game graphics */ public void draw() { Graphics g = environment.getScreenHandler().getCurrentGraphics(); g.clearRect( 0, 0, environment.getScreenHandler().getWidth(), environment.getScreenHandler().getHeight()); int gameSizeX = (contAllowed.getSizeX() + contNotAllowed.getSizeX() + 3) * blockSize + 2; int gameSizeY = contAllowed.getSizeY() * blockSize + 2; g.setColor(Color.white); g.drawString( "Allowed:", contAllowed.getDrawingPositionX(0), contAllowed.getDrawingPositionY(0) - 3); g.drawString( "Not allowed:", contNotAllowed.getDrawingPositionX(0), contNotAllowed.getDrawingPositionY(0) - 3); g.setColor(Color.blue); g.drawRect( contAllowed.getDrawingPositionX(0), contAllowed.getDrawingPositionY(0), contAllowed.getSizeX() * contAllowed.getSquareSize(), contAllowed.getSizeY() * contAllowed.getSquareSize()); g.drawRect( contNotAllowed.getDrawingPositionX(0), contNotAllowed.getDrawingPositionY(0), contNotAllowed.getSizeX() * contNotAllowed.getSquareSize(), contNotAllowed.getSizeY() * contNotAllowed.getSquareSize()); if (blocksAllowed != null) { for (int i = 0; i < blocksAllowed.length; i++) { blocksAllowed[i].draw(g); } } if (blocksNotAllowed != null) { for (int i = 0; i < blocksNotAllowed.length; i++) { blocksNotAllowed[i].draw(g); } } if (selectedBlock != null) { g.setColor(Color.white); BlockContainerInterface cont; if (selectedAllowed) { cont = contAllowed; } else { cont = contNotAllowed; } g.drawRect( selectedBlock.getMovingDrawingPosX(), selectedBlock.getMovingDrawingPosY(), cont.getSquareSize(), cont.getSquareSize()); } g.setColor(Color.white); int rightColumnX = contNotAllowed.getDrawingPositionX(0) + contNotAllowed.getSizeX() * blockSize + 10; g.drawString("Number of empty blocks:", rightColumnX, 100 + 15); g.drawString("Number of start blocks:", rightColumnX, 100 + 40); g.drawString("Initial time until water:", rightColumnX, 100 + 65); g.drawString("Initial water speed:", rightColumnX, 100 + 90); g.drawString("Initial blocks to fill:", rightColumnX, 100 + 115); rightColumnX = offsetX + gameSizeX + 20; g.setColor(Color.red); g.drawString("by Erland Isaksson", rightColumnX, offsetY + gameSizeY); environment.getScreenHandler().paintComponents(g); }