Ver la versión completa : ¿Cómo hacer un reloj?
Puck2099
21/06/2004, 22:18
Hola,
Me gustaría saber si hay alguna función para hacer una especie de reloj usando el SDK.
Estoy haciendo un juego de fichas (ya casi está terminada la versión de 2 jugadores, pero todavía tengo que meter inteligencia artificial para jugar contra la maquina) y quisiera usar 2 cronómetros que cuenten hacia atrás para darles x tiempo a cada jugador, pudiendo detenerlos en el turno del otro jugador.
¿Alguna idea de cómo hacerlo?
Muchas gracias
KOLALOKA
21/06/2004, 22:44
no estoy seguro porke no me he visto las librerías, pero en la librerías ke kontrolan threads (si es ke las hay, debería haber una función ke se llame sleep). Kon la función sleep en un thread separadado se duerme y kuando despierte lo ke debe de hacer es mandar un mensaje al otro thread (el ke lleva el juego, y no el de control).
SAlu2
PD: Espero haberte sido de ayuda, no te puedo precisar porke no me he mirado ninguna librería de programación para la gp32
pues puedes usar la funcion gettickcounts() o algo parecido ... que te devuelve el numero de "ciclos de cpu", asi podrias en lugar de darle un tiempo darle por ejemplo 10000 ciclos de cpu, que podria ser algo como 10s.
Obviamente los ciclos de cpu y los segundos depende de la velocidad a la que hays puesto la cpu, que por defecto creo que es 60Mhz.
Aiken
duquehernani
22/06/2004, 05:33
arggg que malos recuerdos me trae eso,
recuerdo un proyecto en el que trabaje que consistia en portar un app de delphi a kylix. solo pensarlo me da cagalera. los ******es de borland se habian pasado por el forro esta funcion en la api del kylix i te la tenias ke kurrar tu mismo llamando a libc (o pillarla de alguien que habia tenido el mismo problema :) )
aparte de eso, no aporto nada util a la discusion...si, es que soy asi de tocapelotas.
Buena suerte en tu relojito. si tengo tiempo le dare un vistazo al tema y intentare ayudarte.
Buen Rollo.
unsigned int n_tick;
n_tick = GpTickCountGet();
while ( ( GpTickCountGet() - n_tick ) < msec);
Deberia ser algo asi.
unsigned int ticksuma=0,ticks=0;
funcion jug1
{
n_tick = GpTickCountGet();
hacer cosas del jugador;
if(( GpTickCountGet() - n_tick )+ticksuma>1000)
{
decrementar segundo;
ticksuma=( GpTickCountGet() - n_tick +ticksuma)%1000;//el resto
else
ticksuma=( GpTickCountGet() - n_tick +ticksuma);
}
}
Y lo mismo con el jugador 2.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.