Article View: es.comp.os.linux.programacion
Article #16386RE: Retardo en juego
From: Toni M�rtir
Date: Wed, 26 Apr 2000 00:00
Date: Wed, 26 Apr 2000 00:00
40 lines
2379 bytes
2379 bytes
Para eso hay varias soluciones. Un solucion m�s f�cil es la siguiente: 1. Obtener el n�mero de milisegundos del reloj del ordenata. 2. Ejecutar un paso del juego 3 Obtener el n�mero de milisegundos del reloj del ordenata, mirar la diferencia con la del paso 1, si es 33 milisegundos (30 pasos/seg) o m�s continuar sino esperar (si la espera no consume CPU mejor). 4. Paso 1 Otra solucion curiosa y efectiva es la siguiente: Crear un thread de prioridad alta, que realice un bucle y dentro una pausa de sincronismo, por ejemplo si quieres que el juego funcione a 30 pasos/seg, una pausa de 33 milisegundos. El thread principal se pude sincronizar con el controlador de tiempo con un sem�foro, un event o algo parecido. La pausa de sincronismo debe ser mediante una llamada a una funcion de sistema operativo que bloquee sin consumir recursos. En Delphi era muy f�cil usando Waitforsingleobject(handle,tiempo). Esto te garantiza que no corra m�s de lo debido, pero puede que corra menos de lo debido, en este caso los juegos comerciales suelen dibujar la pantalla no en cada paso para que el juego ocurra en tiempo real, entonces disminuye la suavidad de los gr�ficos, es decir el Quake funciona igual de r�pido en un P200MMX que en un PIII 600, pero el PII 600 consigue los 60 frames/seg. Espero haberte ayudado, saludos > > Quisiera que me dijerais como puedo meter este retardo en el juego, adaptandose a la > velocidad de la maquina en la que se ejecute. Por otro lado, y si la solucion del bucle no > fuera la mejor, que alternativas tengo. > > Muchas gracias por anticipado. > >
Technical Details
Message-ID:
<1MDN4.8$oI.608@m2newsread.uni2.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<8e4sen$4n3$1@talia.mad.ttd.net>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,38f52171fe384988 X-Google-Attributes: gidf86c8,public From: "Toni M�rtir" <techni-webNOSPAM@pala.com> Subject: RE: Retardo en juego Date: 2000/04/26 Message-ID: <1MDN4.8$oI.608@m2newsread.uni2.es> X-Deja-AN: 615935609 References: <8e4sen$4n3$1@talia.mad.ttd.net> X-Priority: 3 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 X-Complaints-To: abuse@news.wanadoo.es X-Trace: m2newsread.uni2.es 956762237 62.36.159.146 (Wed, 26 Apr 2000 17:17:17 MET DST) Organization: Wanadoo Usenet News - Visita http://www.wanadoo.es/ X-MSMail-Priority: Normal NNTP-Posting-Date: Wed, 26 Apr 2000 17:17:17 MET DST Newsgroups: es.comp.os.linux.programacion