Comunidad de diseño web y desarrollo en internet online

problemita con mi juego al stilo FF

Citar            
MensajeEscrito el 18 Ene 2007 01:21 am
bueno, estoy tratando de realizar un pekeño juego al stilo del final fantasy pero surgio un problema cuando estoy estableciendo las variables q luego se utilizaran es las batallas.
El problema es el siguiente:kiero establecer el daño minimo y el maximo poniendo:

dañomax=(Math.round((armamin*pj.moddaño)*(pj.fuerza/7)*skills.armas/30))

trato de comprobarlo mediante:

trace(dañomax)

pero en el depurador me da NaN, entonces pongo
trace(Math.round((armamin*pj.moddaño)*(pj.fuerza/7)*skills.armas/30))

y me da bien el resultado.... :S
La verda ni idea de q puede ser, si alguien sabe lo voy a agradecer. A continuacion le dejo todo el codigo q tengo hasta el momento.

Código :

moustros = [[10, 3, 1, 5, 0, "Mitocondria", 2, 20, 10], 
          [14, 4, 2, 7, 0, "Rata", 3, 30, 15], 
          [20, 6, 4, 2, 0, "Lobo", 5, 60, 25]
          ];
armas= [[1, 5, "Palo"],
       [2, 8, "Cuchillo"],
       [4, 7, "Machete"],
       [7, 10, "Daga"]
       ];
armamin=1
armamax=5
dañomin=(Math.round((armamin*pj.moddaño)*(pj.fuerza/7)*skills.armas/30))
ekip= {armanumero:0, ropa:0, botas:0, guantes:0}
pj = {agilidad:5, fuerza:7, inteligencia:5, vitalidad:5, vida:25, vidamax:10, mana:10, manamax:25, velocidad:4, defensa:0, experiencia:0, nexp:40, oros:0, modificadores:5, nombre:"Betatester", clase:"Guerrero", nivel:1, modvida:1.2, modmana:0.4, moddaño:1.3, moddañomag:1.3}
skills= {armas:30, magia:20, combate:20, Sanar:10}
function test(){
   trace(pj.agilidad)
   trace(pj.fuerza)
   trace(pj.inteligencia)
   trace(pj.vida)
   trace(pj.vidamax)
   trace(pj.mana)
   trace(pj.manamax)
   trace(pj.velocidad)
   trace(pj.defensa)
   trace(pj.experiencia)
   trace(pj.nexp)
   trace(pj.oros)
   trace(dañomin)
   trace(Math.round((armamin*pj.moddaño)*(pj.fuerza/7)*skills.armas/30))
}
function verestadisticas(){
   attachMovie("pjestadisticas", "pjestadisticas", 10000);
}
_root.testb.onPress=function(){
   test();
}
_root.estadisticasb.onPress=function(){
   verestadisticas();
}

Por MiracleZ

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 18 Ene 2007 05:12 pm
Probá declarando la variable como Number....

var dañomax:Number = (Math.round ((armamin * pj.moddaño) * (pj.fuerza / 7) * skills.armas / 30));

No sé... Estoy adivinando...


(no pongo eso dentro de la etiqueta código para evitar el scroll)

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

msie
Citar            
MensajeEscrito el 18 Ene 2007 05:24 pm
O el problema está en alguna de las otras variables que defines (porque vale Nan o undefined) o estás haciendo una división por 0. comprueba las otras variables haciendo un trace de cada una.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 20 Ene 2007 12:30 am
Comprueba si todas las variables contienen números y no están en blanco.

Te recomiendo que definas TODAS las variables con la acción var y asignandoles un tipo, por ejemplo var nombre:Number = 1, para crear una variable numérica con el valor 1.

NO escribas los números entre comillas, ya que Flash los interpreta como cadena (String).

Como ya te han dicho, prueba que no intentas dividir entre 0 y que ningún valor esté en blanco (undefined o null). Además verifica que Flash interpreta todos los valores como números, con que sólo uno sea de otro tipo, hace que te aparezca NaN.

Puedes utilizar la acción Number () en todas las variables y operaciones para asegurarte que Flash los interpreta como números.


Un saludo,

Por JACB

38 de clabLevel



 

Málaga

firefox

 

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