Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Main.java
- package de.markus.rpg;
- import java.awt.BorderLayout;
- import java.awt.Canvas;
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Insets;
- import java.awt.event.KeyEvent;
- import java.awt.image.BufferStrategy;
- import javax.swing.JFrame;
- import javax.swing.JOptionPane;
- import de.markus.rpg.multiplayer.GameClient;
- import de.markus.rpg.multiplayer.GameServer;
- public class Main extends Canvas implements Runnable{
- static int width = 800;
- static int height = 600;
- static int transx;
- static int transy;
- public int tickCounter = 0;
- public boolean running = false;
- public static boolean fullhd = false;
- private JFrame frame;
- public static int gamestate = 0;
- private Menu menu;
- private Background bg;
- private Options options;
- private Pause pause;
- private GameClient client;
- private GameServer server;
- public Main() {
- //Player player = new Player(960, 540, 1920, 1080);
- // setMinimumSize(new Dimension(width*3, height*3));
- // setMaximumSize(new Dimension(width*3, height*3));
- // setPreferredSize(new Dimension(width*3, height*3));
- frame = new JFrame();
- frame.setDefaultCloseOperation(3);
- frame.setLayout(new BorderLayout());
- frame.add(this, BorderLayout.CENTER);
- frame.setLocationRelativeTo(null);
- frame.setResizable(false);
- frame.setVisible(true);
- KeyBoard kb = new KeyBoard();
- addKeyListener(kb);
- addMouseMotionListener(kb);
- addMouseListener(kb);
- }
- public void init() {
- menu = new Menu();
- bg = new Background();
- options = new Options();
- pause = new Pause();
- System.out.println("3");
- client.sendData("ping".getBytes());
- }
- public void run() {
- long lastTime = System.nanoTime();
- double nsPerTick = 1000000000D/60D;
- int frames = 0;
- int ticks = 0;
- long lastTimer = System.currentTimeMillis();
- long lastFrame = System.currentTimeMillis();
- double delta = 0;
- System.out.println("2");
- init();
- while(running) {
- long now = System.nanoTime();
- delta += (now - lastTime)/nsPerTick;
- lastTime = now;
- boolean shouldRender = true;
- long thisFrame = System.currentTimeMillis();
- float tslf = ((float)(thisFrame-lastFrame))/1000f;
- lastFrame = thisFrame;
- if(fullhd) {
- frame.setSize(width, height);
- frame.setLocation(0, 0);
- }else {
- frame.setSize(width, height);
- frame.setLocationRelativeTo(null);
- }
- while(delta >= 1) {
- ticks++;
- tick();
- delta -= 1;
- shouldRender = true;
- }
- try {
- Thread.sleep(2);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- if(shouldRender) {
- frames++;
- render();
- update(tslf);
- }
- if(System.currentTimeMillis() - lastTimer > 1000) {
- lastTimer += 1000;
- frame.setTitle(frames + " frames, " + ticks + " ticks");
- frames = 0;
- ticks = 0;
- }
- }
- }
- public void tick() {
- tickCounter++;
- }
- public void render() {
- BufferStrategy bs = getBufferStrategy();
- if(bs != null) {
- Graphics g = bs.getDrawGraphics();
- draw(g);
- g.dispose();
- bs.show();
- }else {
- createBufferStrategy(3);
- return;
- }
- }
- public void draw(Graphics g) {
- g.setColor(Color.BLACK);
- g.fillRect(0, 0, width, height);
- switch(gamestate) {
- case 0:
- menu.draw(g);
- break;
- case 1:
- bg.draw(g);
- break;
- case 2:
- options.draw(g);
- break;
- case 3:
- pause.draw(g);
- break;
- default:
- break;
- }
- }
- public void update(float tslf) {
- switch(gamestate) {
- case 0:
- menu.update(tslf);
- break;
- case 1:
- bg.update(tslf);
- if(KeyBoard.iskeyDown(KeyEvent.VK_ESCAPE)) {
- gamestate = 3;
- }
- break;
- case 2:
- options.update(tslf);
- if(KeyBoard.iskeyDown(KeyEvent.VK_ESCAPE)) {
- gamestate = 0;
- }
- break;
- case 3:
- break;
- default:
- break;
- }
- }
- public synchronized void start() {
- running = true;
- new Thread(this).start();
- System.out.println("1");
- client = new GameClient(this, "localhost");
- client.start();
- if(JOptionPane.showConfirmDialog(this, "Do you want to run a server?") == 0) {
- System.out.println("4");
- server = new GameServer(this);
- server.start();
- }
- }
- public synchronized void stop() {
- running = false;
- }
- public static void main(String[] args) {
- new Main().start();
- }
- public static void setWidth(int width) {
- Main.width = width;
- }
- public static void setHeight(int height) {
- Main.height = height;
- }
- public static void setFullHD(boolean fullhd) {
- Main.fullhd = fullhd;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement