@Override
	public void render(GameContainer arg0, StateBasedGame arg1, Graphics arg2)
			throws SlickException {
		if (ended) {
			arg2.drawImage(winOrLose, 250, 200);
		}
		if (initDone && constructDone) {
			Player play = players[mIndex];
			if (play != null) {
				float px = play.getPos().x;
				float py = play.getPos().y;
				float rad = ((Circle) play.getShape()).getRadius();
				float scale = 15.625f / rad;

				if (scale * Dimensions.pixelToMeter(arg0.getScreenWidth()) < Dimensions
						.pixelToMeter(Dimensions.SCREEN_WIDTH)) {
					scale = 0.5f;
				}
				arg2.scale(scale, scale);
				arg2.translate(Dimensions.meterToPixel(-px * scale)
						+ (Dimensions.SCREEN_WIDTH / 2),
						Dimensions.meterToPixel(-py * scale)
						+ (Dimensions.SCREEN_HEIGHT / 2));
			}
			for (int i = 0; i < players.length; i++) {
				Player player = players[i];
				if (player != null) {
					player.draw(arg2);
				}
			}
			for (Entity e : npcs) {
				e.draw(arg2);
			}
			for (Wall w : walls) {
				w.draw(arg2);
			}

			arg2.resetTransform();
		}
	}