use of mx.itesm.another_monkey_paradox.Objetos.Granada 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;
}
}
}
use of mx.itesm.another_monkey_paradox.Objetos.Granada in project AnotherMonekyParadox by SantiagoMille.
the class PantallaJuego3 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);
}
}
}
}
use of mx.itesm.another_monkey_paradox.Objetos.Granada 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);
}
use of mx.itesm.another_monkey_paradox.Objetos.Granada 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());
}
use of mx.itesm.another_monkey_paradox.Objetos.Granada in project AnotherMonekyParadox by SantiagoMille.
the class PantallaJuego4 method render.
@Override
public void render(float delta) {
stateTime += delta;
if (estado != PantallaJuego.EstadoJuego.PAUSADO) {
actualizarObjetos(delta, stateTime);
}
if (!arma.isPressed()) {
Bar.setValue(Bar.getValue() + 0.02f);
}
if (!powerUpVidaFlag && isMovingRight) {
powerUpVida.setX(powerUpVida.getX() - (delta * 80));
}
if (!powerUpVidaFlag2 && isMovingRight) {
powerUpVida2.setX(powerUpVida2.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 < 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);
}
}
if (fondo1.getImagenA().getX() < -1480 && fondo1.getImagenA().getX() > -1582 && secondFilter) {
secondFilter = false;
firstFilter = true;
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);
}
}
if (fondo1.getImagenA().getX() < -2180 && fondo1.getImagenA().getX() > -2282 && firstFilter) {
secondFilter = true;
firstFilter = false;
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);
}
}
if (fondo1.getImagenA().getX() < -2880 && fondo1.getImagenA().getX() > -2982 && secondFilter) {
secondFilter = false;
firstFilter = true;
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);
}
}
if (fondo1.getImagenA().getX() < -3580 && fondo1.getImagenA().getX() > -3600 && firstFilter) {
secondFilter = true;
firstFilter = false;
for (int i = 0; i < 6; i++) {
enemigo = new Enemigo(alien01Frame0, alien01Frame1, alien01Frame2, alien01Frame3, true, i);
listaEnemigos.add(enemigo);
}
for (int i = 0; i < 6; i++) {
enemigo = new Enemigo(alien01Frame0, alien01Frame1, alien01Frame2, alien01Frame3, false, i);
listaEnemigos.add(enemigo);
}
}
if (fondo1.getImagenA().getX() < -randomX && powerUpVidaFlag) {
powerUpVida.setX(ANCHO * 0.75f);
powerUpVidaFlag = false;
}
if (fondo1.getImagenA().getX() < -randomX22 && powerUpVidaFlag2) {
powerUpVida2.setX(ANCHO * 0.75f);
powerUpVidaFlag2 = 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 == PantallaJuego.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 == PantallaJuego.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 >= 40 && !bossKilled) {
shootCounter = 0;
Bala nueva = new Bala(bossDisparo, true);
nueva.set(bossSprite.getX() + 10, personaje.getY() + 70);
listaBalasBoss.add(nueva);
}
if (personaje.getX() >= camara.position.x && isMovingRight && !isMovingLeft) {
float x = bossSprite.getX();
bossSprite.setPosition(x - (delta * 78), ALTO / 4 - 40);
}
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 == PantallaJuego.EstadoJuego.PAUSADO) {
font.draw(batch, pausaText, ANCHO / 4 - 175, ALTO * 13 / 20);
}
powerUpGranada.render(batch);
powerUpVida.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 == PantallaJuego.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));
}
}
Aggregations