Search in sources :

Example 16 with Bala

use of mx.itesm.another_monkey_paradox.Objetos.Bala in project AnotherMonekyParadox by SantiagoMille.

the class NivelGenerico method verificarColisionPersonajeBalaBoss.

protected void verificarColisionPersonajeBalaBoss(float dt) {
    Bala bala;
    Rectangle rectPersonaje;
    for (int i = listaBalasBoss.size - 1; i >= 0; i--) {
        bala = listaBalasBoss.get(i);
        rectPersonaje = new Rectangle(personaje.getX(), personaje.getY(), personaje.getWidth(), personaje.getHeight());
        if (bala.getSprite().getBoundingRectangle().overlaps(rectPersonaje)) {
            for (int j = vidas.size() - 1; j >= 0; j--) {
                if (contador >= 50) {
                    if (vidas.get(j).isActiva()) {
                        if (music) {
                            hitSound.play();
                            Gdx.input.vibrate(350);
                            screenShake.update(dt, camara);
                        }
                        vidas.get(j).setActiva(false);
                        contador = 0;
                    }
                }
            }
        }
    }
    contador++;
}
Also used : Rectangle(com.badlogic.gdx.math.Rectangle) Bala(mx.itesm.another_monkey_paradox.Objetos.Bala)

Example 17 with Bala

use of mx.itesm.another_monkey_paradox.Objetos.Bala in project AnotherMonekyParadox by SantiagoMille.

the class NivelGenerico method verificarColisionBalaEnemigo.

protected void verificarColisionBalaEnemigo(float dt, float diff, int difDelNivel) {
    if (diff < 0.2)
        diff = 0.25f;
    Rectangle rectEnemigo;
    Bala bala;
    for (int j = listaBalas.size - 1; j >= 0; j--) {
        bala = listaBalas.get(j);
        for (int i = listaEnemigos.size - 1; i >= 0; i--) {
            enemigo = listaEnemigos.get(i);
            if (enemigo.right) {
                rectEnemigo = new Rectangle(enemigo.getX() + 210, enemigo.getY(), enemigo.getWidth(), enemigo.getHeight());
            } else {
                rectEnemigo = new Rectangle(enemigo.getX() - 210, enemigo.getY(), enemigo.getWidth(), enemigo.getHeight());
            }
            if (bala.getSprite().getBoundingRectangle().overlaps(rectEnemigo)) {
                try {
                    listaBalas.removeIndex(j);
                } catch (Exception e) {
                }
                vidaEnemigo = enemigo.getVida() - (float) ((12 - difDelNivel) / diff);
                enemigo.setVida(vidaEnemigo);
                System.out.println(vidaEnemigo);
            }
            verificarVidaEnemigos();
        }
    }
}
Also used : Rectangle(com.badlogic.gdx.math.Rectangle) Bala(mx.itesm.another_monkey_paradox.Objetos.Bala)

Example 18 with Bala

use of mx.itesm.another_monkey_paradox.Objetos.Bala in project AnotherMonekyParadox by SantiagoMille.

the class PantallaJuego3 method actualizarObjetos.

private void actualizarObjetos(float dt, float stateTime) {
    // Movimiento del personaje
    if (isMovingRight && !isMovingLeft) {
        if (personaje.getX() < camara.position.x) {
            personaje.setX(personaje.getX() + (dt * 110));
        } else {
            fondo1.mover(-dt * 109);
            fondo2.mover(-dt * 109);
        }
    } else if (isMovingLeft && !isMovingRight) {
        if (personaje.getX() > (camara.position.x - ANCHO / 2)) {
            personaje.setX(personaje.getX() + (dt * -110));
        }
        if (fondo1.getImagenA().getX() > 0) {
            fondo1.mover(dt * 20);
            fondo2.mover(dt * 20);
        }
    }
    // Balas
    int i = 0;
    for (Bala bala : listaBalas) {
        if (bala.getX() > camara.position.x + ANCHO / 2 || bala.getX() < camara.position.x - ANCHO / 2) {
            listaBalas.removeIndex(i);
        }
        if (bala.fliped) {
            bala.mover(dt * 2);
        } else {
            bala.mover(-dt * 2);
        }
        bala.getSprite().rotate(10);
        i++;
    }
    i = 0;
    for (Bala balaa : listaBalasBoss) {
        if (balaa.getX() > camara.position.x + ANCHO / 2 || balaa.getX() < camara.position.x - ANCHO / 2) {
            listaBalasBoss.removeIndex(i);
        }
        balaa.mover(dt * 2);
        // balaa.getSprite().rotate(10);
        i++;
    }
    // Granadas
    int j = 0;
    for (Granada granada : listaGranadas) {
        if (granada.getX() > camara.position.x + ANCHO / 2 || granada.getX() < camara.position.x - ANCHO / 2) {
            listaGranadas.removeIndex(j);
        }
        if (granada.fliped) {
            granada.mover(dt * 2);
        } else {
            granada.mover(-dt * 2);
        }
        granada.getSprite().rotate(10);
        j++;
    }
    if (crashRight) {
        if (banana1.getX() < ANCHO / 20 - banana2.getWidth() || banana1.getX() > ANCHO - ANCHO / 20) {
            crashRight = false;
            banana1.set(ANCHO, ALTO);
            banana2.set(ANCHO, ALTO);
            banana3.set(ANCHO, ALTO);
            banana4.set(ANCHO, ALTO);
            banana5.set(ANCHO, ALTO);
            banana6.set(ANCHO, ALTO);
        }
        banana1.mover(-dt * 2);
        banana2.moverY(dt * 2);
        banana2.mover(-dt * 2);
        banana3.moverY(-dt * 2);
        banana3.mover(-dt * 2);
        banana4.mover(dt * 2);
        banana5.moverY(dt * 2);
        banana6.moverY(-dt * 2);
        banana5.mover(dt * 2);
        banana6.mover(dt * 2);
    }
    if (crashLeft) {
        if (banana4.getX() > ANCHO - ANCHO / 20 || banana4.getX() < ANCHO / 20 - banana5.getWidth()) {
            crashRight = false;
            banana1.set(ANCHO, ALTO);
            banana2.set(ANCHO, ALTO);
            banana3.set(ANCHO, ALTO);
            banana4.set(ANCHO, ALTO);
            banana5.set(ANCHO, ALTO);
            banana6.set(ANCHO, ALTO);
        }
        banana1.mover(-dt * 2);
        banana2.moverY(dt * 2);
        banana2.mover(-dt * 2);
        banana3.moverY(-dt * 2);
        banana3.mover(-dt * 2);
        banana4.mover(dt * 2);
        banana5.moverY(dt * 2);
        banana6.moverY(-dt * 2);
        banana5.mover(dt * 2);
        banana6.mover(dt * 2);
    }
    verificarColisionBalaRuso(stateTime, difficulty, 3);
    verificarColisionBalaBala(stateTime);
    verificarColisionGranadaRuso(stateTime);
    verificarColisionBalaBoss(stateTime);
    verificarColisionGranadaBoss(stateTime);
    verificarColisionPersonajeBalaBoss(stateTime);
    verificarColisionPersonajeItemBoss();
    verificarColisionPersonajeItemGranada();
    cuentaVidas = verificarColisionPersonajeItemVida(cuentaVidas);
    cuentaVidas = verificarColisionPersonajeItemVida(cuentaVidas, powerUpVida2);
    verificarVidaAstro();
    timeSinceCollision += dt;
    if (timeSinceCollision > 1.8f) {
        boolean shake = verificarColisionPersonajeEnemigo(dt);
        if (shake) {
            Gdx.input.vibrate(350);
            screenShake.update(dt, camara);
            batch.setProjectionMatrix(camara.combined);
            camara.update();
            camara.position.x = ANCHO / 2;
            camara.position.y = ALTO / 2;
            timeSinceCollision = 0;
        }
    }
}
Also used : Bala(mx.itesm.another_monkey_paradox.Objetos.Bala) Granada(mx.itesm.another_monkey_paradox.Objetos.Granada)

Example 19 with Bala

use of mx.itesm.another_monkey_paradox.Objetos.Bala in project AnotherMonekyParadox by SantiagoMille.

the class PantallaJuego3 method crearMapa.

