package net.josh.minecraftplatformer; import java.applet.*; import java.awt.*; import javax.swing.*; public class Component extends Applet implements Runnable { //calls the class private static final long serialVersionUID = 1L; private static int pixelSize = 2; //declares the pixel size. public static int moveFromBorder = 0; public static double sX = moveFromBorder, sY = moveFromBorder; //declares the variables for side scrolling. public static double dir = 0; public static Dimension size = new Dimension(700, 560); //declares screen size. public static Dimension pixel = new Dimension(size.width / pixelSize, size.height / pixelSize); //sets the pixel size. public static String name = "Minecraft 2D Platformer."; //sets the variable for the name public static boolean isRunning = false; //boolean for game running. public static boolean isMoving = false; //boolean for whether the character is moving. public static boolean isJumping = false; //boolean for whether the character is jumping public static Level level; //creates the level. public static Character character; //creates the character private Image screen; //makes new Image variable called screen. public Component() { //Constructor for the Component class. setPreferredSize(size); //sets the size for the java applet. addKeyListener(new Listening()); //starts a new key listener. } public void start() { //Start method for game loop and defining objects //Defining objects etc. new Tile(); //loading images. //makes a new tile to load images. level = new Level(); //new level character = new Character(Tile.tileSize, Tile.tileSize * 2); //new character //Starting game loop. isRunning = true; //sets is running to true new Thread(this).start(); //game loop I think } public void stop() { //method to stop the game. isRunning = false; //sets isRunning to false } public static void main(String args[]){ Component component = new Component(); //makes a new Component JFrame frame = new JFrame(); //calls a new frame frame.add(component); //adds component to frame frame.setVisible(true); //makes the frame visible frame.pack(); //sets the window to the proffered size frame.setTitle(name); //adds the name frame.setResizable(false); //stops it being resizable. frame.setLocationRelativeTo(null); //puts the window in the middle of the screen. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //closes the program when the window is closed. component.start(); //calls component.start() } public void tick() { //starts the refresh level.tick(); //calls the level tick character.tick(); //calls the character tick } public void render() { //renders graphics Graphics g = screen.getGraphics(); //Drawing things. g.setColor(new Color(110, 110 ,255)); g.fillRect(0, 0, pixel.width, pixel.height); level.render(g); character.render(g); g = getGraphics(); g.drawImage(screen, 0, 0, size.width, size.height, 0, 0, pixel.width, pixel.height, null); //creates the screen g.dispose(); //disposes of the screen freeing up system resources } /* * Game Loop! * */ public void run() { screen = createVolatileImage(pixel.width, pixel.height); //creates performance friendly image called screen while(isRunning) { //ticks and renders as long as the game is running tick(); render(); try { //makes the loop slower Thread.sleep(5); } catch(Exception e) { } } } }