Package examples

Source Code of examples.LogicFPSExample

package examples;

import dwlab.base.service.Align;
import dwlab.base.Project;
import dwlab.base.service.Service;
import dwlab.controllers.ButtonAction;
import dwlab.controllers.Key;
import dwlab.controllers.KeyboardKey;
import dwlab.platform.LWJGL;
import dwlab.shapes.sprites.Sprite;
import dwlab.visualizers.Visualizer;

// First sprite is moving at constant speed regardles of LogicFPS because it use delta-timing PerSecond() method to determine
// on which distance to move in particular logic frame.Second sprite use simple coordinate addition.

public class LogicFPSExample extends Project {
  public static void main(String[] argv) {
    LWJGL.init();
    main();
  }
 
  public static void main() {
    ( new LogicFPSExample() ).act();
  }
 
 
  Sprite sprite1 = new Sprite( -10, -2, 2 );
  Sprite sprite2 = new Sprite( -10, 2, 2 );

  ButtonAction increment = ButtonAction.create( KeyboardKey.create( Key.ADD ) );
  ButtonAction decrement = ButtonAction.create( KeyboardKey.create( Key.SUBTRACT ) );

 
  @Override
  public void init() {
    sprite1.visualizer = new Visualizer( 1d, 1d, 0d );
    sprite2.visualizer = new Visualizer( 0d, 0.5d, 1d );
    logicFPS = 100;
  }

 
  @Override
  public void logic() {
    sprite1.move( 8d, 0d );
    if( sprite1.getX() > 10 ) sprite1.alterCoords( -20d, 0d );

    sprite2.alterCoords( 0.08d, 0d );
    if( sprite2.getX() > 10 ) sprite2.alterCoords( -20d, 0d );

    if( increment.isDown() ) logicFPS += perSecond( 100 );
    if( decrement.isDown() && logicFPS > 20 ) logicFPS -= perSecond( 100 );
  }
 
 
  @Override
  public void render() {
    sprite1.draw();
    sprite2.draw();
    printText( "Logic  FPS" + Service.trim( logicFPS ) + ", press num+ / num- to change" );
    printText( "L_LogicFPS example", Align.TO_CENTER, Align.TO_BOTTOM );
  }
}
TOP

Related Classes of examples.LogicFPSExample

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.