package info.u250.c2d.tests.particle; import java.util.Random; import info.u250.c2d.engine.Engine; import info.u250.c2d.engine.EngineDrive; import info.u250.c2d.engine.SceneStage; import info.u250.c2d.engine.resources.AliasResourceManager; import info.u250.c2d.graphic.ParticleEffectActor; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.g2d.ParticleEffect; import com.badlogic.gdx.math.Vector2; public class FloatParticleTest extends Engine { @Override protected EngineDrive onSetupEngineDrive() { return new EngineX(); } @Override public void dispose () { super.dispose(); } private class EngineX implements EngineDrive{ @Override public void onResourcesRegister(AliasResourceManager<String> reg) { } @Override public void dispose() {} @Override public EngineOptions onSetupEngine() { final EngineOptions opt = new EngineOptions(new String[]{},800,480); return opt; } @Override public void onLoadedResourcesCompleted() { final ParticleEffect particleEffect = new ParticleEffect(); particleEffect.load(Gdx.files.internal("data/particles/D.pp"), Gdx.files.internal("data/particles/")); SceneStage stage = new SceneStage(); { ParticleEffectActor p = new ParticleEffectActor(particleEffect,"level-screen"){ float timeDelta = 0; Random r = new Random(); Vector2 speed = new Vector2(400,200); Vector2 direction = new Vector2(1,1).nor(); float SPEED = 400; @Override public void act(float delta) { timeDelta += delta; if(timeDelta>0.5f){ timeDelta = 0; direction.set(r.nextFloat()*r.nextFloat(),r.nextFloat()).nor(); } if(getX()>920){ speed.x = -SPEED*2 ; } if(getY()>500){ speed.y = -SPEED ; } if(getX()<10){ speed.x = SPEED *2; } if(getY()<10){ speed.y = SPEED ; } this.moveBy(direction.x*speed.x*delta,direction.y*speed.y*delta); } }; p.setPosition(100, 370); stage.addActor(p); } Engine.setMainScene(stage); } } }