Add explosion particle effect

This commit is contained in:
Victor 2014-01-15 20:10:49 +02:00
parent fcbb0aeb2c
commit cca8677a99
2 changed files with 16 additions and 2 deletions

View File

@ -1,6 +1,9 @@
package com.annimon.influencexxii; package com.annimon.influencexxii;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.ParticleEffect;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType; import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.MathUtils;
@ -13,9 +16,13 @@ public class EnemiesController {
private Array<Enemy> enemies; private Array<Enemy> enemies;
private int difficultMode; private int difficultMode;
private ParticleEffect explosion;
public EnemiesController() { public EnemiesController() {
enemies = new Array<Enemy>(); enemies = new Array<Enemy>();
difficultMode = 0; difficultMode = 0;
explosion = new ParticleEffect();
explosion.load(Gdx.files.internal("data/explosion.p"), Gdx.files.internal("data"));
} }
public void setScreenParameters(float width, float height) { public void setScreenParameters(float width, float height) {
@ -23,12 +30,16 @@ public class EnemiesController {
screenHeight = height; screenHeight = height;
} }
public void draw(ShapeRenderer renderer) { public void draw(SpriteBatch batch, ShapeRenderer renderer) {
renderer.begin(ShapeType.Filled); renderer.begin(ShapeType.Filled);
for (Enemy enemy : enemies) { for (Enemy enemy : enemies) {
enemy.draw(renderer); enemy.draw(renderer);
} }
renderer.end(); renderer.end();
// Draw explosion
batch.begin();
explosion.draw(batch, Gdx.graphics.getDeltaTime());
batch.end();
} }
public void addEnemy() { public void addEnemy() {
@ -47,6 +58,8 @@ public class EnemiesController {
public void killEnemy(float x, float y) { public void killEnemy(float x, float y) {
for (int i = 0; i < enemies.size; i++) { for (int i = 0; i < enemies.size; i++) {
if (enemies.get(i).isCollide(x, y)) { if (enemies.get(i).isCollide(x, y)) {
explosion.setPosition(x, y);
explosion.start();
Score.add(); Score.add();
difficultMode = Score.getDifficultMode(); difficultMode = Score.getDifficultMode();
enemies.set(i, generateNewEnemy()); enemies.set(i, generateNewEnemy());

View File

@ -26,6 +26,7 @@ public class InfluenceXXII implements ApplicationListener {
renderer = new ShapeRenderer(); renderer = new ShapeRenderer();
font = new BitmapFont(Gdx.files.internal("data/font16.fnt"), false); font = new BitmapFont(Gdx.files.internal("data/font16.fnt"), false);
font.setScale(1.5f);
font.setColor(new Color(0.23f, 0.38f, 1f, 0.81f)); font.setColor(new Color(0.23f, 0.38f, 1f, 0.81f));
spriteBatch = new SpriteBatch(); spriteBatch = new SpriteBatch();
background = DrawUtils.random2Color(0, 0x22); background = DrawUtils.random2Color(0, 0x22);
@ -60,7 +61,7 @@ public class InfluenceXXII implements ApplicationListener {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
// Draw enemies // Draw enemies
enemies.draw(renderer); enemies.draw(spriteBatch, renderer);
// Draw pointer // Draw pointer
pointer.draw(renderer); pointer.draw(renderer);