Nuevos sprites mejorados, valanceo de ataques y combos
BIN
core/assets/cam/arriba1.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/arriba2.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/arriba3.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/arriba4.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/fente1.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/fente2.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/fente3.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/fente4.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/fente5.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/fente6.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/sentado1.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/sentado2.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/sentado3.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/stand1.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/stand2.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/stand3.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/stand4.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/stand5.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/stand6.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/stand7.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/cam/stand8.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/arriba1.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/arriba2.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/arriba3.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/frente1.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/frente2.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/frente3.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/sentado1.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/sentado2.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/sentado3.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/stand1.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/stand2.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/stand3.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/stand4.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/stand5.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ken/stand6.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/arriba1.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/arriba2.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/arriba3.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/frente1.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/frente2.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/frente3.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/sentado1.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/sentado2.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/sentado3.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/stand1.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/stand2.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/stand3.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/stand4.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/stand5.png
Normal file
After Width: | Height: | Size: 108 KiB |
BIN
core/assets/ryu/stand6.png
Normal file
After Width: | Height: | Size: 108 KiB |
3
core/bin/main/menus/.gitignore
vendored
@ -4,3 +4,6 @@
|
|||||||
/Battle.class
|
/Battle.class
|
||||||
/MenuSeleccion.class
|
/MenuSeleccion.class
|
||||||
/Caratula.class
|
/Caratula.class
|
||||||
|
/MenuSeleccion2p.class
|
||||||
|
/Battle2.class
|
||||||
|
/Fin.class
|
||||||
|
3
core/bin/main/utilidades/.gitignore
vendored
@ -2,3 +2,6 @@
|
|||||||
/Personaje.class
|
/Personaje.class
|
||||||
/Barra.class
|
/Barra.class
|
||||||
/Bot.class
|
/Bot.class
|
||||||
|
/Personaje2.class
|
||||||
|
/Araque.class
|
||||||
|
/Ataque.class
|
||||||
|
@ -7,10 +7,12 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
|||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
|
|
||||||
import menus.Battle;
|
import menus.Battle;
|
||||||
|
import menus.Fin;
|
||||||
import menus.Menu;
|
import menus.Menu;
|
||||||
import menus.MenuInicio;
|
import menus.MenuInicio;
|
||||||
import menus.MenuOpcions;
|
import menus.MenuOpcions;
|
||||||
import menus.MenuSeleccion;
|
import menus.MenuSeleccion;
|
||||||
|
import menus.MenuSeleccion2p;
|
||||||
import utilidades.Gifs;
|
import utilidades.Gifs;
|
||||||
|
|
||||||
public class MyGdxGame extends ApplicationAdapter {
|
public class MyGdxGame extends ApplicationAdapter {
|
||||||
@ -21,6 +23,8 @@ public class MyGdxGame extends ApplicationAdapter {
|
|||||||
float contadorGif = 0;
|
float contadorGif = 0;
|
||||||
Gifs pinchos;
|
Gifs pinchos;
|
||||||
int menuSeleccionado=0;
|
int menuSeleccionado=0;
|
||||||
|
int aux=menuSeleccionado;
|
||||||
|
boolean fin=false;
|
||||||
@Override
|
@Override
|
||||||
public void create () {
|
public void create () {
|
||||||
batch = new SpriteBatch();
|
batch = new SpriteBatch();
|
||||||
@ -31,6 +35,8 @@ public class MyGdxGame extends ApplicationAdapter {
|
|||||||
Menu.menus.add(new MenuInicio());
|
Menu.menus.add(new MenuInicio());
|
||||||
Menu.menus.add(new MenuOpcions());
|
Menu.menus.add(new MenuOpcions());
|
||||||
Menu.menus.add(new MenuSeleccion());
|
Menu.menus.add(new MenuSeleccion());
|
||||||
|
Menu.menus.add(new MenuSeleccion2p());
|
||||||
|
Menu.menus.add(new Fin());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -15,7 +15,9 @@ public class Battle extends Menu{
|
|||||||
Texture suelo;
|
Texture suelo;
|
||||||
float contador;
|
float contador;
|
||||||
boolean cambio;
|
boolean cambio;
|
||||||
|
boolean finalRound;
|
||||||
public Battle(String np1, String np2) {
|
public Battle(String np1, String np2) {
|
||||||
|
this.finalRound=false;
|
||||||
this.cambio=true;
|
this.cambio=true;
|
||||||
this.p2=new Bot(np2, true);
|
this.p2=new Bot(np2, true);
|
||||||
this.p1=new Personaje(np1, false);
|
this.p1=new Personaje(np1, false);
|
||||||
@ -31,6 +33,8 @@ public class Battle extends Menu{
|
|||||||
p1.cambiarEstado(p1.MEDIO);
|
p1.cambiarEstado(p1.MEDIO);
|
||||||
}else if(Gdx.input.isKeyPressed(Input.Keys.W)){
|
}else if(Gdx.input.isKeyPressed(Input.Keys.W)){
|
||||||
p1.cambiarEstado(p1.ALTO);
|
p1.cambiarEstado(p1.ALTO);
|
||||||
|
}else if(Gdx.input.isKeyPressed(Input.Keys.S)){
|
||||||
|
p1.cambiarEstado(p1.BAJO);
|
||||||
}else{
|
}else{
|
||||||
p1.cambiarEstado(p1.STAND);
|
p1.cambiarEstado(p1.STAND);
|
||||||
}
|
}
|
||||||
@ -40,27 +44,56 @@ public class Battle extends Menu{
|
|||||||
p2.cambiarEstado((int)Math.round(Math.random()*2));
|
p2.cambiarEstado((int)Math.round(Math.random()*2));
|
||||||
cambio=false;
|
cambio=false;
|
||||||
}
|
}
|
||||||
|
if(finalRound) {
|
||||||
|
if(contador>2) {
|
||||||
|
contador=0;
|
||||||
|
cambio=true;
|
||||||
|
}
|
||||||
|
}else {
|
||||||
if(contador>1) {
|
if(contador>1) {
|
||||||
contador=0;
|
contador=0;
|
||||||
cambio=true;
|
cambio=true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
p2.cambiarEstado(p2.STAND);
|
p2.cambiarEstado(p2.STAND);
|
||||||
}
|
}
|
||||||
p1.mover();
|
p1.mover();
|
||||||
p2.mover();
|
p2.mover();
|
||||||
p2.recivir(p1.atacar(delta));
|
p2.recivir(p1.atacar(delta));
|
||||||
|
if(finalRound) {
|
||||||
|
p1.recivir(p2.atacar(delta).ataqueFinal());
|
||||||
|
}else {
|
||||||
p1.recivir(p2.atacar(delta));
|
p1.recivir(p2.atacar(delta));
|
||||||
|
}
|
||||||
this.p1.draw(batch, delta);
|
this.p1.draw(batch, delta);
|
||||||
this.p2.draw(batch, delta);
|
this.p2.draw(batch, delta);
|
||||||
|
if(p1.muerto()) {
|
||||||
|
font.draw(batch, "Has perdido", Gdx.graphics.getWidth()/4,Gdx.graphics.getHeight()/2.6f);
|
||||||
|
}else if(p2.muerto()){
|
||||||
|
font.draw(batch, "Has ganado", Gdx.graphics.getWidth()/4,Gdx.graphics.getHeight()/2.6f);
|
||||||
|
}
|
||||||
return darSeleccionado();
|
return darSeleccionado();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
int darSeleccionado() {
|
int darSeleccionado() {
|
||||||
if(p1.muerto()||p2.muerto()) {
|
if(p1.muerto()) {
|
||||||
Menu.menus.remove(Menu.BATTLE);
|
Menu.menus.remove(Menu.BATTLE);
|
||||||
return Menu.INICIAL;
|
return Menu.FINAL;
|
||||||
|
}else if(p2.muerto()) {
|
||||||
|
if(finalRound) {
|
||||||
|
Menu.menus.remove(Menu.BATTLE);
|
||||||
|
return Menu.FINAL;
|
||||||
|
}else {
|
||||||
|
this.p1=new Personaje(p1.toString(), false);
|
||||||
|
this.p2=new Bot(p2.toString(),true);
|
||||||
|
this.p1.setEnemigo(p2.getCaja());
|
||||||
|
this.p2.setEnemigo(p1.getCaja());
|
||||||
|
finalRound=true;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Menu.BATTLE;
|
return Menu.BATTLE;
|
||||||
|
77
core/src/menus/Battle2.java
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
package menus;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.Input;
|
||||||
|
import com.badlogic.gdx.graphics.Texture;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
|
|
||||||
|
import utilidades.Personaje;
|
||||||
|
import utilidades.Personaje2;
|
||||||
|
|
||||||
|
public class Battle2 extends Menu{
|
||||||
|
Personaje p1;
|
||||||
|
Personaje2 p2;
|
||||||
|
Texture suelo;
|
||||||
|
|
||||||
|
public Battle2(String np1, String np2) {
|
||||||
|
this.p2=new Personaje2(np2, true);
|
||||||
|
this.p1=new Personaje(np1, false);
|
||||||
|
this.p1.setEnemigo(p2.getCaja());
|
||||||
|
this.p2.setEnemigo(p1.getCaja());
|
||||||
|
suelo = new Texture("sueloChina.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int draw(SpriteBatch batch, float delta) {
|
||||||
|
batch.draw(suelo,0,0);
|
||||||
|
if (Gdx.input.isKeyPressed(Input.Keys.E)) {
|
||||||
|
p1.cambiarEstado(Personaje.MEDIO);
|
||||||
|
}else if(Gdx.input.isKeyPressed(Input.Keys.W)){
|
||||||
|
p1.cambiarEstado(Personaje.ALTO);
|
||||||
|
}else if(Gdx.input.isKeyPressed(Input.Keys.S)){
|
||||||
|
p1.cambiarEstado(Personaje.BAJO);
|
||||||
|
}else{
|
||||||
|
p1.cambiarEstado(Personaje.STAND);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Gdx.input.isKeyPressed(Input.Keys.O)) {
|
||||||
|
p2.cambiarEstado(Personaje.MEDIO);
|
||||||
|
}else if(Gdx.input.isKeyPressed(Input.Keys.I)){
|
||||||
|
p2.cambiarEstado(Personaje.ALTO);
|
||||||
|
}else if(Gdx.input.isKeyPressed(Input.Keys.K)){
|
||||||
|
p2.cambiarEstado(Personaje.BAJO);
|
||||||
|
}else{
|
||||||
|
p2.cambiarEstado(Personaje.STAND);
|
||||||
|
}
|
||||||
|
|
||||||
|
p1.mover();
|
||||||
|
p2.mover();
|
||||||
|
p2.recivir(p1.atacar(delta));
|
||||||
|
p1.recivir(p2.atacar(delta));
|
||||||
|
this.p1.draw(batch, delta);
|
||||||
|
this.p2.draw(batch, delta);
|
||||||
|
if(p1.muerto()) {
|
||||||
|
font.draw(batch, "Ha ganado el jugador 2", Gdx.graphics.getWidth()/4,Gdx.graphics.getHeight()/2.6f);
|
||||||
|
}else if(p2.muerto()){
|
||||||
|
font.draw(batch, "Ha ganado el jugador 1", Gdx.graphics.getWidth()/4,Gdx.graphics.getHeight()/2.6f);
|
||||||
|
}
|
||||||
|
|
||||||
|
return darSeleccionado();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int darSeleccionado() {
|
||||||
|
if(p1.muerto()||p2.muerto()) {
|
||||||
|
Menu.menus.remove(Menu.BATTLE);
|
||||||
|
return Menu.FINAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Menu.BATTLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dispose() {
|
||||||
|
super.dispose();
|
||||||
|
p1.dispose();
|
||||||
|
p2.dispose();
|
||||||
|
}
|
||||||
|
}
|
24
core/src/menus/Fin.java
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package menus;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
|
|
||||||
|
public class Fin extends Menu{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int draw(SpriteBatch batch, float delta) {
|
||||||
|
try {
|
||||||
|
Thread.sleep(5000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return Menu.INICIAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int darSeleccionado() {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -21,7 +21,9 @@ public abstract class Menu {
|
|||||||
static final int INICIAL=0;
|
static final int INICIAL=0;
|
||||||
static final int OPCIONES=1;
|
static final int OPCIONES=1;
|
||||||
static final int SELEC=2;
|
static final int SELEC=2;
|
||||||
static final int BATTLE=3;
|
static final int SELEC2=3;
|
||||||
|
static final int FINAL=4;
|
||||||
|
static final int BATTLE=5;
|
||||||
int local;
|
int local;
|
||||||
static int resolution;
|
static int resolution;
|
||||||
BitmapFont font;
|
BitmapFont font;
|
||||||
|
@ -6,7 +6,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
|||||||
public class MenuInicio extends Menu{
|
public class MenuInicio extends Menu{
|
||||||
public MenuInicio() {
|
public MenuInicio() {
|
||||||
super();
|
super();
|
||||||
this.n_opciones=2;
|
this.n_opciones=3;
|
||||||
this.local=Menu.INICIAL;
|
this.local=Menu.INICIAL;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@ -19,11 +19,18 @@ public class MenuInicio extends Menu{
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 1:{
|
case 1:{
|
||||||
|
Menu.selector.draw(batch, Gdx.graphics.getWidth()/5, Gdx.graphics.getHeight()/3f);
|
||||||
|
Menu.selector.draw(batch, Gdx.graphics.getWidth()/5+220, Gdx.graphics.getHeight()/3f);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2:{
|
||||||
Menu.selector.draw(batch, Gdx.graphics.getWidth()/5-50, Gdx.graphics.getHeight()/5);
|
Menu.selector.draw(batch, Gdx.graphics.getWidth()/5-50, Gdx.graphics.getHeight()/5);
|
||||||
Menu.selector.draw(batch, Gdx.graphics.getWidth()/5+230, Gdx.graphics.getHeight()/5);
|
Menu.selector.draw(batch, Gdx.graphics.getWidth()/5+230, Gdx.graphics.getHeight()/5);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
font.draw(batch, "iniciar", Gdx.graphics.getWidth()/3.75f,Gdx.graphics.getHeight()/2);
|
font.draw(batch, "iniciar", Gdx.graphics.getWidth()/3.75f,Gdx.graphics.getHeight()/2);
|
||||||
|
font.draw(batch, "iniciar 2Vs2", Gdx.graphics.getWidth()/4,Gdx.graphics.getHeight()/2.6f);
|
||||||
font.draw(batch, "configuracion", Gdx.graphics.getWidth()/5,Gdx.graphics.getHeight()/4);
|
font.draw(batch, "configuracion", Gdx.graphics.getWidth()/5,Gdx.graphics.getHeight()/4);
|
||||||
return this.cambiarSeleccionado();
|
return this.cambiarSeleccionado();
|
||||||
}
|
}
|
||||||
@ -31,7 +38,8 @@ public class MenuInicio extends Menu{
|
|||||||
int darSeleccionado() {
|
int darSeleccionado() {
|
||||||
switch(this.position) {
|
switch(this.position) {
|
||||||
case 0:return Menu.SELEC;
|
case 0:return Menu.SELEC;
|
||||||
case 1:return Menu.OPCIONES;
|
case 1:return Menu.SELEC2;
|
||||||
|
case 2:return Menu.OPCIONES;
|
||||||
default: return -1;
|
default: return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
83
core/src/menus/MenuSeleccion2p.java
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
package menus;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Gdx;
|
||||||
|
import com.badlogic.gdx.Input;
|
||||||
|
import com.badlogic.gdx.graphics.Color;
|
||||||
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
||||||
|
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
|
||||||
|
|
||||||
|
public class MenuSeleccion2p extends MenuSeleccion{
|
||||||
|
int p1;
|
||||||
|
public MenuSeleccion2p() {
|
||||||
|
super();
|
||||||
|
this.local=Menu.SELEC2;
|
||||||
|
this.p1=-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int draw(SpriteBatch batch, float delta) {
|
||||||
|
if(p1!=-1) {
|
||||||
|
batch.end();
|
||||||
|
shapeDrawer.begin(ShapeType.Filled);
|
||||||
|
shapeDrawer.setColor(Color.GRAY);
|
||||||
|
shapeDrawer.rect(10+p1*280, 430, 190, 180);
|
||||||
|
shapeDrawer.end();
|
||||||
|
batch.begin();
|
||||||
|
}
|
||||||
|
for(int i=0; i<this.caratulas.size();i++) {
|
||||||
|
if(i<3) {
|
||||||
|
if(i==this.position) {
|
||||||
|
batch.end();
|
||||||
|
shapeDrawer.begin(ShapeType.Filled);
|
||||||
|
if(p1!=-1) {
|
||||||
|
shapeDrawer.setColor(Color.BLACK);
|
||||||
|
}else {
|
||||||
|
shapeDrawer.setColor(Color.GRAY);
|
||||||
|
}
|
||||||
|
shapeDrawer.rect(10+i*280, 430, 190, 180);
|
||||||
|
shapeDrawer.end();
|
||||||
|
batch.begin();
|
||||||
|
}
|
||||||
|
this.caratulas.get(i).draw(batch, 10+i*200, 300);
|
||||||
|
}else {
|
||||||
|
this.caratulas.get(i).draw(batch, 10+(i-2)*200, 150);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return this.darSeleccionado();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int darSeleccionado() {
|
||||||
|
if (Gdx.input.isKeyPressed(Input.Keys.RIGHT)) {
|
||||||
|
if(!this.pres) {
|
||||||
|
this.position++;
|
||||||
|
this.pres=true;
|
||||||
|
}
|
||||||
|
}else if (Gdx.input.isKeyPressed(Input.Keys.LEFT)) {
|
||||||
|
if(!this.pres) {
|
||||||
|
this.position--;
|
||||||
|
this.pres=true;
|
||||||
|
}
|
||||||
|
}else if (Gdx.input.isKeyPressed(Input.Keys.ENTER)){
|
||||||
|
if(!this.pres) {
|
||||||
|
this.pres=true;
|
||||||
|
if(p1==-1) {
|
||||||
|
p1=this.position;
|
||||||
|
this.position=0;
|
||||||
|
}else {
|
||||||
|
Menu.menus.add(new Battle2(this.caratulas.get(this.p1).nombre,
|
||||||
|
this.caratulas.get(this.position).nombre));
|
||||||
|
this.p1=-1;
|
||||||
|
this.position=0;
|
||||||
|
return Menu.BATTLE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else if(this.pres) {
|
||||||
|
this.pres=false;
|
||||||
|
}
|
||||||
|
this.position%=this.n_opciones;
|
||||||
|
if(this.position<0)this.position=this.n_opciones-1;
|
||||||
|
return this.local;
|
||||||
|
}
|
||||||
|
}
|
42
core/src/utilidades/Ataque.java
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
package utilidades;
|
||||||
|
|
||||||
|
public class Ataque {
|
||||||
|
int tipo;
|
||||||
|
float valor;
|
||||||
|
public Ataque(int tipo, float valor) {
|
||||||
|
this.tipo=tipo;
|
||||||
|
this.valor=valor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Ataque ataqueFinal() {
|
||||||
|
this.valor*=2;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
float danio(int tipo) {
|
||||||
|
switch(this.tipo) {
|
||||||
|
case Personaje.ALTO:
|
||||||
|
if(tipo==Personaje.BAJO) {
|
||||||
|
return 0;
|
||||||
|
}else {
|
||||||
|
return valor*2;
|
||||||
|
}
|
||||||
|
case Personaje.MEDIO:
|
||||||
|
if(tipo==Personaje.ALTO) {
|
||||||
|
return valor*1.2f;
|
||||||
|
}else if(tipo==Personaje.BAJO) {
|
||||||
|
return valor*0.8f;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Personaje.BAJO:{
|
||||||
|
if(tipo==Personaje.BAJO) {
|
||||||
|
return valor*1;
|
||||||
|
}else {
|
||||||
|
return valor*0.5f;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,5 @@
|
|||||||
package utilidades;
|
package utilidades;
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
|
|
||||||
|
|
||||||
public class Bot extends Personaje{
|
public class Bot extends Personaje{
|
||||||
|
|
||||||
public Bot(String caracter, boolean position) {
|
public Bot(String caracter, boolean position) {
|
||||||
@ -29,7 +26,12 @@ public class Bot extends Personaje{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(position) {
|
||||||
|
this.caja.setPosition(x, y+120);
|
||||||
|
}else {
|
||||||
this.caja.setPosition(x, y);
|
this.caja.setPosition(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -22,14 +22,12 @@ public class Gifs {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Gifs(Texture textura, int n_estados, int inicio_image, int desplazamiento,
|
public Gifs(String nombre, int n_estados, boolean flip) {
|
||||||
int anchura, int x, int y) {
|
|
||||||
this.textura = textura;
|
|
||||||
this.n_estados=n_estados;
|
this.n_estados=n_estados;
|
||||||
frames = new TextureRegion[n_estados];
|
frames = new TextureRegion[n_estados];
|
||||||
for(int i = 0; i<n_estados; i++) {
|
for(int i = 0; i<n_estados; i++) {
|
||||||
frames[i] = new TextureRegion(textura, inicio_image+i*desplazamiento
|
frames[i] = new TextureRegion(new Texture(nombre+(i+1)+".png"));
|
||||||
, anchura, x, y);
|
frames[i].flip(flip, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void avanzar(int speed, float delta) {
|
public void avanzar(int speed, float delta) {
|
||||||
|
@ -19,8 +19,9 @@ public class Personaje {
|
|||||||
public static final int ALTO=1;
|
public static final int ALTO=1;
|
||||||
public static final int MEDIO=2;
|
public static final int MEDIO=2;
|
||||||
public static final int BAJO=3;
|
public static final int BAJO=3;
|
||||||
private int keyR;
|
int estado;
|
||||||
private int keyL;
|
int keyR;
|
||||||
|
int keyL;
|
||||||
int x;
|
int x;
|
||||||
int y;
|
int y;
|
||||||
float contadorCombo;
|
float contadorCombo;
|
||||||
@ -32,35 +33,46 @@ public class Personaje {
|
|||||||
ShapeRenderer shapeDrawer;
|
ShapeRenderer shapeDrawer;
|
||||||
String combo;
|
String combo;
|
||||||
int caracter;
|
int caracter;
|
||||||
|
float coeficienteDanio;
|
||||||
|
float coeficienteDef;
|
||||||
public Personaje(String caracter, boolean position) {
|
public Personaje(String caracter, boolean position) {
|
||||||
this.tempCombo=0;
|
this.tempCombo=0;
|
||||||
this.combo="";
|
this.combo="";
|
||||||
shapeDrawer=new ShapeRenderer();
|
shapeDrawer=new ShapeRenderer();
|
||||||
//PolygonShape shape = new PolygonShape(1);
|
|
||||||
this.vida=100;
|
this.vida=100;
|
||||||
this.position=position;
|
this.position=position;
|
||||||
if(position) {
|
if(position) {
|
||||||
this.x=10;
|
this.x=10;
|
||||||
this.y=250;
|
this.y=370;
|
||||||
}else {
|
}else {
|
||||||
this.x=10;
|
this.x=10;
|
||||||
this.y=150;
|
this.y=150;
|
||||||
}
|
}
|
||||||
|
if(this.position) {
|
||||||
|
this.caja=new Rectangle(x, y+120,70,70);
|
||||||
|
}else {
|
||||||
this.caja=new Rectangle(x, y,70,70);
|
this.caja=new Rectangle(x, y,70,70);
|
||||||
|
}
|
||||||
this.keyR=Input.Keys.D;
|
this.keyR=Input.Keys.D;
|
||||||
this.keyL=Input.Keys.A;
|
this.keyL=Input.Keys.A;
|
||||||
switch (caracter) {
|
switch (caracter) {
|
||||||
case "ryu":
|
case "ryu":
|
||||||
this.caracter=1;
|
this.caracter=1;
|
||||||
this.ryu(position);
|
this.ryu(position);
|
||||||
|
this.coeficienteDanio=1;
|
||||||
|
this.coeficienteDef=1;
|
||||||
break;
|
break;
|
||||||
case "ken":
|
case "ken":
|
||||||
this.caracter=2;
|
this.caracter=2;
|
||||||
this.ken(position);
|
this.ken(position);
|
||||||
|
this.coeficienteDanio=0.8f;
|
||||||
|
this.coeficienteDef=1.2f;
|
||||||
break;
|
break;
|
||||||
case "cam":
|
case "cam":
|
||||||
this.caracter=3;
|
this.caracter=3;
|
||||||
this.cam(position);
|
this.cam(position);
|
||||||
|
this.coeficienteDanio=1.2f;
|
||||||
|
this.coeficienteDef=0.8f;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -68,6 +80,7 @@ public class Personaje {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void cambiarEstado(int estado) {
|
public void cambiarEstado(int estado) {
|
||||||
|
this.estado=estado;
|
||||||
this.boost(estado);
|
this.boost(estado);
|
||||||
switch(estado) {
|
switch(estado) {
|
||||||
case STAND:
|
case STAND:
|
||||||
@ -105,10 +118,32 @@ public class Personaje {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
if(estado==Personaje.BAJO) {
|
||||||
|
if(contadorCombo<2) {
|
||||||
|
contadorCombo++;
|
||||||
|
}
|
||||||
|
}else if(estado==Personaje.ALTO) {
|
||||||
|
if(contadorCombo>=2) {
|
||||||
|
contadorCombo=0;
|
||||||
|
this.tempCombo=5;
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
contadorCombo=0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
|
if(estado==Personaje.MEDIO) {
|
||||||
|
if(contadorCombo<2) {
|
||||||
|
contadorCombo++;
|
||||||
|
}
|
||||||
|
}else if(estado==Personaje.BAJO) {
|
||||||
|
if(contadorCombo>=2) {
|
||||||
|
contadorCombo=0;
|
||||||
|
this.tempCombo=5;
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
contadorCombo=0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -119,29 +154,19 @@ public class Personaje {
|
|||||||
this.tempCombo=10;
|
this.tempCombo=10;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void recivir(float danio) {
|
public void recivir(Ataque ataque) {
|
||||||
if(this.caja.overlaps(enemigo)) {
|
if(this.caja.overlaps(enemigo)) {
|
||||||
this.vida-=danio;
|
this.vida-=ataque.danio(this.estado)/this.coeficienteDef;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public float atacar(float delta) {
|
public Ataque atacar(float delta) {
|
||||||
if(this.actual==this.medio) {
|
|
||||||
if(tempCombo>0) {
|
if(tempCombo>0) {
|
||||||
return delta*20;
|
return new Ataque(this.estado, this.coeficienteDanio*delta*20);
|
||||||
}else {
|
}else {
|
||||||
return delta*10;
|
return new Ataque(this.estado, this.coeficienteDanio*delta*10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(this.actual==this.alto) {
|
|
||||||
if(tempCombo>0) {
|
|
||||||
return delta*30;
|
|
||||||
}else {
|
|
||||||
return delta*15;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void mover() {
|
public void mover() {
|
||||||
|
|
||||||
@ -163,9 +188,14 @@ public class Personaje {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(this.position) {
|
||||||
|
this.caja.setPosition(x, y+120);
|
||||||
|
}else {
|
||||||
this.caja.setPosition(x, y);
|
this.caja.setPosition(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void draw(SpriteBatch batch, float delta) {
|
public void draw(SpriteBatch batch, float delta) {
|
||||||
batch.end();
|
batch.end();
|
||||||
shapeDrawer.begin(ShapeType.Filled);
|
shapeDrawer.begin(ShapeType.Filled);
|
||||||
@ -177,19 +207,19 @@ public class Personaje {
|
|||||||
}
|
}
|
||||||
shapeDrawer.end();
|
shapeDrawer.end();
|
||||||
batch.begin();
|
batch.begin();
|
||||||
this.actual.avanzar(5, delta);
|
this.actual.avanzar(7, delta);
|
||||||
|
if(this.position) {
|
||||||
this.actual.draw(batch, this.y, this.x);
|
this.actual.draw(batch, this.y, this.x);
|
||||||
|
}else {
|
||||||
|
this.actual.draw(batch, this.y, this.x);
|
||||||
|
}
|
||||||
batch.end();
|
batch.end();
|
||||||
if(tempCombo>0) {
|
if(tempCombo>0) {
|
||||||
Gdx.gl.glEnable(GL20.GL_BLEND);
|
Gdx.gl.glEnable(GL20.GL_BLEND);
|
||||||
Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
|
Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
|
||||||
shapeDrawer.begin(ShapeType.Filled);
|
shapeDrawer.begin(ShapeType.Filled);
|
||||||
shapeDrawer.setColor(1f,0f,0f,0.3f);
|
shapeDrawer.setColor(1f,0f,0f,0.3f);
|
||||||
if(this.position) {
|
shapeDrawer.circle(70+(1.35f*y), x+80, 80);
|
||||||
shapeDrawer.circle(y+100, x+80, 80);
|
|
||||||
}else {
|
|
||||||
shapeDrawer.circle(y+50, x+80, 80);
|
|
||||||
}
|
|
||||||
shapeDrawer.end();
|
shapeDrawer.end();
|
||||||
Gdx.gl.glDisable(GL20.GL_BLEND);
|
Gdx.gl.glDisable(GL20.GL_BLEND);
|
||||||
tempCombo-=delta;
|
tempCombo-=delta;
|
||||||
@ -203,21 +233,33 @@ public class Personaje {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void ryu(boolean position) {
|
private void ryu(boolean position) {
|
||||||
this.standby=new Gifs("p1.png", 5, 0, 74, 120, 70, 100, position);
|
/*this.standby=new Gifs("p1.png", 5, 0, 74, 120, 70, 100, position);
|
||||||
this.medio=new Gifs("p1.png", 3, 4, 93, 355, 88, 100, position);
|
this.medio=new Gifs("p1.png", 3, 4, 93, 355, 88, 100, position);
|
||||||
this.alto=new Gifs("p1.png", 3, 8, 74, 779, 75, 130, position);
|
this.alto=new Gifs("p1.png", 3, 8, 74, 779, 75, 130, position);*/
|
||||||
|
this.standby=new Gifs("ryu/stand", 6, position);
|
||||||
|
this.medio=new Gifs("ryu/frente", 3, position);
|
||||||
|
this.alto=new Gifs("ryu/arriba", 3, position);
|
||||||
|
this.bajo=new Gifs("ryu/sentado",3,position);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ken(boolean position) {
|
private void ken(boolean position) {
|
||||||
this.standby=new Gifs("p2.png", 5, 0, 70, 863, 67, 93, position);
|
/*this.standby=new Gifs("p2.png", 5, 0, 70, 863, 67, 93, position);
|
||||||
this.medio=new Gifs("p2.png", 2, 0, 70, 1145, 72, 100, position);
|
this.medio=new Gifs("p2.png", 2, 0, 70, 1145, 72, 100, position);
|
||||||
this.alto=new Gifs("p2.png", 3, 6, 74, 2920, 75, 130, position);
|
this.alto=new Gifs("p2.png", 3, 6, 74, 2920, 75, 130, position);*/
|
||||||
|
this.standby=new Gifs("ken/stand", 6, position);
|
||||||
|
this.medio=new Gifs("ken/frente", 3, position);
|
||||||
|
this.alto=new Gifs("ken/arriba", 3, position);
|
||||||
|
this.bajo=new Gifs("ken/sentado",3,position);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cam(boolean position) {
|
private void cam(boolean position) {
|
||||||
this.standby=new Gifs("p3.png", 8, 0, 78, 113, 75, 98, position);
|
/*this.standby=new Gifs("p3.png", 8, 0, 78, 113, 75, 98, position);
|
||||||
this.medio=new Gifs("p3.png", 2, 77, 86, 613, 90, 100, position);
|
this.medio=new Gifs("p3.png", 2, 77, 86, 613, 90, 100, position);
|
||||||
this.alto=new Gifs("p3.png", 2, 192, 68, 1327, 60, 100, position);
|
this.alto=new Gifs("p3.png", 2, 192, 68, 1327, 60, 100, position);*/
|
||||||
|
this.standby=new Gifs("cam/stand", 8, position);
|
||||||
|
this.medio=new Gifs("cam/fente", 6, position);
|
||||||
|
this.alto=new Gifs("cam/arriba", 4, position);
|
||||||
|
this.bajo=new Gifs("cam/sentado",3,position);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Rectangle getCaja() {
|
public Rectangle getCaja() {
|
||||||
@ -231,4 +273,13 @@ public class Personaje {
|
|||||||
public boolean muerto() {
|
public boolean muerto() {
|
||||||
return this.vida<0;
|
return this.vida<0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
switch (caracter) {
|
||||||
|
case 1:return "ryu";
|
||||||
|
case 2:return "ken";
|
||||||
|
case 3:return "cam";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
12
core/src/utilidades/Personaje2.java
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package utilidades;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Input;
|
||||||
|
|
||||||
|
public class Personaje2 extends Personaje{
|
||||||
|
|
||||||
|
public Personaje2(String caracter, boolean position) {
|
||||||
|
super(caracter, position);
|
||||||
|
this.keyL=Input.Keys.J;
|
||||||
|
this.keyR=Input.Keys.L;
|
||||||
|
}
|
||||||
|
}
|
3
desktop/bin/main/.gitignore
vendored
@ -3,3 +3,6 @@
|
|||||||
/p2.png
|
/p2.png
|
||||||
/sueloChina.png
|
/sueloChina.png
|
||||||
/p3.png
|
/p3.png
|
||||||
|
/ryu/
|
||||||
|
/cam/
|
||||||
|
/ken/
|
||||||
|