Advertisement
Guest User

Untitled

a guest
Apr 21st, 2016
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.04 KB | None | 0 0
  1. package space;
  2.  
  3. import Entities.Planet;
  4. import java.awt.BorderLayout;
  5. import java.awt.Canvas;
  6. import java.awt.Color;
  7. import java.awt.Dimension;
  8. import java.awt.FlowLayout;
  9. import java.awt.Graphics;
  10. import java.awt.Graphics2D;
  11. import java.awt.GraphicsEnvironment;
  12. import java.awt.Rectangle;
  13. import java.awt.RenderingHints;
  14. import java.awt.Toolkit;
  15. import java.awt.image.BufferStrategy;
  16. import java.awt.image.BufferedImage;
  17. import javax.swing.JFrame;
  18. import javax.swing.JPanel;
  19.  
  20. public class Space extends Canvas implements Runnable {
  21.  
  22. //public int SCREENWIDTH = getScreenSize().width;
  23. //public int SCREENHEIGHT = getScreenSize().height;
  24. public int SCREENWIDTH = 1280;
  25. public int SCREENHEIGHT = 720;
  26. public String TITLE = "Space";
  27.  
  28. private JFrame frame;
  29. private Graphics2D g;
  30. private BufferedImage image = new BufferedImage(SCREENWIDTH, SCREENHEIGHT, BufferedImage.TYPE_INT_RGB);
  31. private int FPS = 60;
  32. private int gametime = 0;
  33.  
  34. private Thread thread;
  35. private boolean running = false;
  36.  
  37. Overlay overlay;
  38. Screen screen;
  39. Planet planet;
  40. public Mouse mouse;
  41.  
  42. public Space() {
  43. g = (Graphics2D) image.getGraphics();
  44. }
  45.  
  46. public void init() {
  47. Space space = new Space();
  48. JPanel p = new JPanel();
  49. p.setPreferredSize(new Dimension(SCREENWIDTH/5, SCREENHEIGHT));
  50. p.setMinimumSize(new Dimension(SCREENWIDTH/5, SCREENHEIGHT));
  51. p.setMaximumSize(new Dimension(SCREENWIDTH/5, SCREENHEIGHT));
  52. p.setBackground(Color.red);
  53.  
  54. frame = new JFrame(TITLE);
  55. frame.pack();
  56. frame.setPreferredSize(new Dimension(SCREENWIDTH, SCREENHEIGHT));
  57. frame.setMinimumSize(new Dimension(SCREENWIDTH, SCREENHEIGHT));
  58. frame.setMaximumSize(new Dimension(SCREENWIDTH, SCREENHEIGHT));
  59. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  60. frame.setLayout(new BorderLayout());
  61.  
  62.  
  63. frame.add(p);
  64. frame.add(space, BorderLayout.CENTER);
  65.  
  66.  
  67. frame.setResizable(false);
  68. frame.setLocationRelativeTo(null);
  69. frame.setVisible(true);
  70. space.start();
  71. }
  72.  
  73. public static void main(String[] args) {
  74. new Space().init();
  75. }
  76.  
  77. public Dimension getScreenSize() {
  78. int screenWidth = (Toolkit.getDefaultToolkit().getScreenSize()).width;
  79. int screenHeight = (Toolkit.getDefaultToolkit().getScreenSize()).height;
  80.  
  81. Dimension scrnSize = Toolkit.getDefaultToolkit().getScreenSize();
  82. Rectangle winSize = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
  83. int taskBarHeight = scrnSize.height - winSize.height;
  84.  
  85. Dimension finalScreenSize = new Dimension((screenWidth), (screenHeight - taskBarHeight));
  86. return finalScreenSize;
  87. }
  88.  
  89. public void start() {
  90. mouse = new Mouse();
  91. addMouseListener(mouse);
  92. addMouseMotionListener(mouse);
  93. screen = new Screen(SCREENWIDTH, SCREENHEIGHT, mouse);
  94.  
  95. thread = new Thread(this, "Display");
  96. thread.start();
  97. running = true;
  98. }
  99.  
  100. public void stop() {
  101. running = false;
  102. try {
  103. thread.join();
  104. } catch (Exception e) {
  105. }
  106. }
  107.  
  108. @Override
  109. public void run() {
  110. long lastTime = System.nanoTime();
  111. long timer = System.currentTimeMillis();
  112. final double ns = 1000000000.0 / FPS;
  113. double delta = 0;
  114. int frames = 0;
  115. int updates = 0;
  116. requestFocus();
  117. while (running) {
  118. long currentTime = System.nanoTime();
  119. delta = delta += (currentTime - lastTime) / ns;
  120. lastTime = currentTime;
  121. while (delta >= 1) {
  122. update();
  123. updates++;
  124. delta--;
  125. }
  126. render();
  127. frames++;
  128. if (System.currentTimeMillis() - timer > 1000) {
  129. timer += 1000;
  130. System.out.println("Updates: " + updates + " Frames: " + frames);
  131. updates = 0;
  132. frames = 0;
  133. }
  134.  
  135. }
  136. stop();
  137. }
  138.  
  139. public void update() {
  140. screen.update(gametime);
  141. gametime++;
  142. }
  143.  
  144. public void render() {
  145. BufferStrategy bs = getBufferStrategy();
  146. if (bs == null) {
  147. createBufferStrategy(3);
  148. return;
  149. }
  150. Graphics g = bs.getDrawGraphics();
  151. Graphics2D g2d = (Graphics2D) g;
  152.  
  153. RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  154. rh.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
  155.  
  156. g2d.setRenderingHints(rh);
  157.  
  158.  
  159. g2d.drawImage(image, 0, 0, getWidth(), getHeight(), null);
  160. g2d.setColor(new Color(5,5,5));
  161. g2d.fillRect(0, 0, SCREENWIDTH, SCREENHEIGHT);
  162. screen.render(g2d);
  163.  
  164.  
  165. g2d.dispose();
  166. bs.show();
  167. }
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement