import city.soi.platform.*;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.ImageIcon;
import java.awt.geom.AffineTransform;
import java.awt.*;
/**
* A very basic platform game.
*/
public class Game extends JPanel implements ActionListener
{
/** The player. */
private Player player;
/** The Enaime. */
private Killer killer;
/** The width of the world grid. */
private int width;
/** The height of the world grid. */
private int height;
private world currentMap;
/** The ArrayList for maze */
private ArrayList<Maze>maps;
private int CurrentMap;
/** A panel in which the game state is displayed. */
private GameWindow view;
private int Map;
private Timer t;
}
public void saveGame()
{
// player.getX() == enemy.getX()
try {
BufferedWriter out = new BufferedWriter(new FileWriter("Save.dat"));
out.write(""+player.getX()+"\n"+player.getY()+"\n");
out.write(""+enemy.getX()+"\n"+enemy.getY()+"\n");
out.write(""+player.getLife()+"\n"+player.getScore()+"\n");
out.close();
} catch (IOException e) {
}
}
public void loadGame()
{
try {
BufferedReader in = new BufferedReader(new FileReader("Save.dat"));
String str1,str2;
str1 = in.readLine();
str2 = in.readLine();
player.setPosition(Integer.parseInt(""+str1),Integer.parseInt(""+str2));
str1 = in.readLine();
str2 = in.readLine();
enemy.setPosition(Integer.parseInt(""+str1),Integer.parseInt(""+str2));
str1 = in.readLine();
str2 = in.readLine();
player.setLife(Integer.parseInt(""+str1));
player.setScore(Integer.parseInt(""+str2));
view.repaint();
in.close();
} catch (IOException e) {
}
}
/**
* Initialise a new Game.
*/
public Game()
{
t = new Timer(500,this);
t.start();
Map=0;
maps = new ArrayList<World>();
try{
maps.add(new World("MA1.txt"));
} catch (IOException e) {
System.out.println("" +e.getMessage());
}
try{
maps.add(new World("MA2.txt"));
}catch (IOException e) {
System.out.println(""+e.getMessage());
}
try{
maps.add(new World("MA3.txt"));
}catch (IOException e) {
System.out.println(""+e.getMessage());
}
currentMap = maps.get(Map);
height = currentMap.getHight();
width = currentMap.getWidth();
currentMap.bulidMap(Map);
player = new Player(currentMap.getStartX() , currentMap.getStartY() );
enemy = new Enemy(10 , 10 );
if (!currentMap.isValidPosition(enemy.getX(), enemy.getY())) {
throw new Error("enemy has started in an invalid position: (" + enemy.getX() + "," + enemy.getY() + ")");
}
if (!currentMap.isValidPosition(player.getX(), player.getY())) {
throw new Error("Player has started in an invalid position: (" + player.getX() + "," + player.getY() + ")");
}
view = new GameWindow(this);
view.addKeyListener(new KeyControl());
String s;
s = "Lives:" + player.getLife() + " Score:" + player.getScore();
view.textout(s);
currentMap.AddKeyItem();
}
/**
* This Starts a new Game called from the Menu
*/
public void newGame()
{
Map=0;
maps = new ArrayList<World>();
try{
maps.add(new World("MA1.txt"));
} catch (IOException e) {
System.out.println("" +e.getMessage());
}
try{
maps.add(new World("MA2.txt"));
}catch (IOException e) {
System.out.println(""+e.getMessage());
}
try{
maps.add(new World("MA3.txt"));
}catch (IOException e) {
System.out.println(""+e.getMessage());
}
currentMap = maps.get(Map);
height = currentMap.getHight();
width = currentMap.getWidth();
currentMap.bulidMap(Map);
player = new Player(currentMap.getStartX() , currentMap.getStartY() );
enemy = new Enemy(10 , 10 );
if (!currentMap.isValidPosition(player.getX(), player.getY())) {
throw new Error("Player has started in an invalid position: (" + player.getX() + "," + player.getY() + ")");
}
String s;
s = "Lives:" + player.getLife() + " Score:" + player.getScore();
view.textout(s);
currentMap.AddKeyItem();
view.repaint();
t.stop();
t = new Timer(500,this);
t.start();
public class Game
{
/** The player (a specialised Body). */
private Player player;
/** Game over flag. */
private boolean isOver;
private World world;
/** A graphical display of the world (a specialised JPanel). */
private WorldView view;
/** The width and height of the game display. */
private int width, height;
/** The number of the current level. */
private int level;
/** The current level. */
private GameLevel currentLevel;
/** Initialise a new Game. */
public Game() {
this.width = 500;
this.height = 500;
isOver = false;
level = 1;
player = new Player(this);
currentLevel = new Level1(this);
// make a view
view = new WorldView(currentLevel.getWorld(), width, height);
view.setBackground(java.awt.Color.PINK);
// display the view in a frame
final JFrame frame = new JFrame("Game");
// add some keyboard handling
frame.addKeyListener(new java.awt.event.KeyAdapter() {
/** Handle key press events for walking and jumping. */
public void keyPressed(java.awt.event.KeyEvent e)
{
if (isOver) return;
int code = e.getKeyCode();
// SPACE = jump
if (code == java.awt.event.KeyEvent.VK_SPACE) {
// only jump if player is not already jumping
if (!player.isJumping()) {
player.jump(150);
}
// LEFT ARROW = walk left
} else if (code == java.awt.event.KeyEvent.VK_LEFT) {
player.walk(-90);
player.image = (new ImageIcon("ghost_bossleft.gif")).getImage();
// RIGHT ARROW = walk right
} else if (code == java.awt.event.KeyEvent.VK_RIGHT) {
player.walk(90);
player.image = (new ImageIcon("ghost_bossright.gif")).getImage();
}
}
/** Handle key release events (stop walking). */
public void keyReleased(java.awt.event.KeyEvent e)
{
if (isOver) return;
int code = e.getKeyCode();
if (code == java.awt.event.KeyEvent.VK_LEFT) {
player.stopWalkingLeft();
player.image = (new ImageIcon("ghost_bossleftstill.gif")).getImage();
} else if (code == java.awt.event.KeyEvent.VK_RIGHT) {
player.stopWalkingRight();
player.image = (new ImageIcon("ghost_bossrightstill.gif")).getImage();
}
}
});
// quit the application when the game window is closed
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// display the world in the window
frame.add(view);
// don't let the game window be resized
frame.setResizable(false);
// size the game window to fit the world view
frame.pack();
// make the window visible
frame.setVisible(true);
// set debug level for the world view
// higher numbers display more internal detail,
// 0 displays none
view.debug.setLevel(0);
// start!
currentLevel.start();
}
/** Advance to the next level, or end the game if there is no next level. */
public void goNextLevel()
{
if (level == 3) {
gameOver();
} else {
currentLevel.getWorld().terminate();
level++;
if (level == 2) {
currentLevel = new Level2(this);
} else if (level == 3) {
currentLevel = new Level3(this);
}
view.setWorld(currentLevel.getWorld());
currentLevel.start();
}
}
/** Is the game over? */
public boolean isOver()
{
return isOver;
}
/** End the game. */
public void gameOver()
{
currentLevel.getWorld().terminate();
isOver = true;
}
/** The width of the world view. */
public int getWidth()
{
return width;
}
/** The width of the world view. */
public int getHeight()
{
return height;
}
public World getWorld()
{
return world;
}
/** The world view. */
public WorldView getView()
{
return view;
}
/** The player. */
public Player getPlayer()
{
return player;
}
/** The current level. */
public GameLevel getCurrentLevel()
{
return currentLevel;
}
/** Play a game. */
public static void main(String[] args) {
new Game();
}
ps if anyone would help me more i am even willing to pay
*Edited to fix the [ /code]
Attached File(s)
-
jave_copy.zip (191.85K)
Number of downloads: 85
This post has been edited by pbl: 16 April 2009 - 05:32 PM

New Topic/Question
Reply



MultiQuote



|