private void crearMapa() {
    cargarTexturas();
    Gdx.input.setCatchBackKey(true);
    stageNivel = new Stage(vista);
    // para sacar número random donde se crean los powerups
    random = new Random();
    // Objeto que dibuja texto
    // font = new BitmapFont(Gdx.files.internal("tutorial.fnt"));
    // textoGly = new GlyphLayout(font,"Score");
    // textoGlyGran = new GlyphLayout(font,"Score");
    boss = new Texture("Bosses/jefe_n3.png");
    itemBosss = new Texture("Bosses/item_boss3.png");
    bossSprite = new Sprite(boss);
    bossSprite.setPosition(ANCHO, ALTO);
    itemBoss = new Sprite(itemBosss);
    itemBoss.setPosition(ANCHO * 3 / 4, ALTO / 4);
    for (int i = 0; i < 5; i++) {
        if (i < cuentaVidas) {
            vidas.add(new PowerUp(new Texture("vida.png"), camara.position.x + 10 - ANCHO / 2 + (75 * i), ALTO - 70, true));
        } else {
            vidas.add(new PowerUp(new Texture("vida.png"), camara.position.x + 10 - ANCHO / 2 + (75 * i), ALTO - 70, false));
        }
    }
    // Granadas Colisión
    // banana1 = new Bala(bananaDisparo,false);
    banana1.set(-100, -100);
    // banana2 = new Bala(bananaDisparo, false);
    banana2.set(-100, -100);
    // banana3 = new Bala(bananaDisparo, false);
    banana3.set(-100, -100);
    // banana4 = new Bala(bananaDisparo, true);
    banana4.set(-100, -100);
    // banana5 = new Bala(bananaDisparo, true);
    banana5.set(-100, -100);
    // banana6 = new Bala(bananaDisparo, true);
    banana6.set(-100, -100);
    randomX = random.nextDouble() * 4000;
    randomX22 = random.nextDouble() * 4000;
    randomX2 = random.nextDouble() * 4000;
    // Barra Bala
    Bar.setPosition(745, ALTO * 0.93f);
    barraBala.setPosition(740, (ALTO * 0.92f) + 3);
    bananaBarra.setPosition(700, (ALTO * 0.90f));
    granada.setPosition(ANCHO * 3 / 4 - granada.getWidth() / 2 + 25, ALTO / 4 - granada.getHeight() / 2 - 80);
    granadasNum.setPosition(ANCHO * 0.712f - granadasNum.getWidth() / 2, ALTO / 4 - granadasNum.getHeight() / 2 - 40);
    /*
        //boton disparo
        TextureRegionDrawable btnArma = new TextureRegionDrawable(new TextureRegion(botonDisparo));
        TextureRegionDrawable btnArmaPressed = new TextureRegionDrawable(new TextureRegion(botonDisparoPressed));
        arma = new ImageButton(btnArma, btnArmaPressed);
        */
    arma.setPosition(ANCHO * 3 / 4 - arma.getWidth() / 2 + arma.getWidth() + 55, ALTO / 4 - arma.getHeight() / 2 - 80);
    /*
        //boton pausa
        TextureRegionDrawable btnPausa = new TextureRegionDrawable(new TextureRegion(botonPausa));
        pausa = new ImageButton(btnPausa);
        */
    pausa.setSize(55, 55);
    pausa.setPosition(ANCHO / 2 - pausa.getWidth() / 2, 680 - pausa.getHeight() / 2);
    /*
        //boton continua
        TextureRegionDrawable btnContinua = new TextureRegionDrawable(new TextureRegion(botonContinua));
        continua = new ImageButton(btnContinua);
        */
    continua.setSize(55, 55);
    continua.setPosition(ANCHO / 2 - continua.getWidth() / 2, 680 - continua.getHeight() / 2);
    /*
        //boton Home
        TextureRegionDrawable btnHome = new TextureRegionDrawable(new TextureRegion(botonHome));
        home = new ImageButton(btnContinua);
        */
    home.setSize(55, 55);
    home.setPosition(ANCHO / 2 - continua.getWidth() / 2, 680 - continua.getHeight() / 2);
    // Texturas para el pad
    Skin skin = new Skin();
    skin.add("fondo", padBack);
    skin.add("boton", padKnob);
    Touchpad.TouchpadStyle estilo = new Touchpad.TouchpadStyle();
    estilo.background = skin.getDrawable("fondo");
    estilo.knob = skin.getDrawable("boton");
    // Crea el pad
    // Radio, estilo
    Touchpad pad = new Touchpad(64, estilo);
    // x,y - ancho,alto
    pad.setBounds(40, 30, 200, 200);
    // Comportamiento del pad
    pad.addListener(new ChangeListener() {

        @Override
        public void changed(ChangeEvent event, Actor actor) {
            Touchpad pad = (Touchpad) actor;
            if (pad.getKnobPercentX() > 0.25) {
                // Más de 20% de desplazamiento DERECHA
                personaje.setRight(true);
                isMovingRight = true;
                isMovingLeft = false;
            } else if (pad.getKnobPercentX() < -0.25) {
                // Más de 20% IZQUIERDA
                personaje.setRight(false);
                isMovingLeft = true;
                isMovingRight = false;
            } else {
                isMovingLeft = false;
                isMovingRight = false;
            }
        }
    });
    // Transparente
    pad.setColor(1, 1, 1, 0.7f);
    // Comportamiento de Boton Granada
    granada.addListener(new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            // Gdx.app.log("ClickListener","Si se clickeoooo");
            if (maxGrandas > 0) {
                if (!isFliped) {
                    Granada grana = new Granada(bananaGranada, false);
                    grana.set(personaje.getX() + 105, personaje.getY() + 68);
                    listaGranadas.add(grana);
                    maxGrandas--;
                } else {
                    Granada grana = new Granada(bananaGranada, true);
                    grana.set(personaje.getX(), personaje.getY() + 68);
                    listaGranadas.add(grana);
                    maxGrandas--;
                }
            }
        }
    });
    // Comportamiento de Boton Disparo
    arma.addListener(new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            // Gdx.app.log("ClickListener","Si se clickeoooo");
            if (Bar.getValue() > 0.1) {
                if (music) {
                    gunSound.play();
                }
                if (!isFliped) {
                    Bala nueva = new Bala(bananaDisparo, false);
                    nueva.set(personaje.getX() + 105, personaje.getY() + 63);
                    listaBalas.add(nueva);
                } else {
                    if (music) {
                        gunSound.play();
                    }
                    Bala nueva = new Bala(bananaDisparo, true);
                    nueva.set(personaje.getX(), personaje.getY() + 63);
                    listaBalas.add(nueva);
                }
            }
            Bar.setValue(Bar.getValue() - 0.18f);
        }
    });
    // Comportamiento de Boton Pausa
    pausa.addListener(new ClickListener() {

        @Override
        public void clicked(InputEvent event, float x, float y) {
            super.clicked(event, x, y);
            // Gdx.app.log("ClickListener","Si se clickeoooo");
            estado = PantallaJuego.EstadoJuego.PAUSADO;
            // main.setScreen((Screen) new EscenaPausa2(vista,batch));
            if (escenaPausa == null) {
                escenaPausa = new PantallaJuego3.EscenaPausa3(vista, batch);
            }
            Gdx.input.setInputProcessor(escenaPausa);
            pause();
        }
    });
    stageNivel.addActor(granada);
    stageNivel.addActor(arma);
    stageNivel.addActor(pausa);
    stageNivel.addActor(pad);
    stageNivel.addActor(Bar);
    Gdx.input.setInputProcessor(stageNivel);
}
Also used : Sprite(com.badlogic.gdx.graphics.g2d.Sprite) Granada(mx.itesm.another_monkey_paradox.Objetos.Granada) Bala(mx.itesm.another_monkey_paradox.Objetos.Bala) Texture(com.badlogic.gdx.graphics.Texture) Random(java.util.Random) Touchpad(com.badlogic.gdx.scenes.scene2d.ui.Touchpad) Actor(com.badlogic.gdx.scenes.scene2d.Actor) PowerUp(mx.itesm.another_monkey_paradox.Objetos.PowerUp) Stage(com.badlogic.gdx.scenes.scene2d.Stage) Skin(com.badlogic.gdx.scenes.scene2d.ui.Skin) ChangeListener(com.badlogic.gdx.scenes.scene2d.utils.ChangeListener) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent) ClickListener(com.badlogic.gdx.scenes.scene2d.utils.ClickListener)

