Comunidad de diseño web y desarrollo en internet online

Movimiento de fichas (Estilo parchís o monopoly)

Citar            
MensajeEscrito el 13 Feb 2010 10:08 am
Tengo un tablero, dados y casillas.
Cada vez que hago una tirada tengo un _root. dependiendo de la posición que caigas para que coga las cordenadas de la ficha.

Código :

    posicion+= dado; 
    _root.p1._x = _root["pos"+posicion]._x; 
    _root.p1._y = _root["pos"+posicion]._y; 


El problema es que va directo a la casilla sin ningun movimiento. Cómo podría decir que si sale un 6 por ejemplo, pase por la casilla 1,2,3,4,5 y 6 (Instancias: pos1,pos2,pos3...) y ahí se detenga

Por sidecat

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Feb 2010 11:48 am
hola, nadie? Ni una pista?

Por sidecat

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Feb 2010 12:05 am
debes ponerle una codicion, un if, entonces una vez que tiras y te fijas que salio, dices donde va...
suponiendo salio un 6, tendria que ir a pos6, no???

enotonces seria:

Código ActionScript :

switch (resultado) {
    case 1:
        trace ("pos1");
        break;
    case 2:
        trace ("pos2");
        break;
    case 3:
        trace ("pos3");
        break;
case 4:
        trace ("pos4");
        break;
case 5:
        trace ("pos5");
        break;
case 6:
        trace ("pos6");
        break;
}


Saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

chrome
Citar            
MensajeEscrito el 15 Feb 2010 12:20 pm
no, no entendiste. El dado ya lo tengo, la ficha se mueve por todas las casillas pero si estoy en la casilla 8 por ejemplo y saco un 3, salta directamente a la 11 sin pasar por la 9,10 y 11.

O sea:

Casilla 8 + Dado=3 ( la ficha debe pasar por la casilla 9,10 y 11 con un movimiento no de golpe)

Por sidecat

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Feb 2010 05:32 pm
hahaha...ahora entiendo. Por ahi, deberias al obtener el resultado, avanzar mediante el i++, es decir,
desde donde estoy (pos 8), hacia donde tengo que ir (pos11= pos8 + 3) avanzar de a uno.

Creo que lo podrias hacer con un for....

Fijate si se entiende y avisame. Saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

chrome
Citar            
MensajeEscrito el 16 Feb 2010 02:38 pm
a ver yo lo que haria seria:

tirada, numero de casilla, dime que numero de casillas paso, y finalmente: pasa por cada una de ellas.

Por sidecat

62 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Feb 2010 02:48 pm
en programacion seria:

tiro dado, guardo resultado.

Código :

for (dondeEstoyParado; hastaDondeQuieroIr; i++)
{
//Ejecuto la funcion que avanza la ficha
}


Observacion: hastaDondeQuieroIr=dondeEstoyParado+resultado de la tirada

Algo así seria la cosa, tendrias que probarlo con Actionscript a ver que tal funciona.
Saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

chrome
Citar            
MensajeEscrito el 16 Feb 2010 03:54 pm
Primero tienes que crear una funcion que se ejecute en un evento onEnterFrame, para que se repita hasta que la ficha llegue a su destino (CicloAvanzaFicha)

Código :

CalculaSiguienteCasilla = function ()
{
    --_global.objFichaAct.PuntosAvanza;
    ++_global.objFichaAct.CasillaSig;
    _global.ContFrames = 5;
    _global.objFichaAct.PosCasillaX = _root[_global.objFichaAct.CasillaSig].Pos0.x;
    _global.objFichaAct.PosCasillaY = _root[_global.objFichaAct.CasillaSig].Pos0.y;
    _global.objFichaAct.IncX = (_global.objFichaAct.PosCasillaX - _global.objFichaAct._x) / _global.ContFrames;
    _global.objFichaAct.IncY = (_global.objFichaAct.PosCasillaY - _global.objFichaAct._y) / _global.ContFrames;
};
CicloAvanzaFicha = function ()
{
    _global.objFichaAct._x = _global.objFichaAct._x + _global.objFichaAct.IncX;
    _global.objFichaAct._y = _global.objFichaAct._y + _global.objFichaAct.IncY;
    --_global.ContFrames;
    if (_global.ContFrames > 0)
    {
        return;
    } // end if
    if (_global.objFichaAct.PuntosAvanza > 0 && _global.objFichaAct.CasillaSig < _global.UltimaCasilla)
    {
        CalculaSiguienteCasilla();
        return;
    } // end if
    if (_root[_global.objFichaAct.CasillaSig].SubeBaja)
    {
        _global.objFichaAct.PuntosAvanza = 1;
        _global.objFichaAct.CasillaSig = _root[_global.objFichaAct.CasillaSig].SubeBaja - 1;
        return;
    } // end if
    _root.Mensaje._visible = false;
    _global.objFichaAct.onEnterFrame = null;
    _global.objFichaAct.CasillaAct = _global.objFichaAct.CasillaSig;
    _global.objFichaAct._x = _root[_global.objFichaAct.CasillaSig]["Pos" + _global.TurnoAct].x;
    _global.objFichaAct._y = _root[_global.objFichaAct.CasillaSig]["Pos" + _global.TurnoAct].y;
    if (_global.objFichaAct.CasillaAct == _global.UltimaCasilla)
    {
        PantallaGanador._visible = true;
        BtnReiniciar._visible = true;
        BtnDado._visible = false;
        if (_global.TurnoAct == 1 && _global.Contrincante == 1)
        {
            MuestraMensaje("Te gano la Computadora\nintenta de nuevo");
        }
        else
        {
            MuestraMensaje("Gano Jugador" + _global.TurnoAct + "\n¡Felicidades!");
        } // end else if
    }
    else
    {
        trace ("Termina de avanzar");
        IniciaSiguienteTurno();
    } // end else if
};
CalculaSiguienteCasilla();
_global.objFichaAct.onEnterFrame = CicloAvanzaFicha;


Este codigo lo tengo en un juego de oca, donde se juega contra la computadora:
_global.objFichaAct contiene el movieclip de la ficha a avanzar
PuntosAvanza: será el número de casillas a avanzar, al avanzar cada casilla se le va restando uno hasta llegar a cero.
CasillaSig: será el número de casilla en la que se encuentra la ficha conforme va avanzando, va cambiando de casilla.
_global.ContFrames: contiene el numero de frames en los que una ficha se mueve de una casilla a la siguiente.
PosCasillaX y PosCasillaY: contienen la posición de la siguiente casilla a visitar.
IncX y IncY: contienen el incremento que se aplica a las coordenadas X y Y para llegar a la siguiente casilla

espero te sirva y nos cuentas...

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

firefox
Citar            
MensajeEscrito el 31 Oct 2011 02:26 am
Hola chicos me podrias facilitar o ayudarme como hacer el dado y el movimiento de las fichas, estoy haciendo un juego y no e podido hacer el dado ni el movimiento por fa ayudenme no tengo idea como acerlo, necesito su ayuda.

Por kathyaragon

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Dic 2011 02:07 am

kathyaragon escribió:

Hola chicos me podrias facilitar o ayudarme como hacer el dado y el movimiento de las fichas, estoy haciendo un juego y no e podido hacer el dado ni el movimiento por fa ayudenme no tengo idea como acerlo, necesito su ayuda.

Por kathyaragon

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Dic 2011 02:08 am
nada ninguna respuesta por favor urgente ayudenme :cry:

Por kathyaragon

8 de clabLevel



 

firefox

 

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