🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #16386

RE: Retardo en juego

#16386
From: Toni M�rtir
Date: Wed, 26 Apr 2000 00:00
40 lines
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-mail
References: <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