Java 类com.badlogic.gdx.graphics.g2d.ParticleEffect 实例源码
项目:KyperBox
文件:GameState.java
private void loadParticleEffects(TiledMap data, String atlasname) {
MapObjects objects = data.getLayers().get("preload").getObjects();
String ppcheck = "Particle";
for (MapObject o : objects) {
String name = o.getName();
MapProperties properties = o.getProperties();
String type = properties.get("type", String.class);
if (type != null && type.equals(ppcheck)) {
String file = properties.get("particle_file", String.class);
if (file != null) {
game.loadParticleEffect(file, atlasname);
game.getAssetManager().finishLoading();
if (!particle_effects.containsKey(name)) {
ParticleEffect pe = game.getParticleEffect(file);
pe.setEmittersCleanUpBlendFunction(false);
pvalues.add(KyperBoxGame.PARTICLE_FOLDER + KyperBoxGame.FILE_SEPARATOR + file);
particle_effects.put(name, new ParticleEffectPool(pe, 12, 48));
}
}
}
}
}
项目:Inspiration
文件:BattleUI.java
@Override
public void act(float delta){
battleTimer = (battleTimer + delta)%60;
if( damageValLabel.isVisible() && damageValLabel.getY() < this.getHeight()){
damageValLabel.setY(damageValLabel.getY()+5);
}
if( battleShakeCam != null && battleShakeCam.isCameraShaking() ){
Vector2 shakeCoords = battleShakeCam.getNewShakePosition();
_image.setPosition(shakeCoords.x, shakeCoords.y);
}
for( int i = 0; i < _effects.size; i++){
ParticleEffect effect = _effects.get(i);
if( effect == null ) continue;
if( effect.isComplete() ){
_effects.removeIndex(i);
effect.dispose();
}else{
effect.update(delta);
}
}
super.act(delta);
}
项目:Inspiration
文件:ParticleEffectFactory.java
public static ParticleEffect getParticleEffect(ParticleEffectType particleEffectType, float positionX, float positionY){
ParticleEffect effect = new ParticleEffect();
effect.load(Gdx.files.internal(particleEffectType.getValue()), Gdx.files.internal(SFX_ROOT_DIR));
effect.setPosition(positionX, positionY);
switch(particleEffectType){
case CANDLE_FIRE:
effect.scaleEffect(1.6f);
break;
case LANTERN_FIRE:
effect.scaleEffect(.6f);
break;
case LAVA_SMOKE:
effect.scaleEffect(1.6f);
break;
case WAND_ATTACK:
effect.scaleEffect(4.0f);
break;
default:
break;
}
effect.start();
return effect;
}
项目:spacegame
文件:Shoot.java
public Shoot(String nameTexture, int x, int y, GameObject shooter, ParticleEffect shootEffect, ParticleEffect destroyEffect, String shootFX) {
super(nameTexture,x,y);
this.shooter = shooter;
shocked = false;
originalShootPosition = new Vector2(x,y);
//Creamos los efectos de partículas si no vienen nulos
if (shootEffect != null) {
this.shootEffect = shootEffect;
shootEffect.start();
}
if (destroyEffect != null) {
this.destroyEffect = destroyEffect;
destroyEffect.start();
}
this.shootFX = shootFX;
}
项目:spacegame
文件:Enemy.java
public Enemy(String textureName, int x, int y, int vitality, ParticleEffect destroyEffect) {
super(textureName, x, y);
initialPosition = new Vector2(x,y);
this.vitality = vitality;
deletable = false;
this.destroyEffect = destroyEffect;
timeToFlick = 0;
timeForInvisible = RANGE_INVISIBLE_TIMER;
targettedByShip = false;
if(this.destroyEffect != null){
this.destroyEffect.getEmitters().first().setPosition(this.getX() + this.getWidth()/2, this.getY() + this.getHeight()/2);
this.destroyEffect.start();
}
}
项目:Crazy-Car-Race
文件:Car.java
public Car(String name, String lane, Texture texture, Vector2 pos, Vector2 direction) {
super(texture, pos, direction);
this.eType = 1;
if(name.equals("CAR1")){
carWidth = TextureManager.CAR1.getWidth();
carHeight = TextureManager.CAR1.getHeight();
}else if(name.equals("CAR2")){
carWidth = TextureManager.CAR2.getWidth();
carHeight = TextureManager.CAR2.getHeight();
}
smokeEffect = new ParticleEffect();
smokeEffect.load(Gdx.files.internal("effects/car_smoke_1.p"), Gdx.files.internal("effect_img"));
smokeEffect.setPosition(this.pos.x + carWidth / 2, this.pos.y + carHeight / 10 );
smokeEffect.start();
}
项目:Entitas-Java
文件:ActuatorEntity.java
public ActuatorEntity addParticleEffectActuator(ParticleEffect effect,
boolean autoStart, float locaPosX, float locaPosY) {
ParticleEffectActuator component = (ParticleEffectActuator) recoverComponent(ActuatorComponentsLookup.ParticleEffectActuator);
if (component == null) {
component = new ParticleEffectActuator(effect, autoStart, locaPosX,
locaPosY);
} else {
component.particleEffect = effect;
component.actuator = (indexOwner) -> {
GameEntity owner = Indexed.getInteractiveEntity(indexOwner);
RigidBody rc = owner.getRigidBody();
Transform transform = rc.body.getTransform();
effect.setPosition(transform.getPosition().x + locaPosX,
transform.getPosition().y + locaPosY);
effect.update(Gdx.graphics.getDeltaTime());
if (autoStart && effect.isComplete())
effect.start();
};
}
addComponent(ActuatorComponentsLookup.ParticleEffectActuator, component);
return this;
}
项目:Entitas-Java
文件:ActuatorEntity.java
public ActuatorEntity replaceParticleEffectActuator(ParticleEffect effect,
boolean autoStart, float locaPosX, float locaPosY) {
ParticleEffectActuator component = (ParticleEffectActuator) recoverComponent(ActuatorComponentsLookup.ParticleEffectActuator);
if (component == null) {
component = new ParticleEffectActuator(effect, autoStart, locaPosX,
locaPosY);
} else {
component.particleEffect = effect;
component.actuator = (indexOwner) -> {
GameEntity owner = Indexed.getInteractiveEntity(indexOwner);
RigidBody rc = owner.getRigidBody();
Transform transform = rc.body.getTransform();
effect.setPosition(transform.getPosition().x + locaPosX,
transform.getPosition().y + locaPosY);
effect.update(Gdx.graphics.getDeltaTime());
if (autoStart && effect.isComplete())
effect.start();
};
}
replaceComponent(ActuatorComponentsLookup.ParticleEffectActuator,
component);
return this;
}
项目:ZombieCopter
文件:ParticleSystem.java
public void addEffect(String name, Vector2 position, float angle){
logger.debug("Creating effect: " + name);
ParticleEffect effect = App.assets.getEffect(name);
if (effect == null) {
logger.error("Couldn't create particle effect: " + name);
return;
}
ParticleEffect e = new ParticleEffect(effect);
for (ParticleEmitter emitter : e.getEmitters()){
float a1 = emitter.getAngle().getHighMin(),
a2 = emitter.getAngle().getHighMax();
emitter.getRotation().setHighMin(a1 + angle);
emitter.getRotation().setHighMax(a2 + angle);
}
e.setPosition(position.x * App.engine.PIXELS_PER_METER, position.y * App.engine.PIXELS_PER_METER);
e.start();
effects.add(e);
}
项目:gdx-lml
文件:ParticleEffectProvider.java
@Override
public ParticleEffect getOrLoad(final String id) {
final String[] data = Strings.split(id, '$');
if (data.length == 0) {
throwUnknownPathException();
}
final String path = determinePath(data[0]);
getIdsToPaths().put(id, path);
final AssetManager assetManager = getAssetManager();
if (assetManager.isLoaded(path)) {
return assetManager.get(path, getType());
}
if (data.length > 1) {
final String atlasName = TextureAtlasProvider.getTextureAtlasPath(data[1]);
final ParticleEffectParameter parameters = new ParticleEffectParameter();
parameters.atlasFile = atlasName;
assetManager.load(path, ParticleEffect.class, parameters);
} else {
assetManager.load(path, ParticleEffect.class);
}
return null;
}
项目:sioncore
文件:ParticleEffectPools.java
public ParticleEffectPools() {
logger = new Logger(TAG, Env.debugLevel);
logger.info("initialising");
pools = new ObjectMap<String, ParticleEffectPool>();
try {
JsonReader reader = new JsonReader();
JsonValue root = reader.parse(Gdx.files.internal(PARTICLES_FILE));
JsonIterator particlesIt = root.iterator();
while (particlesIt.hasNext()) {
JsonValue particleValue = particlesIt.next();
String effectName = particleValue.asString();
logger.info("loading " + effectName);
ParticleEffect effect = new ParticleEffect();
effect.load(Gdx.files.internal(effectName), Gdx.files.internal(PARTICLES_FOLDER));
pools.put(effectName, new ParticleEffectPool(effect,
Env.particlePoolInitialCapacity,
Env.particlePoolMaxCapacity));
}
}
catch (Exception e) {
logger.error("failed to list directory " + PARTICLES_FILE);
}
}
项目:libgdxcn
文件:AssetManager.java
/** Creates a new AssetManager with all default loaders. */
public AssetManager (FileHandleResolver resolver) {
setLoader(BitmapFont.class, new BitmapFontLoader(resolver));
setLoader(Music.class, new MusicLoader(resolver));
setLoader(Pixmap.class, new PixmapLoader(resolver));
setLoader(Sound.class, new SoundLoader(resolver));
setLoader(TextureAtlas.class, new TextureAtlasLoader(resolver));
setLoader(Texture.class, new TextureLoader(resolver));
setLoader(Skin.class, new SkinLoader(resolver));
setLoader(ParticleEffect.class, new ParticleEffectLoader(resolver));
setLoader(PolygonRegion.class, new PolygonRegionLoader(resolver));
setLoader(I18NBundle.class, new I18NBundleLoader(resolver));
setLoader(Model.class, ".g3dj", new G3dModelLoader(new JsonReader(), resolver));
setLoader(Model.class, ".g3db", new G3dModelLoader(new UBJsonReader(), resolver));
setLoader(Model.class, ".obj", new ObjLoader(resolver));
executor = new AsyncExecutor(1);
}
项目:droidtowers
文件:FireWorksLayer.java
public FireWorksLayer(GameGrid gameGrid) {
super();
gameGrid.events().register(this);
TutorialEngine.instance().eventBus().register(this);
AchievementEngine.instance().eventBus().register(this);
ParticleEffect particleEffect = new ParticleEffect();
particleEffect.load(Gdx.files.internal("particles/firework.p"), Gdx.files.internal("particles"));
Set<float[]> colors = Sets.newHashSet();
colors.add(makeParticleColorArray(Color.WHITE, Color.RED, Color.ORANGE));
colors.add(makeParticleColorArray(Color.WHITE, Color.BLUE, Color.GREEN));
colors.add(makeParticleColorArray(Color.WHITE, Color.YELLOW, Color.PINK));
colors.add(makeParticleColorArray(Color.WHITE, Color.PINK, Color.MAGENTA));
colors.add(makeParticleColorArray(Color.WHITE, Color.BLUE, Color.CYAN));
colorsIterator = Iterators.cycle(colors);
worldBounds = new Rectangle();
for (int i = 0; i < 10; i++) {
addChild(new ParticleEffectManager(new ParticleEffect(particleEffect), colorsIterator, worldBounds));
}
}
项目:c2d-engine
文件:RuleParticleEffect.java
@Override
public boolean match(FileHandle file) {
boolean result = file.extension().equals("p");
if(result) {
Engine.getAssetManager().load(file.path().replace("\\", "/"),ParticleEffect.class);
return result;
}
result = file.extension().equals("pp");
if(result) {
ParticleEffectParameter parameter = new ParticleEffectParameter();
parameter.atlasFile = file.pathWithoutExtension().replace("\\", "/")+".atlas";
Engine.getAssetManager().load(file.path().replace("\\", "/"),ParticleEffect.class,parameter);
return result;
}
return false;
}
项目:droidtowers
文件:AchievementButton.java
public AchievementButton(TextureAtlas hudAtlas, AchievementEngine achievementEngine) {
super(hudAtlas.findRegion("achievements"), Colors.ICS_BLUE);
activeAnimation = new Animation(ANIMATION_DURATION, hudAtlas.findRegions("achievements-active"));
nextAnimationTime = 0;
particleEffect = new ParticleEffect();
particleEffect.load(Gdx.files.internal("particles/sparkle.p"), Gdx.files.internal("particles"));
addListener(new VibrateClickListener() {
public void onClick(InputEvent event, float x, float y) {
new AchievementListView(getStage()).show();
}
});
setVisible(false);
}
项目:MathAttack
文件:AbstractActor.java
/**
* Set particle for this actor, centerPosition is used to center the
* particle on this actor sizes.
*
* @param particleEffect the particle effect
* @param isParticleEffectActive the is particle effect active
* @param isStart the is start
* @param centerPosition the center position
*/
public void setParticleEffect(ParticleEffect particleEffect,
boolean isParticleEffectActive, boolean isStart,
boolean centerPosition) {
this.particleEffect = particleEffect;
this.isParticleEffectActive = isParticleEffectActive;
if (!centerPosition) {
this.particleEffect.setPosition(getX(), getY());
} else {
particlePosX = getWidth() / 2.0f;
particlePosY = getHeight() / 2.0f;
this.particleEffect.setPosition(getX() + particlePosX, getY()
+ particlePosY);
}
if (isStart) {
this.particleEffect.start();
}
}
项目:MathAttack
文件:AbstractGroup.java
/**
* Set particle for this actor, centerPosition is used to center the
* particle on this actor sizes.
*
* @param particleEffect the particle effect
* @param isParticleEffectActive the is particle effect active
* @param isStart the is start
* @param centerPosition the center position
*/
public void setParticleEffect(ParticleEffect particleEffect,
boolean isParticleEffectActive, boolean isStart,
boolean centerPosition) {
this.particleEffect = particleEffect;
this.isParticleEffectActive = isParticleEffectActive;
if (!centerPosition) {
this.particleEffect.setPosition(getX(), getY());
} else {
particlePosX = getWidth() / 2.0f;
particlePosY = getHeight() / 2.0f;
this.particleEffect.setPosition(getX() + particlePosX, getY()
+ particlePosY);
}
if (isStart) {
this.particleEffect.start();
}
}
项目:CatchDROP
文件:PoisonDrop.java
public PoisonDrop(final CDGame game) {
super(game);
x = MathUtils.random(0, game.GAME_WIDTH-64);
y = game.GAME_HEIGHT;
width = 64;
height = 64;
loseOnMiss = false;
gainValue = 0;
loseValue = 2;
rectImg = new Texture("poison.png");
poisonTimer = 10;
nowTimeInSeconds = TimeUtils.nanosToMillis(TimeUtils.nanoTime())/1000;
lastTimeInSeconds = nowTimeInSeconds;
fireEffect = new ParticleEffect();
fireEffect.load(Gdx.files.internal("fire.p"), Gdx.files.internal(""));
fireEffectPool = new ParticleEffectPool(fireEffect, 1, 2);
firePEffect = fireEffectPool.obtain();
}
项目:CatchDROP
文件:PoisonDrop.java
public PoisonDrop(final CDGame game, float x, float y, BitmapFont timerFont) {
super(game);
this.x = x;
this.y = y;
width = 64;
height = 64;
loseOnMiss = false;
gainValue = 0;
loseValue = 2;
rectImg = new Texture("poison.png");
poisonTimer = 10;
nowTimeInSeconds = TimeUtils.nanosToMillis(TimeUtils.nanoTime())/1000;
lastTimeInSeconds = nowTimeInSeconds;
fireEffect = new ParticleEffect();
fireEffect.load(Gdx.files.internal("fire.p"), Gdx.files.internal(""));
fireEffectPool = new ParticleEffectPool(fireEffect, 1, 2);
firePEffect = fireEffectPool.obtain();
this.timerFont = timerFont;
}
项目:Simple-Isometric-Game
文件:Assets.java
public void enqueueAssets() {
// Textures
manager.load(PlayerTex, Texture.class);
manager.load(CoinTex, Texture.class);
// Particles
manager.load(CoinPrt, ParticleEffect.class);
// Fonts
manager.load(DefaultFnt, BitmapFont.class);
// Skins
manager.load(DefaultSkin, Skin.class);
// Sounds
manager.load(CoinSound, Sound.class);
manager.load(FinishSound, Sound.class);
}
项目:0Bit-Engine
文件:RenderingSystem.java
@Override
public void update(float deltaTime) {
Gdx.gl.glClearColor(bgColour[0], bgColour[1], bgColour[2], bgColour[3]);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
batch.begin();
super.update(deltaTime);
for (ParticleEffect particle : particles) particle.draw(batch, deltaTime);
batch.end();
if (ZeroBit.debugEnabled) {
shapeRenderer.setProjectionMatrix(camera.combined);
shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
for (Entity entity : getEntities()) debugRender(entity);
shapeRenderer.end();
}
}
项目:0Bit-Engine
文件:Overlap2DLoader.java
/**
* Adds a ParticleEffect from a ParticleEffectVO. Uses ParticleEmitterBox2D
* @param item ParticleEffectVO to add
*/
private static void addParticle(ParticleEffectVO item) {
ParticleEffect particleEffect = new ParticleEffect();
particleEffect.load(Gdx.files.internal(particlesPath + "/" + item.particleName), atlas);
particleEffect.scaleEffect(ZeroBit.pixelsToMeters * item.scaleX);
for (int i=0; i < particleEffect.getEmitters().size; i++) {
particleEffect.getEmitters().set(i, new ParticleEmitterBox2D(b2dSystem.getB2World(), particleEffect.getEmitters().get(i)));
ParticleEmitter emitter = particleEffect.getEmitters().get(i);
// Spawn scaling doesn't seem to alter the actual dimensions of the effect like in the editor
/*emitter.getSpawnWidth().setHigh(emitter.getSpawnWidth().getHighMin() * item.scaleX, emitter.getSpawnWidth().getHighMax() * item.scaleX);
emitter.getSpawnWidth().setLow(emitter.getSpawnWidth().getLowMin() * item.scaleX, emitter.getSpawnWidth().getLowMax() * item.scaleX);
emitter.getSpawnHeight().setHigh(emitter.getSpawnHeight().getHighMin() * item.scaleY, emitter.getSpawnHeight().getHighMax() * item.scaleY);
emitter.getSpawnHeight().setLow(emitter.getSpawnHeight().getLowMin() * item.scaleY, emitter.getSpawnHeight().getLowMax() * item.scaleY);*/
emitter.setPosition(item.x * ZeroBit.pixelsToMeters, item.y * ZeroBit.pixelsToMeters);
}
//entityManager.getEngine().getSystem(RenderingSystem.class).addParticle(particleEffect);
ParticleComponent pc = new ParticleComponent();
pc.addParticle(particleEffect);
addEntity(item, null, pc, new VisualComponent());
}
项目:SMC-Android
文件:MainMenuScreen.java
@Override
public void loadAssets()
{
loader.parseLevel(world);
game.assets.manager.load("data/hud/hud.pack", TextureAtlas.class);
game.assets.manager.load("data/hud/controls.pack", TextureAtlas.class);
game.assets.manager.load("data/maryo/small.pack", TextureAtlas.class);
game.assets.manager.load("data/game/logo/smc_big_1.png", Texture.class, game.assets.textureParameter);
game.assets.manager.load("data/game/background/more_hills.png", Texture.class, game.assets.textureParameter);
game.assets.manager.load("data/sounds/audio_on.mp3", Sound.class);
cloudsPEffect = new ParticleEffect();
cloudsPEffect.load(game.assets.resolver.resolve("data/animation/particles/clouds_emitter.p"), game.assets.resolver.resolve("data/clouds/default_1/"));
cloudsPEffect.setPosition(Constants.MENU_CAMERA_WIDTH / 2, Constants.MENU_CAMERA_HEIGHT);
cloudsPEffect.start();
game.assets.manager.load("data/hud/lock.png", Texture.class, game.assets.textureParameter);
exitDialog.loadAssets();
settingsDialog.loadAssets();
}
项目:SMC-Android
文件:Box.java
private static Item createFireplant(Box box, boolean loadAssets, Assets assets)
{
if(loadAssets)
{
assets.manager.load("data/animation/particles/box_activated.p", ParticleEffect.class, assets.particleEffectParameter);
assets.manager.load("data/sounds/item/fireplant.mp3", Sound.class);
assets.manager.load("data/game/items/fireplant.pack", TextureAtlas.class);
assets.manager.load("data/animation/particles/fireplant_emitter.p", ParticleEffect.class, assets.particleEffectParameter);
}
else
{
Vector2 size = new Vector2(Fireplant.DEF_SIZE, Fireplant.DEF_SIZE);
Vector3 pos = new Vector3(box.position);
pos.x = box.position.x + box.mDrawRect.width * 0.5f - size.x * 0.5f;
Fireplant fireplant = new Fireplant(box.world, size, pos);
fireplant.initAssets();
fireplant.visible = false;
return fireplant;
}
return null;
}
项目:SMC-Android
文件:Box.java
public static Item createMoon(World world, Vector3 position, boolean loadAssets, Assets assets, boolean initAssets)
{
if(loadAssets)
{
assets.manager.load("data/animation/particles/box_activated.p", ParticleEffect.class, assets.particleEffectParameter);
assets.manager.load("data/game/items/moon.pack", TextureAtlas.class);
assets.manager.load("data/sounds/item/moon.mp3", Sound.class);
}
else
{
Moon moon = new Moon(world, new Vector2(Moon.DEF_SIZE, Moon.DEF_SIZE), new Vector3(position));
if(initAssets)moon.initAssets();
moon.visible = false;
return moon;
}
return null;
}
项目:SMC-Android
文件:Box.java
public static Item createStar(World world, Vector3 position, boolean loadAssets, Assets assets, boolean initAssets)
{
if(loadAssets)
{
assets.manager.load("data/animation/particles/box_activated.p", ParticleEffect.class, assets.particleEffectParameter);
assets.manager.load("data/game/items/star.png", Texture.class, assets.textureParameter);
}
else
{
Star star = new Star(world, new Vector2(Star.DEF_SIZE, Star.DEF_SIZE), new Vector3(position));
if(initAssets)star.initAssets();
star.visible = false;
return star;
}
return null;
}
项目:SMC-Android
文件:Assets.java
public Assets()
{
textureParameter = new TextureLoader.TextureParameter();
//textureParameter.genMipMaps = true;
textureParameter.magFilter = Texture.TextureFilter.Linear;
textureParameter.minFilter = Texture.TextureFilter.Linear;
resolver = new MaryoFileHandleResolver();
manager = new AssetManager(resolver);
particleEffectParameter = new ParticleEffectLoader.ParticleEffectParameter();
particleEffectParameter.imagesDir = resolver.resolve("data/animation/particles");
// set the loaders for the generator and the fonts themselves
manager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
manager.setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));
manager.setLoader(ParticleEffect.class, ".p", new ParticleEffectLoader(resolver));
manager.setLoader(Sound.class, ".mp3", new SoundLoader(new InternalFileHandleResolver()));
manager.setLoader(Music.class, ".mp3", new MusicLoader(new InternalFileHandleResolver()));
}
项目:vis-editor
文件:ParticleRenderSystem.java
@Override
protected void process (int entityId) {
VisParticle particle = particleCm.get(entityId);
Transform transform = transformCm.get(entityId);
ParticleEffect effect = particle.getEffect();
if (transform.isDirty()) {
particle.updateValues(transform.getX(), transform.getY());
}
if (ignoreActive || particle.isActiveOnStart())
effect.update(world.delta);
effect.draw(batch);
if (effect.isComplete())
effect.reset();
}
项目:vis-editor
文件:EditorParticleInflater.java
@Override
protected void inserted (int entityId) {
AssetReference assetRef = assetCm.get(entityId);
ProtoVisParticle protoComponent = protoCm.get(entityId);
VisParticle particle = partcielCm.create(entityId);
try {
particle.setEffect(particleCache.get(assetRef.asset, 1f / pixelsPerUnit));
} catch (EditorRuntimeException e) {
Log.exception(e);
particle.setEffect(new ParticleEffect());
loadingMonitor.addFailedResource(assetRef.asset, e);
}
protoComponent.fill(particle);
protoCm.remove(entityId);
}
项目:maze
文件:GameParticleHandler.java
@Override
public void onRemoveTrailColor(MonsterColor color) {
Maze maze = color.getMonster().getMaze();
ParticleEffect effect = manager.create(Assets.getInstance().get(Assets.FLARE, ParticleEffect.class), false);
float x = color.getX() * maze.getBlockSize() + maze.getX() + maze.getBlockSize() / 2;
float y = color.getY() * maze.getBlockSize() + maze.getY() + maze.getBlockSize() / 2;
effect.setPosition(x, y);
manager.setColor(effect, new float[]{color.r, color.g, color.b}, new float[]{0f});
effect.start();
for (ParticleEmitter e : effect.getEmitters()) {
e.getScale().setLow(Gdx.graphics.getWidth() / 30f);
e.getDuration().setLow(Monster.LENGTH * StupidMonsterLogic.INTERVAL / 104);
e.getLife().setLow(Monster.LENGTH * StupidMonsterLogic.INTERVAL / 140);
e.getDuration().setLowMin(Monster.LENGTH * StupidMonsterLogic.INTERVAL / 140);
e.getLife().setLowMin(Monster.LENGTH * StupidMonsterLogic.INTERVAL / 140);
e.getVelocity().setLow(Gdx.graphics.getWidth() / 50f);
}
effects.put(color, effect);
Gdx.input.vibrate(20);
}
项目:plox
文件:ParticleRenderer.java
@Override
public void onMove(GameObject object) {
ParticleEffect effect = effects.get(object);
Integer count = particleCounts.get(object);
if (effect != null) {
if (object.isIced()) {
if (particleManager.getParticleCount(effect) == count) {
particleManager.setParticleCount(effect, count / 20);
}
} else {
if (particleManager.getParticleCount(effect) != count) {
particleManager.setParticleCount(effect, count);
}
}
if (object.getType().equals(GameObjectType.ALIEN)) {
effect.setPosition(object.getCenterX(), object.getCenterY() + object.getHeight() / 3f);
} else {
effect.setPosition(object.getCenterX(), object.getCenterY());
}
}
}
项目:maze
文件:GameParticleHandler.java
@Override
public void onCreateColor(Monster monster, MonsterColor color) {
ParticleEffect effect = manager.create(Assets.getInstance().get(Assets.FLARE, ParticleEffect.class), false);
Maze maze = monster.getMaze();
float x = color.getX() * maze.getBlockSize() + maze.getX() + maze.getBlockSize() / 2;
float y = color.getY() * maze.getBlockSize() + maze.getY() + maze.getBlockSize() / 2;
effect.setPosition(x, y);
manager.setColor(effect, new float[]{color.r, color.g, color.b}, new float[]{0f});
effect.start();
for (ParticleEmitter e : effect.getEmitters()) {
e.getScale().setLow(Gdx.graphics.getWidth() / 100f);
e.getDuration().setLow(Monster.LENGTH * StupidMonsterLogic.INTERVAL);
e.getLife().setLow(Monster.LENGTH * StupidMonsterLogic.INTERVAL);
e.getDuration().setLowMin(Monster.LENGTH * StupidMonsterLogic.INTERVAL);
e.getLife().setLowMin(Monster.LENGTH * StupidMonsterLogic.INTERVAL);
e.getVelocity().setLow(Gdx.graphics.getWidth() / 300f);
}
effects.put(color, effect);
}
项目:craft
文件:ParticleRenderer.java
@Override
public void setAlpha(float alpha) {
// TODO: Alpha doesn't work for particles here as intended :(
this.alpha = alpha;
for (ParticleEffect e : effects.keySet()) {
for (ParticleEmitter emitter : e.getEmitters()) {
ScaledNumericValue v = emitter.getTransparency();
v.setHigh(alpha);
v.setLow(alpha);
}
}
}
项目:GDX-Logic-Bricks
文件:EffectActuatorSystem.java
@Override
public void processActuator(EffectActuator actuator, float deltaTime) {
ParticleEffectView view = actuator.effectView;
ParticleEffect effect = view.effect;
if (actuator.active) {
Log.debug(tag, "Effect reset");
effect.reset();
} else {
Log.debug(tag, "Effect allowCompletion");
effect.allowCompletion();
}
if (actuator.opacity != -1) view.setOpacity(actuator.opacity);
if (actuator.tint != null) view.setTint(actuator.tint);
if (actuator.position != null) {
if (view.attachedTransform != null) view.setLocalPosition(actuator.position);
else view.setPosition(actuator.position);
}
}
项目:GDX-Engine
文件:ParticleEffectManager.java
/**
* Add new (and activate) the effect just has been added.
* @param key key of effect
* @param particleEffectFilePath File path of effect file
* @param dirPathOfImages path of folder that contains images for effect
* @param isActiveEffect set Active Effect for effect just has been added.
*/
public void addParticleEffect(String key, String particleEffectFilePath, String dirPathOfImages){
if(collection.containsKey(key))
{
throw new GdxRuntimeException("Key for the particle effect is existing!");
}
ParticleEffect effect = new ParticleEffect();
effect.load(Gdx.files.internal(particleEffectFilePath),Gdx.files.internal(dirPathOfImages));
ParticleEffectPool pool = new ParticleEffectPool(effect, 1, 2);
collection.put(key, pool);
}
项目:SpaceChaos
文件:DrawParticlesComponent.java
@Override
public void onInit(BaseGame game, Entity entity) {
// create new particle effect
this.particleEffect = new ParticleEffect();
// load effect
game.getAssetManager().load(this.particleEffectFile, ParticleEffect.class);
game.getAssetManager().finishLoadingAsset(this.particleEffectFile);
this.particleEffect = game.getAssetManager().get(this.particleEffectFile, ParticleEffect.class);
if (this.autoStart) {
// start particle effect
this.particleEffect.start();
}
}
项目:TH902
文件:ParticleSystem.java
public static void draw() {
GameMain.instance.activeStage.getBatch().begin();
for (ParticleEffect particleEffect : effects) {
particleEffect.draw(GameMain.instance.activeStage.getBatch());
particleEffect.update(Gdx.graphics.getDeltaTime());
}
GameMain.instance.activeStage.getBatch().end();
}
项目:KyperBox
文件:KyperBoxGame.java
@Override
public void create() {
game_prefs = Gdx.app.getPreferences(prefs_name);
game_stage = new Stage(view);
game_states = new ObjectMap<String, GameState>();
game_stage.setDebugAll(false);
current_gamestates = new Array<GameState>();
transition_state = new GameState(null);
transition_state.setGame(this);
assets = new AssetManager();
assets.setLoader(TiledMap.class, new KyperMapLoader(assets.getFileHandleResolver()));
assets.setLoader(ParticleEffect.class, new ParticleEffectLoader(assets.getFileHandleResolver()));
assets.setLoader(ShaderProgram.class,
new ShaderProgramLoader(assets.getFileHandleResolver(), VERTEX_SUFFIX, FRAGMENT_SUFFIX));
sound = new SoundManager(this);
packages = new Array<String>();
packages.add("com.kyperbox.objects");
global_data = new UserData(GAME_DATA_NAME);
input = new GameInput();
Gdx.input.setInputProcessor(game_stage);
initiate();
}
项目:jewelthief
文件:Particles.java
public Particles(TextureAtlas textureAtlas) {
fireworkEffects = new ParticleEffectPool.PooledEffect[5];
startColors = new float[][]{ //
new float[]{0, .58f, 1}, // blue
new float[]{1, .984f, .267f}, // yellow
new float[]{.969f, .11f, 1}, // pink
new float[]{1, .02f, .082f}, // red
new float[]{.816f, 0, 1}, // violet
new float[]{0, 1, .098f}, // green
};
ParticleEffect fireworksEffect = new ParticleEffect();
fireworksEffect.load(Gdx.files.internal("particles/fireworks.p"), textureAtlas);
// if particle effect includes additive or pre-multiplied particle emitters
// you can turn off blend function clean-up to save a lot of draw calls
// but remember to switch the Batch back to GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
// before drawing "regular" sprites or your Stage.
fireworksEffect.setEmittersCleanUpBlendFunction(false);
fireworksEffectPool = new ParticleEffectPool(fireworksEffect, 1, 5);
for (int i = 0; i < fireworkEffects.length; i++) {
ParticleEffectPool.PooledEffect effect = fireworksEffectPool.obtain();
resetFireworksEffect(effect);
fireworkEffects[i] = effect;
}
}
项目:jewelthief
文件:Particles.java
/**
* Resets the position, start color and duration of the given firework effects to random values.
*
* @param effect
*/
private void resetFireworksEffect(ParticleEffect effect) {
effect.reset();
effect.setDuration(Utils.randomWithin(180, 250));
effect.setPosition(Utils.randomWithin(0, WINDOW_WIDTH), Utils.randomWithin(0, WINDOW_HEIGHT));
float[] colors = effect.getEmitters().get(0).getTint().getColors();
int randomStartColor = Utils.randomWithin(0, startColors.length - 1);
for (int i = 0; i < 6; i++) {
colors[i] = startColors[randomStartColor][i % 3];
}
for (ParticleEmitter emitter : effect.getEmitters()) {
emitter.getTint().setColors(colors);
}
}