Buenas, he tenido algo de tiempo estos días y he empezado a desarrollar un videojuego. Como soy novato en esto me he estoy basando en este proyecto https://github.com/libgdx/libgdx-demo-superjumper para mi propio Jumper.
El problema que tengo actualmente es que no consigo que me vaya igual de fluido que el ejemplo el tema de la gravedad y el salto. Aprecio como que cae muy despacio... no se si es paranoya mía...
Aquí os dejo el .jar del juego para que probeis (se salta con el espacio).
https://www.dropbox.com/s/isxpbb7tl5cr71s/LameJumper.jar?dl=0
La música puede resultar un poco molesta xd, podeis pausarla en el menu principal todo esto son pruebas que estoy haciendo jeje.
El código que utilizo para mi muñeco salte es el siguiente:
public void update(float delta){
velocity.add(World.gravity.x * delta, World.gravity.y * delta);
position.add(velocity.x * delta, velocity.y * delta);
bounds.x = position.x - bounds.width/2;
bounds.y = position.y - bounds.height/2;
float accel = 0;
if(Gdx.input.isKeyPressed(Keys.DPAD_RIGHT)) accel = WIDTH+(WIDTH/2);
if(Gdx.input.isKeyPressed(Keys.DPAD_LEFT)) accel = -(WIDTH+(WIDTH/2));
velocity.x = accel;
if(Gdx.input.isKeyPressed(Keys.SPACE) && state != STATE_JUMP){
jump();
}
if(position.y < 0){
position.y = 0f;
if(state == STATE_JUMP){
state = STATE_STANDBY;
}
}
if(position.x+WIDTH < 0) position.x = WorldRender.WIDTH;
if(position.x > WorldRender.WIDTH) position.x = 0-WIDTH;
stateTime += delta;
}
public void jump(){
velocity.y = JUMP_VELOCITY;
state = STATE_JUMP;
stateTime = 0;
}
JUMP_VELOCITY = 120f;
public static final Vector2 gravity = new Vector2(0, -30f);
Creo que no me dejo nada referente al salto. Si de paso alguien puede explicarme para que es el "delta" o "deltaTime" lo agradezco. Me voy a sobar que ya esta bien por hoy jeje.
Saludos y gracias