Example 20 with Bala

use of mx.itesm.another_monkey_paradox.Objetos.Bala in project AnotherMonekyParadox by SantiagoMille.

the class PantallaJuego4 method show.

@Override
public void show() {
    crearCamara();
    crearMapa();
    // personaje = new Personaje(astroCaminata0, astroCaminata1, astroCaminata2, astroCaminata3);
    fondo1 = new Fondo(fondoNivel01);
    fondo2 = new Fondo(fondoNivel02);
    fondo2.getImagenA().setPosition(fondo1.getImagenA().getWidth(), 0);
    Preferences prefs = Gdx.app.getPreferences("AnotherMonkeyPreferenceStory");
    difficulty = prefs.getFloat("Difficulty");
    batch = new SpriteBatch();
    // Lista Enemigos
    listaEnemigos = new Array<Enemigo>();
    for (int i = 0; i < 10; i++) {
        enemigo = new Enemigo(alien01Frame0, alien01Frame1, alien01Frame2, alien01Frame3, true, i);
        listaEnemigos.add(enemigo);
    }
    for (int i = 0; i < 10; i++) {
        enemigo = new Enemigo(alien01Frame0, alien01Frame1, alien01Frame2, alien01Frame3, false, i);
        listaEnemigos.add(enemigo);
    }
    // Lista Balas
    listaBalas = new Array<Bala>();
    listaBalasBoss = new Array<Bala>();
    // Lista Granadas
    listaGranadas = new Array<Granada>();
    estado = PantallaJuego.EstadoJuego.JUGANDO;
    Gdx.input.setCatchBackKey(true);
    musicNivel4.setLooping(true);
    if (prefs.getBoolean("music", true)) {
        musicNivel4.play();
    }
// Gdx.input.setInputProcessor(new ProcesadorEntrada());
}
Also used : Enemigo(mx.itesm.another_monkey_paradox.Objetos.Enemigo) Bala(mx.itesm.another_monkey_paradox.Objetos.Bala) Granada(mx.itesm.another_monkey_paradox.Objetos.Granada) Preferences(com.badlogic.gdx.Preferences) SpriteBatch(com.badlogic.gdx.graphics.g2d.SpriteBatch) Fondo(mx.itesm.another_monkey_paradox.Utils.Fondo)

Aggregations

Bala (mx.itesm.another_monkey_paradox.Objetos.Bala)30 Granada (mx.itesm.another_monkey_paradox.Objetos.Granada)20 Enemigo (mx.itesm.another_monkey_paradox.Objetos.Enemigo)10 PowerUp (mx.itesm.another_monkey_paradox.Objetos.PowerUp)10 Preferences (com.badlogic.gdx.Preferences)5 Texture (com.badlogic.gdx.graphics.Texture)5 SpriteBatch (com.badlogic.gdx.graphics.g2d.SpriteBatch)5 TextureRegion (com.badlogic.gdx.graphics.g2d.TextureRegion)5 Rectangle (com.badlogic.gdx.math.Rectangle)5 Actor (com.badlogic.gdx.scenes.scene2d.Actor)5 InputEvent (com.badlogic.gdx.scenes.scene2d.InputEvent)5 Stage (com.badlogic.gdx.scenes.scene2d.Stage)5 Skin (com.badlogic.gdx.scenes.scene2d.ui.Skin)5 Touchpad (com.badlogic.gdx.scenes.scene2d.ui.Touchpad)5 ChangeListener (com.badlogic.gdx.scenes.scene2d.utils.ChangeListener)5 ClickListener (com.badlogic.gdx.scenes.scene2d.utils.ClickListener)5 Random (java.util.Random)5 PantallaMenu (mx.itesm.another_monkey_paradox.Pantallas.PantallaMenu)5 Fondo (mx.itesm.another_monkey_paradox.Utils.Fondo)5 Sprite (com.badlogic.gdx.graphics.g2d.Sprite)4