Buenos días a todxs!
Me llamo Miquel, y soy muy nuevo en esto de la programación.. Así que por favor, no me mateis si la cago demasiado.
Tengo un pequeño gran problema.. Estoy empezando a crear un videojuego en 2D, en Game Maker. Nunca habia programado, y voy poco a poco entendiendo y haciendo cosas. Cada dia avanzo en algo.. pero llevo tres o cuatro dias estancado.
Mi personaje es operativo, excepto cuando salta a la izquierda, se crea un bug y aparece por debajo de lo que tengo como suelo.
Explico lo que hago para hacer las animaciones..
En el elemento Create, tengo:
//Hacia donde estamos mirando
intFaceX = 0;
intFaceY = 0;
strFacing = "east";
Y en otra linea de codigo, tambien tengo:
//Maquina de estados
enum statePlayer
{
idle = scrPlayerIdle,
walk = scrPlayerWalk,
jump = scrPlayerJump
}
staPlayer = statePlayer.idle;
Despues en Scripts, tengo uno para cada animación, quieto, andando, y saltando (todos escritos igual, solo que cambiando los Sprites).
Para andar lo tengo así:
switch (strFacing)
{
case "west":
sprite_index = sprBillyWalkW;
break;
case "east":
sprite_index = sprBillyWalkE;
break;
}
Y para cuando salto, lo tengo así:
switch (strFacing)
{
case "west":
sprite_index = sprBillyJumpW;
break
case "east":
sprite_index = sprBillyJumpE;
break;
}
Despues en el Evento Steep, tengo la posición para que se oriente, escrito así:
//Hacia donde miramos mientra andamos
if (intVX > 0)
{
strFacing = "east";
intFaceX = 1;
intFaceY = 0;
}
else if (intVX < 0)
{
strFacing = "west"
intFaceX = -1;
intFaceY = 0;
}
//Hacia donde estamos mirando mientras saltamos
if (intVY < 0)
{
strFacing = "east";
intFaceX = 0;
intFaceY = -1;
}
else if (intVY < 0)
{
strFacing = "west";
intFaceX = -1;
intFaceY = -1;
}
Y tambien dentro de Steep, pero en otra linea de codigo, escribí, las animaciones:
///Animacines
//Quieto y andando
if (intVX == 0) && (intVY == 0)
{
staPlayer = statePlayer.idle;
}
else staPlayer = statePlayer.walk;
//Saltando
if (!bolGround)
{
staPlayer = statePlayer.jump;
}
script_execute(staPlayer)
Bien.. como decía arriba, algo pasa cuando salto a la izquierda. y ojo, solo pasa cuando intento que tenga una animación.
si yo quito el script, o que no lea, o se posiciones con StrFacing. todo va bien. Las fisicas estan correctas. Algo pasa con alguna linea de lo que he puesto, casi seguro..
Si alguien que entiende, no se echa demasiado las manos a la cabeza y puede ayudarme, estaría super agradecido. Mi frustración a llegado al limite!
Un saludo, y suerte con vuestros juegos!