Search in sources :

Example 26 with Bala

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

the class PantallaJuegoSurvival method verificarColisionBalaEnemigoAlien.

protected void verificarColisionBalaEnemigoAlien(float dt, float diff, int difDelNivel) {
    if (diff < 0.2)
        diff = 0.2f;
    Rectangle rectEnemigo;
    Bala bala;
    for (int j = listaBalas.size - 1; j >= 0; j--) {
        bala = listaBalas.get(j);
        for (int i = listaEnemigosAlien.size - 1; i >= 0; i--) {
            enemigo = listaEnemigosAlien.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() - ((12 - difDelNivel) / diff);
                enemigo.setVida(vidaEnemigo);
                System.out.println(vidaEnemigo);
            }
            verificarVidaEnemigosA();
        }
    }
}
Also used : Rectangle(com.badlogic.gdx.math.Rectangle) Bala(mx.itesm.another_monkey_paradox.Objetos.Bala)

Example 27 with Bala

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

the class PantallaJuego method render.

@Override
public void render(float delta) {
    stateTime += delta;
    if (estado != EstadoJuego.PAUSADO) {
        actualizarObjetos(delta, stateTime);
        System.out.println(delta);
    }
    if (!arma.isPressed()) {
        Bar.setValue(Bar.getValue() + 0.02f);
    }
    if (!powerUpVidaFlag && isMovingRight) {
        powerUpVida.setX(powerUpVida.getX() - (delta * 80));
    }
    if (!powerUpGranadaFlag && isMovingRight) {
        powerUpGranada.setX(powerUpGranada.getX() - (delta * 80));
    }
    // Usar v=d/t o en este caso d=v*t
    Gdx.gl.glClearColor(.3f, .6f, .3f, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    batch.setProjectionMatrix(camara.combined);
    batch.begin();
    fondo1.render(batch);
    fondo2.render(batch);
    if (fondo1.getImagenA().getX() < -780 && fondo1.getImagenA().getX() > -882 && firstFilter) {
        firstFilter = false;
        for (int i = 0; i < 4; i++) {
            enemigo = new Enemigo(canervicola01Frame0, canervicola01Frame1, canervicola01Frame2, canervicola01Frame3, true, i);
            listaEnemigos.add(enemigo);
        }
        for (int i = 0; i < 4; i++) {
            enemigo = new Enemigo(canervicola02Frame1, canervicola02Frame1, canervicola02Frame2, canervicola02Frame3, false, i);
            listaEnemigos.add(enemigo);
        }
    }
    if (fondo1.getImagenA().getX() < -1480 && fondo1.getImagenA().getX() > -1582 && secondFilter) {
        secondFilter = false;
        firstFilter = true;
        for (int i = 0; i < 4; i++) {
            enemigo = new Enemigo(canervicola03Frame0, canervicola03Frame1, canervicola03Frame2, canervicola03Frame3, true, i);
            listaEnemigos.add(enemigo);
        }
        for (int i = 0; i < 4; i++) {
            enemigo = new Enemigo(canervicola01Frame0, canervicola01Frame1, canervicola01Frame2, canervicola01Frame3, false, i);
            listaEnemigos.add(enemigo);
        }
    }
    if (fondo1.getImagenA().getX() < -2180 && fondo1.getImagenA().getX() > -2282 && firstFilter) {
        secondFilter = true;
        firstFilter = false;
        for (int i = 0; i < 4; i++) {
            enemigo = new Enemigo(canervicola02Frame0, canervicola02Frame1, canervicola02Frame2, canervicola02Frame3, true, i);
            listaEnemigos.add(enemigo);
        }
        for (int i = 0; i < 4; i++) {
            enemigo = new Enemigo(canervicola03Frame0, canervicola03Frame1, canervicola03Frame2, canervicola03Frame3, false, i);
            listaEnemigos.add(enemigo);
        }
    }
    if (fondo1.getImagenA().getX() < -2880 && fondo1.getImagenA().getX() > -2982 && secondFilter) {
        secondFilter = false;
        firstFilter = true;
        for (int i = 0; i < 4; i++) {
            enemigo = new Enemigo(canervicola02Frame0, canervicola02Frame1, canervicola02Frame2, canervicola02Frame3, true, i);
            listaEnemigos.add(enemigo);
        }
        for (int i = 0; i < 4; i++) {
            enemigo = new Enemigo(canervicola01Frame0, canervicola01Frame1, canervicola01Frame2, canervicola01Frame3, false, i);
            listaEnemigos.add(enemigo);
        }
    }
    if (fondo1.getImagenA().getX() < -3580 && fondo1.getImagenA().getX() > -3600 && firstFilter) {
        secondFilter = true;
        firstFilter = false;
        for (int i = 0; i < 10; i++) {
            enemigo = new Enemigo(canervicola01Frame0, canervicola01Frame1, canervicola01Frame2, canervicola01Frame3, true, i);
            listaEnemigos.add(enemigo);
        }
        for (int i = 0; i < 4; i++) {
            enemigo = new Enemigo(canervicola01Frame0, canervicola01Frame1, canervicola01Frame2, canervicola01Frame3, false, i);
            listaEnemigos.add(enemigo);
        }
    }
    if (fondo1.getImagenA().getX() < -randomX && powerUpVidaFlag) {
        powerUpVida.setX(ANCHO * 0.75f);
        powerUpVidaFlag = false;
    }
    if (fondo1.getImagenA().getX() < -randomX2 && powerUpGranadaFlag) {
        powerUpGranada.setX(ANCHO * 0.75f);
        powerUpGranadaFlag = false;
    }
    for (PowerUp e : vidas) {
        if (e.isActiva()) {
            e.render(batch);
        }
    }
    TextureRegion currentFrame = (TextureRegion) personaje.getAnimacion().getKeyFrame(stateTime, true);
    if (personaje.isRight() && currentFrame.isFlipX()) {
        currentFrame.flip(true, false);
        isFliped = false;
    } else if (!personaje.isRight() && !currentFrame.isFlipX()) {
        currentFrame.flip(true, false);
        isFliped = true;
    } else {
    }
    // Granadas
    for (Granada Granada : listaGranadas) {
        Granada.render(batch);
    }
    // Balas
    for (Bala bala : listaBalas) {
        bala.render(batch);
    }
    for (Bala balaB : listaBalasBoss) {
        if (!bossKilled) {
            balaB.render(batch);
        }
    }
    personaje.render(batch, stateTime, isMovingRight, isMovingLeft);
    // Dibuja enemigos
    for (Enemigo e : listaEnemigos) {
        e.render(batch);
        if (estado == EstadoJuego.JUGANDO && e.right) {
            if (personaje.getX() < camara.position.x) {
                e.setX(e.getX() + (-60 * delta));
            } else {
                e.setX(e.getX() + (-100 * delta));
            }
        } else if (estado == EstadoJuego.JUGANDO && !e.right) {
            if (personaje.getX() < camara.position.x) {
                e.setX(e.getX() + (60 * delta));
            } else {
                e.setX(e.getX() + (20 * delta));
            }
        }
    }
    if (fondo1.getImagenA().getX() < -3999) {
        shootCounter++;
        if (shootCounter >= 50 && !bossKilled) {
            shootCounter = 0;
            Bala nueva = new Bala(bossDisparo, true);
            nueva.set(bossSprite.getX(), bossSprite.getY() + 68);
            listaBalasBoss.add(nueva);
        }
        if (personaje.getX() >= camara.position.x && isMovingRight && !isMovingLeft) {
            float x = bossSprite.getX();
            bossSprite.setPosition(x - (delta * 78), ALTO / 4);
        }
        if (vidaBoss <= 0) {
            itemBoss.setPosition(bossSprite.getX(), ALTO / 4);
            itemBoss.draw(batch);
            rectBoss.setPosition(-100, ALTO + 100);
            bossKilled = true;
        } else {
            bossSprite.draw(batch);
        }
    }
    // Texto Score
    textoGly.setText(font, "Score: " + puntosJugador);
    font.draw(batch, textoGly, ANCHO / 2 + 370, ALTO - 15);
    granadasNum.draw(batch);
    textoGlyGran.setText(font, "" + maxGrandas);
    font.draw(batch, textoGlyGran, 899, 161);
    // Texto Pausa
    if (estado == EstadoJuego.PAUSADO) {
        font.draw(batch, pausaText, ANCHO / 4 - 175, ALTO * 13 / 20);
    }
    powerUpGranada.render(batch);
    powerUpVida.render(batch);
    barraBala.draw(batch);
    banana1.render(batch);
    banana2.render(batch);
    banana3.render(batch);
    banana4.render(batch);
    banana5.render(batch);
    banana6.render(batch);
    batch.end();
    stageNivel.act();
    stageNivel.draw();
    batch.begin();
    bananaBarra.draw(batch);
    batch.end();
    // Botón PAUSA
    if (estado == EstadoJuego.PAUSADO) {
        // Solo si está pausado muestra la imagen
        escenaPausa.draw();
    }
    Gdx.app.log("render", "fps=" + Gdx.graphics.getFramesPerSecond());
    if (Gdx.input.isKeyPressed(Input.Keys.BACK)) {
        main.setScreen(new PantallaMenu(main));
    }
}
Also used : PantallaMenu(mx.itesm.another_monkey_paradox.Pantallas.PantallaMenu) TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) Enemigo(mx.itesm.another_monkey_paradox.Objetos.Enemigo) PowerUp(mx.itesm.another_monkey_paradox.Objetos.PowerUp) Granada(mx.itesm.another_monkey_paradox.Objetos.Granada) Bala(mx.itesm.another_monkey_paradox.Objetos.Bala)

Example 28 with Bala

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

the class PantallaJuego method verificarColisionBalaBoss.

/*
    private void verificarColisionPersonajeItemBoss() {
        Rectangle rectItem = itemBoss.getBoundingRectangle();
        Rectangle rectPersonaje = new Rectangle(personaje.getX(), personaje.getY(), personaje.getWidth(), personaje.getHeight());
        if(rectItem.overlaps(rectPersonaje)){
            //PANTALLA DE VICTORIA PROVISIONAL
            main.setScreen(new EscenaAstroGanador(main, puntosJugador));
        }
    }
    */
/*
    private void verificarColisionPersonajeItemVida() {
        Rectangle rectItem = powerUpVida.getSprite().getBoundingRectangle();
        Rectangle rectPersonaje = new Rectangle(personaje.getX(), personaje.getY(), personaje.getWidth(), personaje.getHeight());
        if(rectItem.overlaps(rectPersonaje)){
            //PANTALLA DE VICTORIA PROVISIONAL
            for(PowerUp vida:vidas){
                if(!vida.isActiva()){
                    vida.setActiva(true);
                    break;
                }
            }
            powerUpVida.setX(-500);
        }
    }
    */
/*
    private void verificarColisionPersonajeItemGranada() {
        Rectangle rectItem = powerUpGranada.getSprite().getBoundingRectangle();
        Rectangle rectPersonaje = new Rectangle(personaje.getX(), personaje.getY(), personaje.getWidth(), personaje.getHeight());
        if(rectItem.overlaps(rectPersonaje)){
            //PANTALLA DE VICTORIA PROVISIONAL
            maxGrandas++;
            powerUpGranada.setX(-500);
        }
    }
    */
/*
    private void verificarVidaEnemigos() {
        for(int i = listaEnemigos.size-1;i>=0;i--){
            if(listaEnemigos.get(i).getVida() <= 0){
                listaEnemigos.removeIndex(i);
                puntosJugador += 10;
                            
            }
        }
    }
    */
/*
    private void verificarColisionBalaEnemigo(float dt) {
        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)){
                    listaBalas.removeIndex(j);
                    vidaEnemigo = enemigo.getVida() - 12;
                    enemigo.setVida(vidaEnemigo);
                    System.out.println(vidaEnemigo);
                }
                verificarVidaEnemigos();
            }
        }
    }
    */
/*
    private void verificarColisionBalaBala(float dt) {
        Bala balaBoss;
        Bala bala;

        for(int j =listaBalas.size-1; j>=0;j--){
            bala = listaBalas.get(j);
            for(int i =listaBalasBoss.size-1;i>=0;i--){

                balaBoss = listaBalasBoss.get(i);
                if(bala.getSprite().getBoundingRectangle().overlaps(balaBoss.getSprite().getBoundingRectangle())){
                    listaBalas.removeIndex(j);
                    listaBalasBoss.removeIndex(i);
                }
            }
        }
    }
    */
private void verificarColisionBalaBoss(float dt) {
    Bala bala;
    for (int j = listaBalas.size - 1; j >= 0; j--) {
        bala = listaBalas.get(j);
        rectBoss = bossSprite.getBoundingRectangle();
        if (bala.getSprite().getBoundingRectangle().overlaps(rectBoss)) {
            vidaBoss -= 25;
            if (!bossKilled) {
                listaBalas.removeIndex(j);
            }
        }
    }
}
Also used : Bala(mx.itesm.another_monkey_paradox.Objetos.Bala)

Example 29 with Bala

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

the class PantallaJuego2 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);
    }
    verificarColisionBalaEnemigo(stateTime, difficulty, 2);
    verificarColisionBalaBala(stateTime);
    verificarColisionGranadaEnemigo(stateTime);
    verificarColisionBalaBoss(stateTime);
    verificarColisionGranadaBoss(stateTime);
    verificarColisionPersonajeBalaBoss(stateTime);
    verificarColisionPersonajeItemBoss();
    verificarColisionPersonajeItemGranada();
    cuentaVidas = verificarColisionPersonajeItemVida(cuentaVidas);
    verificarVidaAstro();
    timeSinceCollision += dt;
    System.out.println("TimeSinceCollision: " + timeSinceCollision);
    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 30 with Bala

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

the class NivelGenerico method verificarColisionBalaRuso.

protected void verificarColisionBalaRuso(float dt, float diff, int difDelNivel) {
    if (diff < 0.2)
        diff = 0.3f;
    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() + 80, enemigo.getY(), enemigo.getWidth(), enemigo.getHeight());
            } else {
                rectEnemigo = new Rectangle(enemigo.getX() - 80, 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)

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