Package examples

Source Code of examples.BehaviorModelExample$Score

package examples;

import static dwlab.platform.Functions.*;

import dwlab.base.Project;
import static dwlab.base.Project.exitButton;
import dwlab.base.images.Image;
import dwlab.base.service.Align;
import dwlab.base.service.Service;
import dwlab.controllers.ButtonAction;
import dwlab.controllers.MouseButton;
import dwlab.platform.LWJGL;
import dwlab.shapes.layers.Layer;
import dwlab.shapes.layers.World;
import dwlab.shapes.maps.tilemaps.TileMap;
import dwlab.shapes.sprites.*;
import dwlab.visualizers.Color;
import dwlab.visualizers.MarchingAnts;
import examples.AwPossum.*;
import examples.Jelly.*;

public class BehaviorModelExample extends Project {
  static BehaviorModelExample instance;
 
  public static void main(String[] argv) {
    Classes.register();
    LWJGL.init();
    main();
  }
 
  public static void main() {
    instance = new BehaviorModelExample();
    instance.act();
  }
 
  public int bricks = 1;
  public double deathPeriod = 1.0;

  public World world;
  public Layer layer;
  public TileMap tileMap;
  public Sprite selectedSprite;
  public MarchingAnts marchingAnts = new MarchingAnts();

  public int score;
 
 
  @Override
  public void init() {
     world = World.fromFile( "res/jellys.lw" );

    //LWJGL.init();

    Sprite sprite = new Sprite( Camera.current );
    sprite.visualizer.image = new Image( "res/scheme2.png" );
    while ( !exitButton.wasPressed() ) {
      sprite.draw();
      processEvents( this );
      swapBuffers();
    }

    sprite.visualizer.image = new Image( "res/scheme1.png" );
    processEvents();
    while ( !exitButton.wasPressed() ) {
      sprite.draw();
      processEvents( this );
      swapBuffers();
    }

    processEvents( this );
    initLevel();
  }

 
  public void initLevel() {
    layer = world.findShape( "Level" ).load().toLayer();
    tileMap = layer.findShape( "Field" ).toTileMap();
    layer.init();
  }

 
  ButtonAction buttonSelect = ButtonAction.create( MouseButton.create( MouseButton.LEFT_BUTTON ) );
 
  @Override
  public void logic() {
    Camera.current.jumpTo( tileMap );
    if( buttonSelect.wasPressed() ) selectedSprite = cursor.lastCollidedSpriteOf( layer );
    layer.act();
    //if( KeyExit.wasPressed() ) exiting = true;
  }

 
  @Override
  public void render() {
    layer.draw();
    if( selectedSprite != null ) {
      selectedSprite.showModels( 100, "" );
      selectedSprite.drawUsingVisualizer( marchingAnts );
    }
    showDebugInfo();
    printText( "Guide AwesomePossum to exit from maze using arrow and space keys", Align.TO_RIGHT, Align.TO_TOP );
    printText( "you can view sprite behavior models by clicking left mouse button on it", Align.TO_RIGHT, Align.TO_TOP, 1 );
    printText( "Score: " + Service.firstZeroes( score, 6 ), Align.TO_RIGHT, Align.TO_BOTTOM );
    printText( "LTBehaviorModel example", Align.TO_CENTER, Align.TO_BOTTOM );
  }


  public static class Score extends Sprite {
    static double speed = 2d;
    static double period = 3d;

    int amount;
    double startingTime;

    public static void create( Sprite sprite, int amount ) {
      Score scoreObject = new Score();
      scoreObject.setCoords( sprite.getX(), sprite.topY() ).setDiameter( 0d );
      scoreObject.amount = amount;
      scoreObject.startingTime = BehaviorModelExample.instance.time;
      scoreObject.insertTo( instance.layer );
      instance.score += amount;
    }

    @Override
    public void act() {
      move( 0, -speed );
      if( BehaviorModelExample.instance.time > startingTime + period ) removeFrom( instance.layer );
    }

    @Override
    public void draw( Color drawingColor ) {
      printText( "+" + amount, Align.TO_CENTER, Align.TO_BOTTOM );
    }
  }


  public static class Restart extends Project {
    public long startingTime2 = System.currentTimeMillis();
    public boolean initialized;

    @Override
    public void render() {
      if( System.currentTimeMillis() < startingTime2 + 2000d ) {
        super.render();
        Camera.current.darken( 0.0005d * ( System.currentTimeMillis() - startingTime2 ) );
      } else if( System.currentTimeMillis() < startingTime2 + 4000d ) {
        if( !this.initialized ) {
          instance.initLevel();
          initialized = true;
        }
        super.render();
        Camera.current.darken( 0.0005d * ( 4000d - System.currentTimeMillis() + startingTime2 ) );
      } else {
        exiting = true;
      }
    }
  }
}
TOP

Related Classes of examples.BehaviorModelExample$Score

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.