package edu.gatech.cs2340.trydent.sample; import javafx.scene.paint.Color; import edu.gatech.cs2340.trydent.Behavior; import edu.gatech.cs2340.trydent.GameObject; import edu.gatech.cs2340.trydent.Sprite; import edu.gatech.cs2340.trydent.Time; import edu.gatech.cs2340.trydent.TrydentEngine; import edu.gatech.cs2340.trydent.math.Position; /** * Example to show some possible ways to use sprites. */ public class SpriteExample implements Runnable { public static void main(String[] args) { TrydentEngine.start(); TrydentEngine.setWindowTitle("TrydentEngine - Sprite Example"); TrydentEngine.setWindowSize(720, 480); TrydentEngine.setBackgroundColor(Color.WHITE); TrydentEngine.runOnce(new SpriteExample()); } @Override public void run() { String prefix = "edu/gatech/cs2340/trydent/sample/sprites/"; GameObject pikachu = new Sprite(prefix + "pikapika.gif"); pikachu.setLocalPosition(new Position(50, 50)); Sprite pacman = new Sprite( new String[]{ prefix + "wakawaka1.png", prefix + "wakawaka2.png", prefix + "wakawaka3.png", prefix + "wakawaka2.png" }, 0.05, "pacman" ); final double sideLength = 200; GameObject pacmanCenter = new GameObject(); pacmanCenter.setLocalPosition(new Position(320, 240)); pacman.setParent(pacmanCenter); final double offsetX = -pacman.getWidth()/2; final double offsetY = -pacman.getHeight()/2; new Behavior(pacman) { @Override public void onUpdate() { double distance = (Time.getTime()*200) % (4*sideLength); int curSide = (int) (distance / sideLength); int curRotation = 90*curSide; getGameObject().setLocalPosition(new Position( -sideLength/2 + distance%sideLength + offsetX, -sideLength/2 + offsetY )); pacmanCenter.setLocalRotation(curRotation); } }; } }