package com.me.adventures.main;
import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Preferences;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector2;
import com.me.adventures.pruebas.EnemyTest;
import com.me.adventures.screens.*;
public class AdventuresOfManuel extends Game {
public AbstractScreen LOADING, START, MAIN, WIN, GAMEOVER, PAUSE;
public AbstractScreen NIVEL1, NIVEL2, NIVEL3, NIVEL4, NIVEL5, NIVEL6, NIVEL7, NIVEL8, NIVEL9, NIVEL10;
private Music musicaMenu, musicaNivel;
private AssetManager manager;
private SpriteBatch batch;
private OrthographicCamera camera;
private Preferences preferencias;
private boolean sonidoActivado;
private boolean musicaActivada;
private float div;
//private float divMenus;
//private float divNivel;
private int nivelActual;
private boolean tipoJuegoMustDie;
@Override
public void create() {
Gdx.input.setCatchBackKey(true);
nivelActual = 1;
manager = new AssetManager();
batch = new SpriteBatch();
camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
preferencias = Gdx.app.getPreferences("-_PreferencesManuel-JMDCG-PINF-_");
sonidoActivado = preferencias.getBoolean("Sonido", true);
musicaActivada = preferencias.getBoolean("Musica", true);
// Cargamos todos los elementos externos que usarĂ¡ el juego, como son las texturas y los sonidos.
manager.load("Pantallas/Loading.png", Texture.class);
manager.load("Pantallas/FondoMenu.png", Texture.class);
manager.load("Pantallas/Start.png", Texture.class);
manager.load("Pantallas/NextLevel.png", Texture.class);
manager.load("Manolito/TablaSpritesManolitoTransparencia.png", Texture.class);
manager.load("Enemigos/bloque.png", Texture.class);
manager.load("Enemigos/TablaCalaveraFinal.png", Texture.class);
manager.load("Enemigos/TablaDragon.png", Texture.class);
manager.load("Enemigos/TablaBichoVerde.png", Texture.class);
manager.load("Enemigos/TablaMedusa.png", Texture.class);
manager.load("Enemigos/TablaSerpiente.png", Texture.class);
manager.load("Enemigos/TablaFantasma.png", Texture.class);
manager.load("Miscelanea/Arbol.png", Texture.class);
manager.load("Miscelanea/Bordes.png", Texture.class);
manager.load("Miscelanea/Cofre.png", Texture.class);
manager.load("Miscelanea/Corazon.png", Texture.class);
manager.load("Miscelanea/Ganar.png", Texture.class);
manager.load("Miscelanea/Huevo.png", Texture.class);
manager.load("Miscelanea/Murallas.png", Texture.class);
manager.load("Miscelanea/Nivel.png", Texture.class);
manager.load("Miscelanea/ProyectilManolito.png", Texture.class);
manager.load("Miscelanea/ProyectilMedusa.png", Texture.class);
manager.load("Miscelanea/Roca.png", Texture.class);
manager.load("Miscelanea/Suelo.png", Texture.class);
manager.load("Miscelanea/TablaAgua.png", Texture.class);
manager.load("Miscelanea/TablaPuente.png", Texture.class);
manager.load("Miscelanea/TablaPuerta.png", Texture.class);
manager.load("Pantallas/1.png", Texture.class);
manager.load("Pantallas/2.png", Texture.class);
manager.load("Pantallas/3.png", Texture.class);
manager.load("Pantallas/4.png", Texture.class);
manager.load("Pantallas/5.png", Texture.class);
manager.load("Pantallas/6.png", Texture.class);
manager.load("Pantallas/7.png", Texture.class);
manager.load("Pantallas/8.png", Texture.class);
manager.load("Pantallas/9.png", Texture.class);
manager.load("Pantallas/10.png", Texture.class);
manager.load("Pantallas/BotonSFX.png", Texture.class);
manager.load("Pantallas/BotonNoSFX.png", Texture.class);
manager.load("Pantallas/BotonMusica.png", Texture.class);
manager.load("Pantallas/BotonNoMusica.png", Texture.class);
manager.load("Pantallas/BotonContinuar.png", Texture.class);
manager.load("Pantallas/BotonMenu.png", Texture.class);
manager.load("Pantallas/BotonSalir.png", Texture.class);
manager.load("Pantallas/BotonNoTransparente.png", Texture.class);
manager.load("Pantallas/BotonT.png", Texture.class);
manager.load("Pantallas/BotonSiguienteNivel.png", Texture.class);
manager.load("Pantallas/GameOver.png", Texture.class);
manager.load("Pantallas/Pausa.png", Texture.class);
manager.load("Pantallas/Start.png", Texture.class);
manager.load("Pantallas/BotonReintentar.png", Texture.class);
manager.load("Pantallas/BotonSiguienteNivel.png", Texture.class);
manager.load("Musica/Button.mp3", Sound.class);
manager.load("Musica/DisparoDragon.mp3", Sound.class);
manager.load("Musica/DisparoManolito.mp3", Sound.class);
manager.load("Musica/Ganar.mp3", Sound.class);
manager.load("Musica/Perder.mp3", Sound.class);
manager.load("Musica/MenuInicial.mp3", Music.class);
manager.load("Musica/Niveles.mp3", Music.class);
LOADING = new LoadingScreen(this); // Necesario
setScreen(LOADING);
}
public void crearNiveles() {
// Pantallas del juego
START = new StartScreen(this);
MAIN = new MainScreen(this);
WIN = new WinScreen(this);
GAMEOVER = new GameOverScreen(this);
PAUSE = new PauseScreen(this);
iniciarNiveles();
//Musica
musicaMenu = manager.get("Musica/MenuInicial.mp3", Music.class);
musicaNivel = manager.get("Musica/Niveles.mp3", Music.class);
}
public void iniciarNiveles(){
NIVEL1 = new Nivel1(this, new Vector2(193, 464));
NIVEL2 = new Nivel2(this, new Vector2(425, 116));
NIVEL3 = new Nivel3(this, new Vector2(541, 174));
NIVEL4 = new Nivel4(this, new Vector2(483, 58));
NIVEL5 = new Nivel5(this, new Vector2(483, 58));
NIVEL6 = new Nivel6(this, new Vector2(193, 232));
NIVEL7 = new Nivel7(this, new Vector2(773, 58));
NIVEL8 = new Nivel8(this, new Vector2(657, 522));
NIVEL9 = new Nivel9(this, new Vector2(715, 58));
NIVEL10 = new Nivel10(this, new Vector2(773, 348));
}
public void destruirNiveles() {
MAIN = new MainScreen(this);
NIVEL1 = new Nivel1(this, new Vector2(193, 464));
NIVEL2 = new Nivel2(this, new Vector2(425, 116));
NIVEL3 = new Nivel3(this, new Vector2(541, 174));
NIVEL4 = new Nivel4(this, new Vector2(483, 58));
NIVEL5 = new Nivel5(this, new Vector2(483, 58));
NIVEL6 = new Nivel6(this, new Vector2(193, 232));
NIVEL7 = new Nivel7(this, new Vector2(773, 58));
NIVEL8 = new Nivel8(this, new Vector2(657, 522));
NIVEL9 = new Nivel9(this, new Vector2(715, 58));
NIVEL10 = new Nivel10(this, new Vector2(773, 348));
}
public SpriteBatch getBatch() {
return batch;
}
public AssetManager getManager() {
return manager;
}
public OrthographicCamera getCamera() {
return camera;
}
public Preferences getPreferencias() {
return preferencias;
}
public Music getMusicaMenu() {
return musicaMenu;
}
public Music getMusicaNivel() {
return musicaNivel;
}
public boolean isSonidoActivado() {
return sonidoActivado;
}
public void pressSonido() {
if(sonidoActivado)
sonidoActivado = false;
else
sonidoActivado = true;
}
public boolean isMusicaActivada() {
return musicaActivada;
}
public void pressMusica() {
if(musicaActivada)
musicaActivada = false;
else
musicaActivada = true;
}
public float getDiv() {
return div;
}
public void setDiv(float div) {
this.div = div;
}
/*public float getDivMenu() {
return divMenus;
}
public void setDivMenu(float div) {
this.divMenus = div;
}
public float getDivNivel() {
return divMenus;
}
public void setDivNivel(float div) {
this.divMenus = div;
}*/
@Override
public void dispose() {
super.dispose();
preferencias.putBoolean("Sonido", sonidoActivado);
preferencias.putBoolean("Musica", musicaActivada);
preferencias.flush();
manager.dispose();
batch.dispose();
}
@Override
public void render() {
super.render();
}
@Override
public void resize(int width, int height) {
super.resize(width, height);
}
@Override
public void pause() {
super.pause();
}
@Override
public void resume() {
super.resume();
}
public void setTipoJuegoMustDie(boolean tipo){
tipoJuegoMustDie = tipo;
}
public boolean getTipoJuegoMustDie(){
return tipoJuegoMustDie;
}
public void siguienteNivel(){
nivelActual++;
}
public void pasarSiguienteNivel(){
nivelActual++;
if(nivelActual == 1)
setScreen(NIVEL1);
else if(nivelActual == 2)
setScreen(NIVEL2);
else if(nivelActual == 3)
setScreen(NIVEL3);
else if(nivelActual == 4)
setScreen(NIVEL4);
else if(nivelActual == 5)
setScreen(NIVEL5);
else if(nivelActual == 6)
setScreen(NIVEL6);
else if(nivelActual == 7)
setScreen(NIVEL7);
else if(nivelActual == 8)
setScreen(NIVEL8);
else if(nivelActual == 9)
setScreen(NIVEL9);
else if(nivelActual == 10)
setScreen(NIVEL10);
}
public int getNivelActual(){
return nivelActual;
}
public void gameOver(){
setScreen(GAMEOVER);
}
public void reintentarNivel(){
if(nivelActual == 1){
NIVEL1 = new Nivel1(this, new Vector2(193, 464));
setScreen(NIVEL1);
}
else if(nivelActual == 2){
NIVEL2 = new Nivel2(this, new Vector2(425, 116));
setScreen(NIVEL2);
}
else if(nivelActual == 3){
NIVEL3 = new Nivel3(this, new Vector2(541, 174));
setScreen(NIVEL3);
}
else if(nivelActual == 4){
NIVEL4 = new Nivel4(this, new Vector2(483, 58));
setScreen(NIVEL4);
}
else if(nivelActual == 5){
NIVEL5 = new Nivel5(this, new Vector2(483, 58));
setScreen(NIVEL5);
}
else if(nivelActual == 6){
NIVEL6 = new Nivel6(this, new Vector2(193, 232));
setScreen(NIVEL6);
}
else if(nivelActual == 7){
NIVEL7 = new Nivel7(this, new Vector2(773, 58));
setScreen(NIVEL7);
}
else if(nivelActual == 8){
NIVEL8 = new Nivel8(this, new Vector2(657, 522));
setScreen(NIVEL8);
}
else if(nivelActual == 9){
NIVEL9 = new Nivel9(this, new Vector2(715, 58));
setScreen(NIVEL9);
}
else if(nivelActual == 10){
NIVEL10 = new Nivel10(this, new Vector2(773, 348));
setScreen(NIVEL10);
}
}
public void continuarNivel(){
if(nivelActual == 1){
setScreen(NIVEL1);
}
else if(nivelActual == 2){
setScreen(NIVEL2);
}
else if(nivelActual == 3){
setScreen(NIVEL3);
}
else if(nivelActual == 4){
setScreen(NIVEL4);
}
else if(nivelActual == 5){
setScreen(NIVEL5);
}
else if(nivelActual == 6){
setScreen(NIVEL6);
}
else if(nivelActual == 7){
setScreen(NIVEL7);
}
else if(nivelActual == 8){
setScreen(NIVEL8);
}
else if(nivelActual == 9){
setScreen(NIVEL9);
}
else if(nivelActual == 10){
setScreen(NIVEL10);
}
}
public void iniciarMustDie(){
tipoJuegoMustDie = true;
nivelActual = 1;
reintentarNivel();
}
public void setNivel(int nivel){
nivelActual = nivel;
reintentarNivel();
}
public void pruebaSuperada(){
setScreen(new EnemyTest(this, new Vector2(541,348)));
}
public void pruebasFinalizadas(){
setScreen(new PruebaSuperada(this));
}
}