Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: aggro en Febrero 10, 2013, 01:08:48 AM

Título: Codigo para probabilidad
Publicado por: aggro en Febrero 10, 2013, 01:08:48 AM
Hola mi consulta es la siguiente ¿cual es el codigo para las probabilidades? por ejemplo: la probabilidad de que un enemigo se vuelva mas lento despues de recibir un ataque. De antemano gracias  :GM8:
Título: Re:Codigo para probabilidad
Publicado por: knd144 en Febrero 10, 2013, 01:18:57 AM
No entiendo bien tu pregunta  :-\
Si te refieres a cómo lanzar un número aleatorio entre 0 y X, pues está la función random(x)...
Si quieres redondearlo a entero tienes 3 opciones: round() que lo redondea al entero más cercano, floor() que lo redondea al entero anterior y ceil() que lo redondea al siguiente entero. Y pues sobre qué valor o valores deben de sacar para cumplir una condición pues tu lo programas.
Como por ejemplo


num = floor(random(3))
switch(num)
{
  case 0: {//}
  case 1: {//}
  case 2: {//}
}


¿Te refieres a ésto?  :-[
Título: Re:Codigo para probabilidad
Publicado por: aggro en Febrero 10, 2013, 02:00:14 AM
 que al nivel 1 tenga 10% de probabilidad de ralentizar al enemigo con un ataque
        al nivel 2 tenga 15%
        al nivel 3 tenga 20%
asi sucesivamente.... espero ser mas claro ahora gracias  XD
Título: Re:Codigo para probabilidad
Publicado por: elviskelley en Febrero 10, 2013, 02:04:33 AM
Eso lo haces con un choose, o con un irandom
Con choose(false,false,false,false,false,false,false,false,false,hace algo) ya que tendra que elejir entre 10 opciones y solo una le dara lo necesario seria esto 10%.

.- Con irandom
var a;
a=irandom(10);
switch(nivel)
{
case 1: if a=5 then {acciones aca solo 10%} break;
case 3: if a=5 or a=6 then {acciones, aca 20%} break;
}
Título: Re:Codigo para probabilidad
Publicado por: aggro en Febrero 10, 2013, 02:16:55 AM
gracias, probare con las 2 a ver cual me resulta mas facil  XD
Título: Re:Codigo para probabilidad
Publicado por: aggro en Febrero 10, 2013, 03:11:53 AM
he utilizado para 10% y me ha resultado, lo probe hasta 50% y se comporto como queria:

switch(choose(1,2,3,4,5,6,7,8,9,10))
{
case 1: speed=2;
break;
case 2: speed=2;
break;
case 3: speed =2;
break;
case 4: speed=2;
break;
case 5: speed=2;
break;
case 6: speed =2;
break;
case 7: speed=2;
break;
case 8: speed=2;
break;
case 9: speed =2;
break;
case 10: speed=1
;break;
}

lo hice con false pero no dio resultado, en vez de disminuir la velocidad los enemigos se quedaban atascados.
Gracias por la ayuda  XD