Comunidad de diseño web y desarrollo en internet online

Tablero y posiciones

Citar            
MensajeEscrito el 03 Feb 2010 10:05 am
Holas gente. Estoy haciendo un tablero con dados, donde hay una variable llamada "numero" que va sumando cada tirada.
Hay 30 posiciones (casillas) y yo quiero que si por ejemplo "numero=20" el movieClip (p1) vaya a la casilla 20. Parece que lo hago mal con los if, alguna idea?

Código :

numero=Number(0);

if (numero=="1"){
_root.p1._x= pos1._x;
_root.p1._y= pos1._y;
}
if (numero=="20"){
_root.p1._x= pos20._x;
_root.p1._y= pos20._y;
}

Por sidecat

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2010 11:42 am
Yo lo haría de otra forma...

1. Tendría una variable "Dados" con la tirada actual
2. Tendría la variable "Posición" con el lugar donde esta el usuario
3. Pondría al final una función "Update" que es para llevar al usuario al clip de posición que debería:

Código ActionScript :

_root.p1._x = _root["post"+posicion]._x


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 03 Feb 2010 03:24 pm
gracias Hernán

1. Tendría una variable "Dados" con la tirada actual
No le encuentro utilidad, porque? Si tengo una variable que me da el resultado del numero
2. Tendría la variable "Posición" con el lugar donde esta el usuario
Como? por ejemplo al inicio esta en: pos1, como sabrá donde esta en cada momento? con alguna clase?

gracias de nuevo

Por sidecat

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2010 04:15 pm
Pues para esto:

Código ActionScript :

var dado:Number = 0;
var posicion:Number = 0;
function tirar():Void{
    dado = random(6)+1;
    posicion+= dado;
    _root.p1._x = _root["pos"+posicion]._x;
    _root.p1._y = _root["pos"+posicion]._y;
}


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 03 Feb 2010 04:46 pm
Ahh ok mil gracias ahora si que lo he pillado. Sois un crack!!

Por sidecat

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Feb 2010 05:01 pm
y alguna pista para que se vea el movimiento y no haga un salto? solo guiame e iré provando

Por sidecat

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Feb 2010 12:44 pm
bueno sino para que me haga un reset al llegar a la casilla 39 (pos39) y continue pos1, pos2 que de la vuelta al tablero.

una historia asi:

Código :

if(posicion>39){
haz un reset y que continue sumando desde la pos1
}

Por sidecat

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Feb 2010 04:41 pm
si hago esto funciona pero se queda loco una tirada:

Código :

   if(posicion>37){
      _root.posicion+=-37;
      }

Por sidecat

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Feb 2010 10:12 am
ninguna idea?

Por sidecat

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Feb 2010 12:13 pm
pos no sabia que era un reto tan grande...

Por sidecat

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Oct 2013 04:43 pm

Por Nakú

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Oct 2013 09:11 am

Código :

numero=Number(0);

if (numero=="1"){
_root.p1._x= pos1._x;
_root.p1._y= pos1._y;
}
if (numero=="20"){
_root.p1._x= pos20._x;
_root.p1._y= pos20._y;
}
¿Eso es en un frame?

Supongo ¿vuelves a él? Si no vuelves, entonces el código en él sólo se aplicará 1 vez. Además, no entiendo ese Number(0) pero si estás diciendo que la variable es 0, e inmediatamente pones if para cuando la variable sea 1 o 20, entonces, mijo, nunca va a serlo, si acabás de definir que es 0 y no hay algo más entre eso y los ifs ... Además si el "Number" es para definirla como número, no entiendo para qué pones entre comillas los "números" de los ifs. Si haces eso lo toma como texto, ya no es 1, número, sino "1", texto. Puede que en lo que dije no se vea la diferencia pero la hay, cuando sumas 1+1 te da 2, pero cuando sumas "1"+1 te da 11, aunque eso capáz que depende del AS que sea, en algunos lenguajes de programación creo que da error porque no suman un número y un texto.
Tampoco tiene sentido poner _root. si estás en la película raíz. Pero esto no es importante.

Lo del salto no lo entendí ¿quieres que se mueva lento, digamos, en vez de que instantáneamente aparezca en el nuevo casillero? Si te sirve un movimiento en diagonal y de velocidad dependiente de la distancia -o sea, la duración siempre sería la misma, pero la velocidad y distancia no-, puedes medir la distancia x y la y, y dividir cada una por el tiempo que quieres que tarde, entonces haces un if o lo que sea, una etapa en la que el personaje se mueva Dx y Dy -resultados de las divisiones-, hasta superar la posición que buscas, momento en el que -con un if- lo colocas en la posición y pones fin a la etapa.
Si quieres que la velocidad sea siempre la misma -entonces el tiempo que tarde no lo será- creo que vas a tener que hacer un cálculo de porcentajes o algo así, es un poco complicado. Cuenta más de tu problema, en realidad acabo de darme cuenta que desde cierto punto lo confundí con otro.

Por Tachikomaia

73 de clabLevel



 

chrome

 

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