package com.spaceshooter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.math.Intersector; /* Manages the player re-spawns, spawns, and explosions */ public class PlayerManager { private Player player; Explosion explosion = null; float respawnTimer; private Sound pickupSound; PlayerManager() { player = new Player(0,0,false); respawnTimer = 0.0f; pickupSound = ResourceManager.getAssetManager().get(ResourceManager.PowerUpSound,Sound.class); } public void update(EnemyManager enemyManager,BulletManager bulletManager,PickupManager pickupManager,ScoreHandler scoreHandler) { if (player != null) { player.update(bulletManager); for (int i = 0; i < pickupManager.getList().size(); i++) { if (Intersector.overlaps(pickupManager.getList().get(i).getBoundingRectangle() ,player.getShowSprite().getBoundingRectangle())) { pickupSound.play(); if (pickupManager.getList().get(i) instanceof WeaponPickup) player.incrementLevel(); else if (pickupManager.getList().get(i) instanceof MissilePickup) player.giveMissile(); pickupManager.getList().remove(i); } } if (player.isDead()) { explosion = new Explosion(player.getX(),player.getY(),1); scoreHandler.saveScore(); scoreHandler.setScore(0); player = null; } } else { respawnTimer += Gdx.graphics.getDeltaTime(); } if (respawnTimer >= 2.0f && player == null) { player = new Player(0,-200,true); bulletManager.clear(); enemyManager.clear(); respawnTimer = 0.0f; } } public void drawPlayer(SpriteBatch batch) { if (player != null) player.draw(batch); if (explosion != null) explosion.draw(batch); } public void dispose() { if (player != null) player.getTexture().dispose(); } public Player getPlayer() { return player; } }