Hola gente! Un saludo
Quisiera quitarles un poco de su tiempo, estoy realizando un juego de plataforma con Game Maker, pero al parecer tengo un problema con el cambio de sprites, cuando se realiza el salto todo muy bien y no hay problema pero cuando quiero realizar el cambio de sprite a correr o caminar esta el problema, estoy siguiendo un tuto, pues soy novato en el tema, aunque ya con un poco de conocimiento.
El evento create esta asi:
///Variables
image_speed = 1
//Variables de Movimiento /Numericas
intVY = 0;
intVX = 0;
intMove = 0;
intMultiplicador = 1.0;
intVYMax = 9 * intMultiplicador;
intVXMax = 6.5 * intMultiplicador;
intJumpHeight = 8 * intMultiplicador;
intGravityNorm = 0.5 *intMultiplicador;
intGroundAcc = 0.5 *intMultiplicador
intGroundFricc = 1.9 * intMultiplicador
intAirAcc = 0.75 *intMultiplicador
intAirFricc = 0.1 *intMultiplicador
en el evento step tengo dos piezas de codigo:
el primero:
///Desplazamiento
var keyLeft, keyRight, keyJump, keyJumpRelease;
keyLeft = -keyboard_check (vk_left)
keyRight = keyboard_check (vk_right)
keyJump = keyboard_check_pressed(vk_space)
keyJumpRelease = keyboard_check_released (vk_space)
//Comprobacion de Colisiones
intColLeft = place_meeting(x-1, y, obj_bloque);
intColRight = place_meeting(x+1,y,obj_bloque);
bolGround = (place_meeting (x,y+1,obj_bloque));
intMove = keyLeft + keyRight;
//Definir aceleracion y friccion en funcion del medio
if (!bolGround)
{
intTempAcc = intAirAcc;
intTempFricc = intAirFricc;
}
else
{
intTempAcc = intGroundAcc;
intTempFricc = intGroundFricc;
}
//velocidad horizontal
if (intMove != 0) intVX = scr_Approach(intVX, intVXMax *intMove, intTempAcc);
else intVX = scr_Approach(intVX, intVXMax *intMove, intTempFricc);
//velocidad vertical
if (!bolGround)
{
intVY = scr_Approach (intVY, intVYMax, intGravityNorm); // caida libre
}
//Salto
if (keyJump && bolGround) intVY = -intVYMax;
//Colision Horizontal
repeat(abs(intVX))
{
if (!place_meeting(x+ intVX, y,obj_bloque))
{
x += intVX
}
else
{
intVX = 0
break;
}
}
//Colision vertical
repeat (abs(intVY))
{
if (place_meeting(x, y + intVY, obj_bloque))
{
intVY = 0;
break
}
else
{y += intVY}
}
EL SEGUNDO:
///Animaciones
///Refeljo del personaje
if(intMove) != 0 image_xscale = intMove
//Cambio de Sprite
if (!bolGround)
{
sprite_index = spr_DnVj
}
else
{ sprite_index = spr_DnVs
}
if intVX != 0 && (bolGround)
{
sprite_index = spr_DnVr
}
EL PROBLEMA RADICA EN:
if (intVX !=0) sprite_index = spr_Caminar
no me salta ningún error, pero a la hora de realizar la accion de caminar si me muestra el sprite pero solamente la primera subimagen, no muestra el resto de subimagenes, crea el desplazamiento pero solamente la primera subimagen, mire en las variables y alli image_speed esta en un valor 1, pero sin embargo no da solucion.
Mire el punto de origen de cada sprite, y del bloque pero aun asi no me da solucion.
A lo mejor no sea algo tan complicado pero si pudieran ayudarme con este problema y poder seguir les estaria enteramente agradecido.
Un saludo y Buen dia!
Quisiera quitarles un poco de su tiempo, estoy realizando un juego de plataforma con Game Maker, pero al parecer tengo un problema con el cambio de sprites, cuando se realiza el salto todo muy bien y no hay problema pero cuando quiero realizar el cambio de sprite a correr o caminar esta el problema, estoy siguiendo un tuto, pues soy novato en el tema, aunque ya con un poco de conocimiento.
El evento create esta asi:
///Variables
image_speed = 1
//Variables de Movimiento /Numericas
intVY = 0;
intVX = 0;
intMove = 0;
intMultiplicador = 1.0;
intVYMax = 9 * intMultiplicador;
intVXMax = 6.5 * intMultiplicador;
intJumpHeight = 8 * intMultiplicador;
intGravityNorm = 0.5 *intMultiplicador;
intGroundAcc = 0.5 *intMultiplicador
intGroundFricc = 1.9 * intMultiplicador
intAirAcc = 0.75 *intMultiplicador
intAirFricc = 0.1 *intMultiplicador
en el evento step tengo dos piezas de codigo:
el primero:
///Desplazamiento
var keyLeft, keyRight, keyJump, keyJumpRelease;
keyLeft = -keyboard_check (vk_left)
keyRight = keyboard_check (vk_right)
keyJump = keyboard_check_pressed(vk_space)
keyJumpRelease = keyboard_check_released (vk_space)
//Comprobacion de Colisiones
intColLeft = place_meeting(x-1, y, obj_bloque);
intColRight = place_meeting(x+1,y,obj_bloque);
bolGround = (place_meeting (x,y+1,obj_bloque));
intMove = keyLeft + keyRight;
//Definir aceleracion y friccion en funcion del medio
if (!bolGround)
{
intTempAcc = intAirAcc;
intTempFricc = intAirFricc;
}
else
{
intTempAcc = intGroundAcc;
intTempFricc = intGroundFricc;
}
//velocidad horizontal
if (intMove != 0) intVX = scr_Approach(intVX, intVXMax *intMove, intTempAcc);
else intVX = scr_Approach(intVX, intVXMax *intMove, intTempFricc);
//velocidad vertical
if (!bolGround)
{
intVY = scr_Approach (intVY, intVYMax, intGravityNorm); // caida libre
}
//Salto
if (keyJump && bolGround) intVY = -intVYMax;
//Colision Horizontal
repeat(abs(intVX))
{
if (!place_meeting(x+ intVX, y,obj_bloque))
{
x += intVX
}
else
{
intVX = 0
break;
}
}
//Colision vertical
repeat (abs(intVY))
{
if (place_meeting(x, y + intVY, obj_bloque))
{
intVY = 0;
break
}
else
{y += intVY}
}
EL SEGUNDO:
///Animaciones
///Refeljo del personaje
if(intMove) != 0 image_xscale = intMove
//Cambio de Sprite
if (!bolGround)
{
sprite_index = spr_DnVj
}
else
{ sprite_index = spr_DnVs
}
if intVX != 0 && (bolGround)
{
sprite_index = spr_DnVr
}
EL PROBLEMA RADICA EN:
if (intVX !=0) sprite_index = spr_Caminar
no me salta ningún error, pero a la hora de realizar la accion de caminar si me muestra el sprite pero solamente la primera subimagen, no muestra el resto de subimagenes, crea el desplazamiento pero solamente la primera subimagen, mire en las variables y alli image_speed esta en un valor 1, pero sin embargo no da solucion.
Mire el punto de origen de cada sprite, y del bloque pero aun asi no me da solucion.
A lo mejor no sea algo tan complicado pero si pudieran ayudarme con este problema y poder seguir les estaria enteramente agradecido.
Un saludo y Buen dia!