Comunidad de diseño web y desarrollo en internet online

Generacion De tamaño aleatorio

Citar            
MensajeEscrito el 12 Mar 2012 03:52 am
Hola a todos, les vengo con un problema que no puedo resolver, creo que para ustedes puede ser sencillo pero me he estado quebrando la cabesa bastante tiempo con esto.
Estoy creando un juego sencillo en el que tienes que esquivar meteoritos que van callendo del cielo, pero lo que quiero hacer es que entre mas tiempo pases jugando caeran mas meteoritos grandes que pequeños.
El codigo es algo sencillo como esto:

Código ActionScript :

scale.x = scale.y = getNewsize();

Y la funcion getNewSize() devuelve un numero que puede ser 0.5, 1, 2 o 3 dependiendo del nivel que estes aumentan las probabilidades de que toque un numero alto, digamos que el primer nivel solo toca el numero 0.5 (que significaria que solo calleran meteoritos de la mitad del tamaño normal), pero a partir del nivel 5 empesara a tocar el numero 1 un poco(que hara que caigan meteoritos de tamaño normal) y asi sucesivamente.
Este es el codigo que hice para esto pero veran que no funciona bien:

Código ActionScript :

private function getNewsize():Number
      {   
         var number:Number;
         
         var tree:uint = Registry.level >= 20 ? Registry.level - 20:0;
         var two:uint = Registry.level >= 10 ? Registry.level - 10:0;
         var one:uint = Registry.level >= 5 ? Registry.level - 5:0;
         var zerodot5:uint = 1000 - (one + two + tree);
         
         var rand:Number = Math.ceil(Math.random() * 999);
         
         if (rand <= zerodot5) return 0.5; 
         else if ((rand >= one) && (rand < two)) return 1;
         else if ((rand >= two) && (rand < tree)) return 2;
         else if (rand >= tree) return 3;
         else return null;
      }

*Registry.level me da el nivel en el que este

Si alguien me pudiera ayudar se los agradeseria mucho. Si nesesitan que les explique algo mas se los explicare.
Gracias de antemano.

Por alxz24

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Mar 2012 06:44 am
prueba con esto que puede que te sirva

Código ActionScript :

var Nivel: Number= 10;

function NumeroAleatorio (Desde: Number=0, Hasta: Number=1): Number
{
   return Math.floor (Math.random () * (1 +Hasta- Desde)) + Desde;
}

function getNewsize (Nivel: Number): Number
{
   var Maximo: Number= 0;

   if (Nivel>= 20) Maximo+= 1;
   if (Nivel>= 10) Maximo+= 1;
   if (Nivel>= 5 ) Maximo+= 1;

   var Numero: Number= NumeroAleatorio (0, Maximo);
   if (Numero== 0) Numero=0.5;
   
   return Numero;
}

for (var c: int= 0; c< 10; c++)
   trace (getNewsize (Nivel));

saludos

Por Yonomimi

76 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.