Comunidad de diseño web y desarrollo en internet online

como registrar datos en una variable?

Citar            
MensajeEscrito el 06 Ene 2010 05:31 pm
Hola a todos, estoy intentando crear un juego aqui, pero me salio un pequeño problema y no logro resolver.

buscando por la internet aprendi crear un cronometro, hasta ahi todo bien, lo integre a mi juego y salio muy bien, va contando bien en cada fase.

pero me gustaria agregar un contador del tiempo total cada vez que cambiar de fase.

ejemplo, fase 1 tiempo= 00:03:15:80
ejemplo, fase 2 tiempo= 00:02:30:20

fin del juego, tiempo total = 00:05:46:01

ese es mi problema, no logro guardar los tiempos en una variable para despues sumar a cada nueva etapa.
la idea es mantener un contador de tiempo total en la pantalla del juego asi como hice uno de puntuacion total.
lo raro que el de puntuacion total logre facil, pero no logro hacer eso con el tiempo.

abajo va el codigo del cronometro:

creditos a JMX: [url=http://www.estiloflash.com/programar-un-cronometro-con-centesimas-de-segundo-en-flash-cs3/499/][/url]
------------------------------------------------------------------------------------------
_root.gamedy.map.onEnterFrame = function()
{
if (timing)
{
elapsedTime = getTimer()-startTime;
elapsedHours = Math.floor(elapsedTime/3600000);
remaining = elapsedTime-(elapsedHours*3600000);
elapsedM = Math.floor(remaining/60000);
remaining = remaining-(elapsedM*60000);
elapsedS = Math.floor(remaining/1000);
remaining = remaining-(elapsedS*1000);
elapsedH = Math.floor(remaining/10);
if (elapsedHours < 10)
{
hours = "0"+elapsedHours.toString();
_root.hora2=hours;
}
else
{
hours = elapsedHours.toString();
_root.hora2=hours;
}
if (elapsedM < 10)
{
minutes = "0"+elapsedM.toString();
_root.minuto2=minutes;
}
else
{
minutes = elapsedM.toString();
_root.minuto2=minutes;
}
if (elapsedS < 10)
{
seconds = "0"+elapsedS.toString();
_root.segundo2=seconds;
}
else
{
seconds = elapsedS.toString();
_root.segundo2=seconds;
}
if (elapsedH < 10)
{
hundredths = "0"+elapsedH.toString();
_root.centesimo2=hundredths;
}
else
{
hundredths = elapsedH.toString();
_root.centesimo2=hundredths;
}
_root.gamedy.info.tempototal.timer_txt = hours+":"+minutes+":"+seconds+":"+hundredths;

}
};

_root.gamedy.info.tempototal.timer_txt = "00:00:00:00";
function starttime()
{
if(!_root.gamedy.map.timing)
{
if (_root.gamedy.map.paused)
{
_root.gamedy.map.startTime = getTimer() - _root.gamedy.map.elapsedTime;
}
else
{
_root.gamedy.map.startTime = getTimer();
}
_root.gamedy.map.paused = false;
_root.gamedy.map.timing = true;
}
}

function pausetime()
{
if(_root.gamedy.map.timing)
{
_root.gamedy.map.timing = false;
_root.gamedy.map.paused = true;
}
}
function stoptime()
{
_root.gamedy.map.timing = false;
_root.gamedy.map.paused = false;
_root.gamedy.info.tempototal.timer_txt = "00:00:00:00";
}


si alguien puede ayudarme estaria muy grato como guardar y calcular eso para sumar los tiempos con el tiempo total,

ejemplo de lo que necesito lograr,

al iniciar el juego tiempo total es igual a 00:00:00:00
pasa primera fase:

tiempo total=tiempo total +tiempo de la fase que paso;

como hacerlo?

Por Capcaverna

6 de clabLevel



 

msie7
Citar            
MensajeEscrito el 07 Ene 2010 02:49 am
La verdad no leí todo ese código, ya que además la manera más fácil es usar un setInterval, simplemente activalo cada vez y guarda con un push los tiempos. Algo así:

Código ActionScript :

function countAgain():Void{
    index++;
}
function deleteCounter():Void{
    timer.push(index);
    clearInterval(id);
}

function activeCounter():Void{
    id = setInterval(countAgain,0);
    index = 0;
}

var index:Number = 0;
var timer:Array = [];

btn_start.onRelease=activeCounter;
btn_end.onRelease=deleteCounter;


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 07 Ene 2010 03:20 am
Gracias, voy intentar asi como dice aver si logro hacerlo.
despues posteo el resultado.

Por Capcaverna

6 de clabLevel



 

msie7
Citar            
MensajeEscrito el 07 Ene 2010 06:36 am

Capcaverna escribió:

Gracias, voy intentar asi como dice aver si logro hacerlo.
despues posteo el resultado.
Hola, infelizmente no estoy logrando como me dijiste.

yo estaba intentando aqui dar una pausa entre cada fase, y hacer el tiempo volver a correr cuando empezar la nueva faze, pero el cronometro reinicial al 0.

que fome, toy quedand o loco aqui con eso.

alguien me puede ayudar?

la idea seria que cuando el mono pase de fase, guarde el tiempo pasado en otra variable y lo envie a otro lugar, y cada vez que termine una fase va sumando los puntos a esa nueva variable. pero no estoy logrando. :(

quedaria muy grato si los genio aqui me pudieran ayudar.

el codigo completo del cronometro esta arriba, en AS2.

gracias de antemano.

Por Capcaverna

6 de clabLevel



 

msie7
Citar            
MensajeEscrito el 07 Ene 2010 07:39 am
Estuve mirando aqui y pense lo siguiente, hay como hacer que ese cronometro sea global?
por que al que me parece el esta local por eso siempre resetea el cronometro y no puedo dar pausa entre las etapas y hacerlo correr otra vez asi que empeze la nueva etapa.

si hay como hacerlo global y yo lo ponga en el _root
quizas yo poderia lograr lo que intento.

por que hay yo le daria un start cuando empeza el juego y entre las estapas le doy pause y salgo del pause cuando entre la nueva etapa, es posible eso?

Por Capcaverna

6 de clabLevel



 

msie7
Citar            
MensajeEscrito el 07 Ene 2010 09:24 am
Hola Hernán, logre aqui pero no como me dijistes, en verdad no pude hacer como me dijistes, pero logre hacer lo que necesitaba de la siguiente manera, puse el codigo del cronometro en el _root, y de adentro de los MC yo controlaba el inio y pausas, etc del mismo, asi me fuciono, y mientras esta en la pantalla que enseña el puntagen total de la fase, yo le doy pausa, y cuando uno sale y empeza una nueva fase, le saco la pausa. asi me fuciono bien. gracias por tu ayuda.

Saludo, y feliz año nuevo.
:)

Por Capcaverna

6 de clabLevel



 

msie7
Citar            
MensajeEscrito el 08 Ene 2010 01:49 am
Siempre hay varias maneras de resolver un mismo problema. Pero cuidado porque el código que planteas aquí para un simple cronometro es exageradamente largo y consumidor de recursos.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox

 

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