Main.java
Posted in Java, on September 3, 2010 at 11:34
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.image.*;
import javax.swing.*;
public class Main
{
public JFrame app;
public Canvas canvas;
public boolean running;
public Graphics graphics;
public Graphics2D g2d;
public Color background;
public BufferStrategy buffer;
public BufferedImage bi;
public GraphicsEnvironment ge;
public GraphicsDevice gd;
public GraphicsConfiguration gc;
public Keyboard keyboard;
public Mouse mouse;
public Sprite blacktower, whitetower;
public final int Speed = 1;
public boolean isCollide=false;
public void init()
{
app = new JFrame("CwBunny");
canvas = new Canvas();
keyboard = new Keyboard();
mouse = new Mouse(canvas);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setUndecorated(false);
app.setSize(800, 600);
app.addKeyListener(keyboard);
canvas.addKeyListener(keyboard);
canvas.addMouseListener(mouse);
canvas.addMouseMotionListener(mouse);
canvas.setSize(800, 600);
app.add(canvas);
app.pack();
app.setVisible(true);
canvas.createBufferStrategy(2);
buffer = canvas.getBufferStrategy();
ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
gd = ge.getDefaultScreenDevice();
gc = gd.getDefaultConfiguration();
bi = gc.createCompatibleImage(800, 600);
graphics = null;
g2d = null;
background = Color.BLACK;
blacktower = new Sprite("blacktower.png", new Point(0,0));
whitetower = new Sprite("whitetower.png", new Point(800,600));
whitetower.Move(-whitetower.getSize().x, -whitetower.getSize().y, canvas);
running = true;
}
public void keyboardProccess()
{
keyboard.pool();
running = !keyboard.iskeyPressed(KeyEvent.VK_ESCAPE);
if(!isCollide)
{
if(keyboard.iskeyPressed(KeyEvent.VK_UP))
blacktower.Move(0, -Speed, canvas);
if(keyboard.iskeyPressed(KeyEvent.VK_W))
whitetower.Move(0, -Speed, canvas);
if(keyboard.iskeyPressed(KeyEvent.VK_DOWN))
blacktower.Move(0, Speed, canvas);
if(keyboard.iskeyPressed(KeyEvent.VK_S))
whitetower.Move(0, Speed, canvas);
if(keyboard.iskeyPressed(KeyEvent.VK_LEFT))
blacktower.Move(-Speed, 0, canvas);
if(keyboard.iskeyPressed(KeyEvent.VK_A))
whitetower.Move(-Speed, 0, canvas);
if(keyboard.iskeyPressed(KeyEvent.VK_RIGHT))
blacktower.Move(Speed, 0, canvas);
if(keyboard.iskeyPressed(KeyEvent.VK_D))
whitetower.Move(Speed, 0, canvas);
}
if(keyboard.iskeyPressed(KeyEvent.VK_R))
Restart();
isCollide = whitetower.isCollide(blacktower);
}
public void Restart()
{
this.whitetower.setPosition(new Point(800,600));
this.blacktower.setPosition(new Point(0,0));
whitetower.Move(-whitetower.getSize().x, -whitetower.getSize().y, canvas);
this.isCollide=false;
}
public void gameLoop()
{
int fps = 0;
int frames = 0;
long totalTime = 0;
long curTime = System.currentTimeMillis();
long lastTime = curTime;
while(running)
{
lastTime = curTime;
curTime = System.currentTimeMillis();
totalTime += curTime-lastTime;
if(totalTime>1000)
{
totalTime -= 1000;
fps = frames;
frames = 0;
}
frames++;
g2d = bi.createGraphics();
g2d.setColor(background);
g2d.fillRect(0, 0, app.getWidth(), app.getHeight());
keyboardProccess();
if(!isCollide)
{
g2d.drawImage(whitetower.getImage(), whitetower.getPosition().x,
whitetower.getPosition().y, null);
g2d.drawImage(blacktower.getImage(), blacktower.getPosition().x,
blacktower.getPosition().y, null);
}
else
{
Rectangle r = new Rectangle(whitetower.getPosition(),
new Dimension(whitetower.getSize().x, whitetower.getSize().y));
g2d.setColor(Color.blue);
g2d.fill(r);
g2d.setColor(Color.red);
r = new Rectangle(blacktower.getPosition(),
new Dimension(blacktower.getSize().x,
blacktower.getSize().y));
g2d.fill(r);
}
g2d.setFont(new Font("Courier New", Font.PLAIN, 12));
g2d.setColor(Color.GREEN);
if(isCollide)
g2d.drawString("Çarpışma tespit edildi yeniden oynamak için r" +
"ye basınız", 20, 50);
g2d.drawString("Fps:" + fps, 20, 20);
mouse.poll();
g2d.drawImage(mouse.getCursor(), mouse.getPosition().x,
mouse.getPosition().y, null);
graphics = buffer.getDrawGraphics();
graphics.drawImage(bi, 0, 0, null);
if(!buffer.contentsLost())
buffer.show();
}
}
public void stop()
{
if(graphics!=null)graphics.dispose();
if(g2d!=null)g2d.dispose();
if(app!=null)
{
app.setVisible(false);
app.dispose();
}
System.exit(0);
}
public static void main(String [] args)
{
Main m = new Main();
m.init();
m.gameLoop();
m.stop();
}
}
Share this code
Use the link below to share the code:
http://www.codesend.com/view/338bf111caa908a77496791d59694275/
HTML
<a href="http://www.codesend.com/view/338bf111caa908a77496791d59694275/">Main.java</a>
BBCode
[url=http://www.codesend.com/view/338bf111caa908a77496791d59694275/]Main.java[/url]
© 2010 CodeSend.com - send code quick and easy
Syntax highlighting by Alex Gorbatchev
Syntax highlighting by Alex Gorbatchev
