Buenas, he puesto habilidades pasivas en mi juego que salgan cada "x" tiempo, había pensado en poner un random en una alarm, pero no se bien bien como hacerlo..
Por ejemplo algo asi:
irandom_range(150,300)
Que sera para que salga entre 5 y 10 segundos, pero yo prefiero que sea algo así como por porcentajes, 30 (que es 1 segundo), seria 1% y 3000 el 100% (vamos que a cada segundo sale la habilidad.. (o siempre, por decirlo de otra manera).
La habilidad en si funciona a la perfección, lo único que le "falla" es esto..
He estado buscando antes de poner esto aqui sin leer ni probar nada y he encontrado estos ejemplos bastante utiles pero no se bien bien tampoco como implantarlos.
http://gamedesign.wikidot.com/gamemaker:random (http://gamedesign.wikidot.com/gamemaker:random)
Gracias de antemano! ;)
hola .. no se si te entendi bien pero podra funcionar..
en create:
duracion_de_habilidad=irandom(100)
alarm[0]=duracion_de_habilidad*room_speed;
..en alarm 0 : lo mismo de arriba
Cita de: omick en Enero 05, 2015, 02:44:44 PM
hola .. no se si te entendi bien pero podra funcionar..
en create:
duracion_de_habilidad=irandom(100)
alarm[0]=duracion_de_habilidad*room_speed;
..en alarm 0 : lo mismo de arriba
He estado probando y mas o menos he logrado lo que quería, aquí tienes un ejemplo:
a = (random(10) * 3000) / room_speed;
Y en la alarma: (que el resultado son los frames que tarda en salir la habilidad, 30 = 1 segundo)
alarm[4] = irandom_range(a/2,a);
Básicamente lo que busco es hacer un % para que salga la habilidad pasivamente.
Esto hace un random en el 10, pongamos que sale 5 * 3000 = 15000 / 30 = 500, que son 16 segundos (500 / 30 = 16,6).
Así que la habilidad saldría en 16 segundos.. Algo así estaba buscando yo y después de casi 1 hora lo he medio logrado, ahora pondré que puedas mejorar la habilidad bajándole 1 punto al random, vamos.. que por ejemplo la habilidad al nivel 2 seria:
a = (random(9) * 3000) / room_speed;
La única diferencia es que ahora en numero máximo del random es 9, en vez de 10.. que por ejemplo contando que la habilidad puedes subirla hasta nivel 7 seria un random(3). 3 * 3000 = 9000 / 30 = 300, que son 10 segundos (300 / 30 = 10).
Como bien os decía no es la mejor solución, pero si la mejor que tengo hasta ahora.
Haber si sabéis alguna opción para hacer ahora que ya me he explicado mejor, o al menos eso creo.. jajajajaja
bueno al parecer quieres que muentras mas nivel tegas tardara menos en salir su habilidad pero aleatorio tambien...
a=irandom(10-nivel)*(room_speed*1.5);
//si sale 10 * 45 es 450 ó 15 segundos
alarm[4] = irandom_range(a/2,a);
// rango qade entre 7.5 a 15 segundos
// si nivel es 7 sale 3 * 45 es 135 ó 4.5 seg.. aver si te sirve..
Cita de: omick en Enero 05, 2015, 07:13:52 PM
bueno al parecer quieres que muentras mas nivel tegas tardara menos en salir su habilidad pero aleatorio tambien...
a=irandom(10-nivel)*(room_speed*1.5);
//si sale 10 * 45 es 450 ó 15 segundos
alarm[4] = irandom_range(a/2,a);
// rango qade entre 7.5 a 15 segundos
// si nivel es 7 sale 3 * 45 es 135 ó 4.5 seg.. aver si te sirve..
Perfecto! queda bastante bien el resultado, muchísimas gracias omick! :)
cuando gustes te ayudo en lo que pueda