Advertisement
Guest User

Ticks and Movement

a guest
Aug 28th, 2014
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.08 KB | None | 0 0
  1. public void run()
  2.     {
  3.         long lastTime = System.nanoTime(); //get nanoTime
  4.         double nsPerTick = 1000000000d/60d; //calcuates how many ns in 1 tick
  5.        
  6.         int ticks = 0;
  7.         int frames = 0;
  8.        
  9.         long lastTimer = System.currentTimeMillis();
  10.         double delta = 0; //how many nano seconds have gone by
  11.        
  12.         init();
  13.        
  14.         while(running)
  15.         {
  16.             long now = System.nanoTime();
  17.             delta +=(now - lastTime) / nsPerTick;
  18.             lastTime = now;
  19.             boolean shouldRender = true;
  20.             while(delta >= 1)
  21.             {
  22.                 ticks++;
  23.                 tick();
  24.                 delta-=1;
  25.                 shouldRender = true;
  26.             }
  27.            
  28.             try {
  29.                 Thread.sleep(2);
  30.             } catch (InterruptedException e) {
  31.                 // TODO Auto-generated catch block
  32.                 e.printStackTrace();
  33.             }
  34.            
  35.             if(shouldRender)
  36.             {
  37.                 frames++;
  38.                 render();
  39.             }
  40.            
  41.             if(System.currentTimeMillis() - lastTimer >= 1000)
  42.             {
  43.                 lastTimer += 1000;
  44.                 System.out.println(ticks + "ticks, " + frames + "frames");
  45.                 frames = 0;
  46.                 ticks = 0;
  47.             }
  48.         }
  49.     }
  50.    
  51.     public void tick()
  52.     {
  53.         tickCount++;
  54.         //TODO: Add some shitty movement code
  55.         //TODO: Rendering stuff?
  56.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement