Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.74 KB | None | 0 0
  1. public static void main(final String[] args) {
  2.  
  3.         class Listener implements EventListener {
  4.  
  5.             public void onEvent(final Event event) {
  6.  
  7.                 if (event instanceof WindowReadyEvent) {
  8.  
  9.                     EventLayer.ROOT.removeListener(this);
  10.                     thread.start();
  11.  
  12.                 }
  13.  
  14.             }
  15.  
  16.         }
  17.  
  18.         EventLayer.ROOT.addListener(new Listener());
  19.  
  20.         thread = new Thread(() -> {
  21.  
  22.             double lastUpdateTime = provider.getTime();
  23.             double lastRenderTime = provider.getTime();
  24.  
  25.             marker.set();
  26.  
  27.             int frameCount = 0;
  28.  
  29.             while (running) {
  30.  
  31.                 if (window.shouldClose()) running = false;
  32.  
  33.                 double now = provider.getTime();
  34.  
  35.                 int updateCount = 0;
  36.  
  37.                 while (now - lastUpdateTime > UPS_DELTA && updateCount < MAX_UPDATES_BEFORE_RENDER) {
  38.  
  39.                     tick();
  40.                     lastUpdateTime += UPS_DELTA;
  41.                     updateCount++;
  42.  
  43.                 }
  44.  
  45.                 if (ALLOW_FRAMESKIP && now - lastUpdateTime > UPS_DELTA) lastUpdateTime = now - UPS_DELTA;
  46.  
  47.                 final float interpolation = (float) Math.min(UPS_DELTA, now - lastUpdateTime);
  48.  
  49.                 render(renderer, interpolation);
  50.  
  51.                 frameCount++;
  52.                 lastRenderTime = now;
  53.  
  54.                 if (marker.elapsed() > 1d) {
  55.  
  56.                     System.out.println(frameCount);
  57.                     frameCount = 0;
  58.                     marker.set();
  59.  
  60.                 }
  61.  
  62.                 while (now - lastRenderTime < FPS_DELTA && now - lastUpdateTime < UPS_DELTA) {
  63.  
  64.                     Thread.yield();
  65.  
  66.                     try {
  67.  
  68.                         Thread.sleep(SLEEP);
  69.  
  70.                     } catch (final Exception e) {
  71.  
  72.                     }
  73.  
  74.                     now = provider.getTime();
  75.  
  76.                 }
  77.  
  78.             }
  79.  
  80.             window.dispose();
  81.  
  82.         }, "Game");
  83.  
  84.         thread.setPriority(Thread.MAX_PRIORITY);
  85.  
  86.         EventQueue.invokeLater(() -> {
  87.  
  88.             window = new JWindow(WIDTH, HEIGHT, TITLE);
  89.             renderer = new JRenderer(((JWindow) window).getCanvas());
  90.             EventLayer.ROOT.dispatch(new WindowReadyEvent(null));
  91.  
  92.         });
  93.        
  94.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement