Search in sources :

Example 26 with Granada

use of mx.itesm.another_monkey_paradox.Objetos.Granada 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 27 with Granada

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

the class PantallaJuego2 method verificarColisionGranadaBoss.

private void verificarColisionGranadaBoss(float dt) {
    Granada granada;
    for (int j = listaGranadas.size - 1; j >= 0; j--) {
        granada = listaGranadas.get(j);
        rectBoss = bossSprite.getBoundingRectangle();
        if (granada.getSprite().getBoundingRectangle().overlaps(rectBoss)) {
            vidaBoss -= 100;
            if (!bossKilled) {
                listaGranadas.removeIndex(j);
            }
        }
    }
}
Also used : Granada(mx.itesm.another_monkey_paradox.Objetos.Granada)

Example 28 with Granada

use of mx.itesm.another_monkey_paradox.Objetos.Granada 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)

Aggregations

Granada (mx.itesm.another_monkey_paradox.Objetos.Granada)28 Bala (mx.itesm.another_monkey_paradox.Objetos.Bala)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 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 Rectangle (com.badlogic.gdx.math.Rectangle)4