Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: gamemastertom en Noviembre 18, 2013, 10:10:29 PM

Título: Problema con cambio de arma
Publicado por: gamemastertom en Noviembre 18, 2013, 10:10:29 PM
Hola a todos, mi problema es este:

Mi personaje posee3 armas, normal, ice y fire, y este es el codigo que utilizo para cambiar de arma (con la tecla "C"):

if normal = true and ice = false and fire = false
{
    normal = false ice = true fire = false
}


Funciona perfectamente, cambiando de normal a ice, el problema es que cuando agrego el codigo para pasar a fire y de regreso a normal (que es el mismo codigo cambiando los true y false como corresponden), no funciona, o talvez este funcionando y cambia de arma tan rapido que no aparece.

Gracias de antemano por su ayuda
Título: Re:Problema con cambio de arma
Publicado por: Black_Cat en Noviembre 20, 2013, 02:58:46 PM
Lo más probable es que haya un error de lógica.
Yo te recomiendo que administres las armas con cadenas. Por ejemplo:
arma = "normal", arma = "ice", arma = "fire"

entonces las verificaciones se harían más sencillas, por ejemplo:

[gml]if (arma = "normal")
    arma = "ice"

if (arma = "ice")
    arma = "fire"

if (arma = "fire")
    arma = "normal" [/gml]
Título: Re:Problema con cambio de arma
Publicado por: gamemastertom en Noviembre 20, 2013, 03:27:45 PM
lo intente de esa forma, pero al presionar "C" no cambia de arma
Título: Re:Problema con cambio de arma
Publicado por: Black_Cat en Noviembre 20, 2013, 04:04:01 PM
Hmm... podrías entonces colocar el código completo, porque no sabría donde está el fallo :-[
Título: Re:Problema con cambio de arma
Publicado por: gamemastertom en Noviembre 20, 2013, 04:11:59 PM
Aqui esta, lo intente con numeros en lugar de palabras, con palabras no me funciono:

if arma = 1
{
    arma = 2
}

if arma = 2
{
    arma = 3
}

if arma = 3
{
    arma = 1
}


El juego inicia, pero al presionar C no cambia, lo q creo q pasa es que al presionar C, pasa de 1 a 2, de 2 a 3 y de 3 a 1 demasiado rapido, haciendo que al final no haya cambio (con el codigo que coloque en el post inicial, funcionaba, pero si intentaba agregar para volver al arma original, no iba a la d hielo)
Título: Re:Problema con cambio de arma
Publicado por: gudy en Noviembre 20, 2013, 04:28:00 PM
 8) hola gamemastertom
tengo un ejemplo espero te sirva

1.    evento create del personaje
crear una variable global o normal te recomiendo global

global.cambioarma=0

2.   Step del personaje
Crear un switch asi

switch (global.cambioarma)

{
case 0:
global.cambioarma=0 //arma normal
break

case 1:
global.cambioarma=1 //arma ice
break

case 2:
global.cambioarma=2 //arma fire
break
} // este switch es para los tres casos

Lo siguiente es crear el pressed con "C" para los cambios, seguimos en el step

if  keyboard_check_pressed(ord('C')) // para cambiar el arma
{ global.cambioarma+=1 }

if global.cambioarma=3 {global.cambioarma=0} //para repetir el ciclo de global.cambioarma

listo ahora utiliza tu lógica para estudiar el script y adáptalo a tu juego
sigue makeando 8)
Título: Re:Problema con cambio de arma
Publicado por: romon_28 en Noviembre 21, 2013, 06:46:46 AM
Cuando haces las verificaciones (if) haces que la variable arma se modifique cambiando su valor por la verificacion siguiente a lo que arma va a ser 1 con que una de las condiciones se cumpla.

if arma = 1
{
    arma = 2
}

if arma = 2
{
    arma = 3
}

if arma = 3
{
    arma = 1
}

para arreglar este problema podes optar por alguna de las siguiente opciones:

Opcion 1
switch( arma )
{
case 1:   arma = 2; break;
case 2:   arma = 3; break;
case 3:   arma = 1; break;
}


Opcion 2

if arma = 1
{
    arma = 2
}
else
{
if arma = 2
{
     arma = 3
}
else //if arma = 3
{
     arma = 1
}
}


Opcion 3

arma += 1
if arma>3{arma=1}