Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: saruman en Septiembre 06, 2015, 04:18:36 AM

Título: [resuelto] problema con "random"
Publicado por: saruman en Septiembre 06, 2015, 04:18:36 AM

(el problema que que coloque "sign" donde no debia   :-[ )
hola, hace poco he tenido un problema con un enemigo y la función "random"
el movimiento del enemigo debería ser algo haci: random(6), o sea debería variar
pero por algún problema de calculo en el código el enemigo siempre se mueve a la misma velocidad
si alguien me ayudara estaría muy agradesido

aqui el codigo del enemigo

create event
[spoiler]
h = 15;
i = 2;

grav = 0.2;
hsp = 0;
vsp = 0;
jumpspeed = 7;
spd = random(6);
nspeed = choose(2,-2);
dir = 0;
move = 0;
jump = 0;

alarm
Título: Re:problema con "random"
Publicado por: eams1986 en Septiembre 06, 2015, 05:46:45 AM
spd =choose(2,4,6,8);  ponga este codigo a ver que pasa .
Suerte .
Título: Re:problema con "random"
Publicado por: Iros en Septiembre 06, 2015, 05:50:54 AM
En el evento Create poné "randomize(); (http://docs.yoyogames.com/source/dadiospice/002_reference/maths/real%20valued%20functions/randomize.html)" y siempre que inicies tu juego va a elegir valores diferentes.
Título: Re:problema con "random"
Publicado por: saruman en Septiembre 06, 2015, 04:51:24 PM
gracias pero no me fusiona
el problema en realidad pareciese ser que no importa que valor coloque en spd, siempre dará 1 :(
Título: Re:problema con "random"
Publicado por: Guacusio en Septiembre 06, 2015, 05:05:10 PM
Cita de: saruman en Septiembre 06, 2015, 04:51:24 PM
gracias pero no me fusiona
el problema en realidad pareciese ser que no importa que valor coloque en spd, siempre dará 1 :(

Si la única parte donde le das valor a la variable spd es en el evento create cuando haces spd=random(6), entonces lo único que podría provocar que la función entregue siempre el mismo valor es que la semilla de números aleatorios sea siempre la misma, tal como dijo Iros. Para comprobar que la función random te está entregando números distintos, coloca randomize() en el evento create al principio del código, y en la línea siguiente a la que haces spd=random(6) evalúa su valor mediante show_message("spd="+string(spd)). Si aún así el mensaje te indica que spd tiene siempre el mismo valor, debieras contactar a Yoyo para informarles de este bug.

En el caso de que exista otra causa ajena al uso de la función random, prueba reemplazando la línea de código donde defines spd por otra como, por ejemplo, spd=3. Si ves que spd en el juego sigue tomando el valor 1 entonces el problema está en tu código y estás dándole un valor a spd en otra parte.