engine <- (The 2D engine I'm working on)
package rand.LearningJava.Lagaan;
import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class engine {
public static void start(Game game) {
JFrame frame = new JFrame(game.getTitle());
frame.setSize(game.width(), game.height());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GameCanvas canvas = new GameCanvas(game);
frame.add(canvas);
frame.setVisible(true);
GameLoop loop = new GameLoop(game, canvas);
loop.start();
}
}
abstract class Game implements KeyListener, MouseListener, MouseMotionListener {
protected String title = "GameEngine";
protected int width = 640, height = 480, delay = 30;
protected boolean over;
public abstract void init();
public abstract void update();
public abstract void draw(Graphics2D g);
public String getTitle() {
return title;
}
public int width() {
return width;
}
public int height() {
return height;
}
public int getDelay() {
return delay;
}
public boolean isOver() {
return over;
}
@Override
public void mouseDragged(MouseEvent e) {
}
@Override
public void mouseMoved(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
}
class GameCanvas extends JComponent {
private static final long serialVersionUID = 1L;
private final Game game;
public GameCanvas(Game game) {
this.game = game;
addKeyListener(this.game);
addMouseListener(this.game);
addMouseMotionListener(this.game);
requestFocus();
}
public void paintComponent(Graphics2D g) {
game.draw(g);
}
}
class GameLoop extends Thread {
private final Game game;
private final GameCanvas canvas;
public GameLoop(Game game, GameCanvas canvas) {
this.game = game;
this.canvas = canvas;
}
public void run() {
game.init();
while (!game.isOver()) {
game.update();
canvas.repaint();
try {
Thread.sleep(game.getDelay());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
gameTest <- (The actual game)
package rand.LearningJava.Lagaan;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class gameTest extends Game {
public static final void main(String[] args) {
engine.start(new gameTest());
}
public BufferedImage player;
Graphics g;
public gameTest() {
title = "gameTest";
try {
player = ImageIO.read(new File("images/FinalFantasy3Sheet1.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void init() {
}
@Override
public void update() {
}
@Override
public void draw(Graphics2D g) {
g.drawImage(player, 0, 0, null);
}
}
Thank you in advance for any help you can give me!

New Topic/Question
Reply



MultiQuote




|