ExampleEffects - Lebby/ForScene GitHub Wiki


public class TestEffectsScene extends AbstractScene{
	private BoatObject boat;
	private TestFlagObject flag;
	private TestBackground bg;
	@Override
	public void build() 
	{
		bg = new TestBackground();
		boat = new BoatObject();
		flag = new TestFlagObject();
		
		try {
			addSceneObject("background",bg);
			boat.addSceneObject("flag",flag);			
			addSceneObject("boat",boat);			
		} catch (NoNameException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Scroll scroll = new Scroll();
		scroll.setTarget(boat);
		scroll.setUpdateRate(10);
				
		Blink blink = new Blink();
		blink.setTarget(boat);
		blink.setUpdateRate(1);
		
		
		FadeIn fadeIn = new FadeIn();
		fadeIn.setTarget(boat);
		fadeIn.setUpdateRate(1);
		
		
		FadeOut fadeOut = new FadeOut();
		fadeOut.setTarget(boat);
		fadeOut.setUpdateRate(1);
		//fadeOut.start();
		
		OnLoad listener = new OnLoad(this) {
			private AbstractEffect scroll,fadeIn,fadeOut,blink;
			
			@Override
			public void run() {
				this.setDone(false);
				PlayN.log().debug("X " + ((Scroll) scroll).getPositionX());
				if (getStatus() == EventStatus.STARTED)
				{
					scroll.start();
					//blink.start();
					fadeIn.start();					
				}
				if (((FadeIn)fadeIn).getCurrentAlpha() >= 1f)
				{
					blink.stop();
					fadeOut.start();					
				}
				if (((Scroll) scroll).getPositionX() <= -500 )
				{
					scroll.stop();
					setDone(true);
					PlayN.log().debug("STOP!");
				}
			}
			
			public OnLoad set(AbstractEffect scroll, AbstractEffect fadeIn, AbstractEffect fadeOut, AbstractEffect blink)
			{
				this.fadeIn = fadeIn;
				this.fadeOut = fadeOut;
				this.scroll = scroll;
				this.blink =blink;
				return this;						
			}
		}.set(scroll, fadeIn, fadeOut, blink);
		
		EventObserverManager.getInstance().register("LoadSceneEvent",listener);		
	}
		
	

	@Override
	public void updateState() {
		// TODO Auto-generated method stub
		
	}
}