enemy management
This commit is contained in:
@@ -19,16 +19,10 @@ import org.lumijiez.bugger.handlers.*;
|
|||||||
import org.lumijiez.bugger.vfx.ParticleManager;
|
import org.lumijiez.bugger.vfx.ParticleManager;
|
||||||
import org.lumijiez.bugger.vfx.SpaceBackground;
|
import org.lumijiez.bugger.vfx.SpaceBackground;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Bugger {
|
public class Bugger {
|
||||||
private static Bugger instance;
|
private static Bugger instance;
|
||||||
private final World world = new World(new Vector2(0, 0), true);;
|
private final World world = new World(new Vector2(0, 0), true);;
|
||||||
private final SpaceBackground spaceBackground = new SpaceBackground();
|
private final SpaceBackground spaceBackground = new SpaceBackground();
|
||||||
private final Array<Projectile> projectiles = new Array<>();
|
|
||||||
private final List<EnemyEntity> enemies = new ArrayList<>();
|
|
||||||
private final Array<Entity> entitiesToDestroy = new Array<>();
|
|
||||||
private final Box2DDebugRenderer debugRenderer = new Box2DDebugRenderer();
|
private final Box2DDebugRenderer debugRenderer = new Box2DDebugRenderer();
|
||||||
public static SpriteBatch spriteBatch = new SpriteBatch();
|
public static SpriteBatch spriteBatch = new SpriteBatch();
|
||||||
public static SpriteBatch uiBatch = new SpriteBatch();
|
public static SpriteBatch uiBatch = new SpriteBatch();
|
||||||
@@ -65,7 +59,7 @@ public class Bugger {
|
|||||||
step();
|
step();
|
||||||
|
|
||||||
cycleProjectiles(delta);
|
cycleProjectiles(delta);
|
||||||
cycleEnemies();
|
EnemyHandler.getInstance().cycle();
|
||||||
cycleParticles(delta);
|
cycleParticles(delta);
|
||||||
|
|
||||||
EntityCleaner.getInstance().tryClean();
|
EntityCleaner.getInstance().tryClean();
|
||||||
@@ -73,7 +67,7 @@ public class Bugger {
|
|||||||
updateCamera();
|
updateCamera();
|
||||||
|
|
||||||
renderPlayer();
|
renderPlayer();
|
||||||
renderEnemies(delta);
|
EnemyHandler.getInstance().render(delta);
|
||||||
// renderDebug();
|
// renderDebug();
|
||||||
|
|
||||||
UIRenderer.getInstance().renderUI();
|
UIRenderer.getInstance().renderUI();
|
||||||
@@ -90,11 +84,6 @@ public class Bugger {
|
|||||||
spaceBackground.render();
|
spaceBackground.render();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void renderEnemies(float delta) {
|
|
||||||
EnemySpawner.getInstance().cycle(delta);
|
|
||||||
for (EnemyEntity enemy : enemies) enemy.cycle();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void renderPlayer() {
|
public void renderPlayer() {
|
||||||
player.render();
|
player.render();
|
||||||
}
|
}
|
||||||
@@ -119,14 +108,6 @@ public class Bugger {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void cycleEnemies() {
|
|
||||||
for (EnemyEntity enemy : enemies) {
|
|
||||||
if (enemy.isMarkedToDestroy()) {
|
|
||||||
entitiesToDestroy.add(enemy);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void cycleParticles(float delta) {
|
public void cycleParticles(float delta) {
|
||||||
ParticleManager.getInstance().update(delta);
|
ParticleManager.getInstance().update(delta);
|
||||||
ParticleManager.getInstance().render(spriteBatch);
|
ParticleManager.getInstance().render(spriteBatch);
|
||||||
@@ -140,10 +121,6 @@ public class Bugger {
|
|||||||
EntityCleaner.getInstance().disposeAll();
|
EntityCleaner.getInstance().disposeAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<EnemyEntity> getEnemies() {
|
|
||||||
return enemies;
|
|
||||||
}
|
|
||||||
|
|
||||||
public World getWorld() {
|
public World getWorld() {
|
||||||
return world;
|
return world;
|
||||||
}
|
}
|
||||||
@@ -152,10 +129,6 @@ public class Bugger {
|
|||||||
return player;
|
return player;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Array<Entity> getEntitiesToDestroy() {
|
|
||||||
return entitiesToDestroy;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Array<Projectile> getProjectiles() {
|
public Array<Projectile> getProjectiles() {
|
||||||
return projectiles;
|
return projectiles;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package org.lumijiez.bugger.handlers;
|
||||||
|
|
||||||
|
import org.lumijiez.bugger.Bugger;
|
||||||
|
import org.lumijiez.bugger.entities.enemies.EnemyEntity;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class EnemyHandler {
|
||||||
|
private final List<EnemyEntity> enemies = new ArrayList<>();
|
||||||
|
private static EnemyHandler instance;
|
||||||
|
|
||||||
|
private EnemyHandler() {}
|
||||||
|
|
||||||
|
public static EnemyHandler getInstance() {
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new EnemyHandler();
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void render(float delta) {
|
||||||
|
EnemySpawner.getInstance().cycle(delta);
|
||||||
|
for (EnemyEntity enemy : enemies) enemy.cycle();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void cycle() {
|
||||||
|
for (EnemyEntity enemy : enemies) {
|
||||||
|
if (enemy.isMarkedToDestroy()) {
|
||||||
|
Bugger.getInstance().getEntitiesToDestroy().add(enemy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<EnemyEntity> getEnemies() {
|
||||||
|
return enemies;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,15 +33,15 @@ public class EnemySpawner {
|
|||||||
public void spawn(Enemies enemy) {
|
public void spawn(Enemies enemy) {
|
||||||
World world = Bugger.getInstance().getWorld();
|
World world = Bugger.getInstance().getWorld();
|
||||||
Vector2 playerPos = Bugger.getInstance().getPlayer().getPosition();
|
Vector2 playerPos = Bugger.getInstance().getPlayer().getPosition();
|
||||||
Bugger.getInstance().getEnemies().add(EnemyFactory.createEnemy(enemy, world, playerPos));
|
EnemyHandler.getInstance().getEnemies().add(EnemyFactory.createEnemy(enemy, world, playerPos));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void spawn(Enemies enemy, World world, Vector2 position) {
|
public void spawn(Enemies enemy, World world, Vector2 position) {
|
||||||
Bugger.getInstance().getEnemies().add(EnemyFactory.createEnemy(enemy, world, position));
|
EnemyHandler.getInstance().getEnemies().add(EnemyFactory.createEnemy(enemy, world, position));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void trySpawnRandom(World world, Vector2 position) {
|
private void trySpawnRandom(World world, Vector2 position) {
|
||||||
Bugger.getInstance().getEnemies().add(EnemyFactory.createRandomEnemy(world, position));
|
EnemyHandler.getInstance().getEnemies().add(EnemyFactory.createRandomEnemy(world, position));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import org.lumijiez.bugger.vfx.ParticleManager;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class EntityCleaner {
|
public class EntityCleaner {
|
||||||
|
private final Array<Entity> entitiesToDestroy = new Array<>();
|
||||||
|
|
||||||
private static EntityCleaner instance;
|
private static EntityCleaner instance;
|
||||||
|
|
||||||
private EntityCleaner() {}
|
private EntityCleaner() {}
|
||||||
@@ -23,9 +25,9 @@ public class EntityCleaner {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void tryClean() {
|
public void tryClean() {
|
||||||
Array<Entity> entities = Bugger.getInstance().getEntitiesToDestroy();
|
Array<Entity> entities = entitiesToDestroy;
|
||||||
Array<Projectile> projectiles = Bugger.getInstance().getProjectiles();
|
Array<Projectile> projectiles = Bugger.getInstance().getProjectiles();
|
||||||
List<EnemyEntity> enemies = Bugger.getInstance().getEnemies();
|
List<EnemyEntity> enemies = EnemyHandler.getInstance().getEnemies();
|
||||||
World world = Bugger.getInstance().getWorld();
|
World world = Bugger.getInstance().getWorld();
|
||||||
|
|
||||||
for (Entity entity : entities) {
|
for (Entity entity : entities) {
|
||||||
@@ -44,6 +46,10 @@ public class EntityCleaner {
|
|||||||
entities.clear();
|
entities.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Array<Entity> getEntitiesToDestroy() {
|
||||||
|
return entitiesToDestroy;
|
||||||
|
}
|
||||||
|
|
||||||
public void disposeAll() {
|
public void disposeAll() {
|
||||||
Bugger.spriteBatch.dispose();
|
Bugger.spriteBatch.dispose();
|
||||||
Bugger.uiBatch.dispose();
|
Bugger.uiBatch.dispose();
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package org.lumijiez.bugger.handlers;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
|
import org.lumijiez.bugger.entities.weapons.Projectile;
|
||||||
|
|
||||||
|
public class ProjectileHandler {
|
||||||
|
private final Array<Projectile> projectiles = new Array<>();
|
||||||
|
private static ProjectileHandler instance;
|
||||||
|
|
||||||
|
private ProjectileHandler() {}
|
||||||
|
|
||||||
|
public static ProjectileHandler getInstance() {
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new ProjectileHandler();
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,7 +3,6 @@ package org.lumijiez.bugger.handlers;
|
|||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import com.badlogic.gdx.graphics.OrthographicCamera;
|
import com.badlogic.gdx.graphics.OrthographicCamera;
|
||||||
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||||
import com.badlogic.gdx.graphics.g2d.Sprite;
|
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
import org.lumijiez.bugger.Bugger;
|
import org.lumijiez.bugger.Bugger;
|
||||||
import org.lumijiez.bugger.entities.Player;
|
import org.lumijiez.bugger.entities.Player;
|
||||||
@@ -27,7 +26,7 @@ public class UIRenderer {
|
|||||||
SpriteBatch uiBatch = Bugger.uiBatch;
|
SpriteBatch uiBatch = Bugger.uiBatch;
|
||||||
OrthographicCamera uiCam = Bugger.uiCam;
|
OrthographicCamera uiCam = Bugger.uiCam;
|
||||||
int kills = Bugger.kills;
|
int kills = Bugger.kills;
|
||||||
int enemies = Bugger.getInstance().getEnemies().size();
|
int enemies = EnemyHandler.getInstance().getEnemies().size();
|
||||||
int projectiles = Bugger.getInstance().getProjectiles().size;
|
int projectiles = Bugger.getInstance().getProjectiles().size;
|
||||||
int bodies = Bugger.getInstance().getWorld().getBodyCount();
|
int bodies = Bugger.getInstance().getWorld().getBodyCount();
|
||||||
uiBatch.begin();
|
uiBatch.begin();
|
||||||
|
|||||||
Reference in New Issue
Block a user