Estoy intentando que el personaje se mueva (soy principiante) pero estoy teniendo problemas con la función "else if"
///Desplazamiento
//Controles
var keyUp, keyDown, keyLeft, keyRight, keyRun, keySlow;
keyUp = -keyboard_check(ord("W"));
KeyDown = - keyboard_check(ord("A"));
KeyLeft = keyboard_check(ord("S"));
KeyRight = keyboard_check(ord("D"));
keyRun = keyboard_check(vk_lshift);
keySlow = keyboard_check(vk_lcontrol);
//Velocidad y movimiento
if (keyRun) intSpeed = intRun; //Carrera
else if (keySlow) intSpeed = intSlow; //Sigilo
else intSpeed = intWalk; //Caminata
//Movimiento
intMoveH = (keyLeft + KeyRight) * global.bolPause; //Movimiento Horizontal
intMoveV = (keyUp + KeyDown) * global.bolPause; //Movimiento Vertical
//Orientación
if (global.bolPause != 0)
{
if (intMoveH > 0)
{
strFacing = "east";
intFaceX = 1;
intFaceY = 0;
}
else if (intMoveH < 0)
{
strFacing = "west";
intFaceX = -1;
intFaceY = 0;
}
if (intMoveV > 0);
{
strFacing = "south"
intFaceX = 0;
intFaceY = 1;
}
else if (intMoveV < 0); <-------- en esta linea me marca el error :b
{
strFacing = "north"
intFaceX = 0;
intFaceY = -1;
}
}
//Desplazamiento horizontal
if (intMoveH !=0) intVX = scrApproach(intVX, intSpeed * intMoveH, intAcc);
else intVX = scrApproach(intVX, intSpeed * intMoveH, intFric);
//Desplazamiento vertical
if (intMoveV != 0) intVY = scrApproach(intVY, intSpeed * intMove, intAcc);
else intVY = scrApproach(intVY, intSpeed * intMoveV, intFric);
x += intVX;
y += intVY;
Podrian ayudarme porfavor?
Estoy usando este video para guiarme
https://www.youtube.com/watch?v=sHdhOqV2Vko
min 24:50
Para aclarar "else if" no es una función, es una condición (if/else).
El problema, intuyo, porque no voy a mirar el video, es que tiene el punticoma totalmente seguido osease: [gml]if (cond);[/gml]
Lo cual haría que no entre en el bloque siguiente.
Para la proxima, sería mejor que colocaras el error que tira el Game Maker. :-[
Comenzar con lo basico
https://www.inventati.org/estupidezartificial/wp/0002_if.html (https://www.inventati.org/estupidezartificial/wp/0002_if.html)
https://www.inventati.org/estupidezartificial/manual.html (https://www.inventati.org/estupidezartificial/manual.html)
Encontré tu error está en que deberías cambiar KeyDown = - keyboard_check(ord("A"));, por KeyDown = keyboard_check(ord("A"));, al igual que con KeyLeft, le falta un menos antes de la función keyboard_check debería quedar así:
keyUp = -keyboard_check(ord("W"));
KeyDown = keyboard_check(ord("S"));
KeyLeft = -keyboard_check(ord("A"));
KeyRight = keyboard_check(ord("D"));
Un consejo, no sé si se te haga más cómodo bajar con la "S", e ir a la izquierda con "A" así como lo dejé, si quieres cámbialo, ahora prueba tu código
PD: Yo usé el mismo video para tener una idea