Article View: es.comp.os.linux.programacion
Article #16384Re: Retardo en juego
From: Jose Luis Trivino
Date: Wed, 26 Apr 2000 00:00
Date: Wed, 26 Apr 2000 00:00
43 lines
2674 bytes
2674 bytes
bluemark@surnet.es wrote: > > Os explico mi duda: > > Estoy programando un jueguecito sencillo en C, y tan sencillo es que todo se mueve (al menos > en mi Celeron 300) tan rapido que no se ve nada. Esto lo vengo arreglando con un bucle for vacio > metido en medio del bucle principal del juego (aunque supongo que no sera la solucion mas > adecuada). Sin embargo, al cambiar de ordenador habria que cambiar la longitud del bucle en el > codigo fuente, cosa que no me parece muy apropiada. > > 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. Hola, Hasta donde yo se (lo mio no es programar juegos). Tienes tres opciones diferentes: 1. Utilizar un bucle while en el que usas como condicion de salida que haya pasado un tiempo determinado. Este tiempo lo calculas al principio del bucle mediante una llamada a la funcion time. El problema es que la resolucion de esta funcion es en segundo -> No hay retardos menores de 1 seg. Ignoro si hay alguna funcion que de mayor resolucion 2. Sustituyes el bucle de espera por una llamada a sleep o mejor a nanosleep (sleep trabaja con segundos). 3. Esta quizas sea la mejor pero tambien la mas compleja: Coloca todo el codigo repetitivo del juego dentro de un gestor de alarmas (ver comandos alarm, signal y sigaction. El problema es que alarm solo env�a se�ales en multiplos de segundos e ignoro si existira una funcion con una resolucion mayor. Hasta m�s bits, -- --------------------------------------------------- Jose Luis Triviño Rodriguez Dept. Lenguajes y Ciencias de la Computaci�n http://alcor.lcc.uma.es/~trivino Usuario registrado de linux n� 53043 --------------------------------------------------- La medida de programar es programar sin medida
Technical Details
Message-ID:
<3906FE47.6CB90517@lcc.uma.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: Jose Luis Trivino <trivino@lcc.uma.es> Subject: Re: Retardo en juego Date: 2000/04/26 Message-ID: <3906FE47.6CB90517@lcc.uma.es> X-Deja-AN: 615929918 Content-Transfer-Encoding: 8bit References: <8e4sen$4n3$1@talia.mad.ttd.net> To: bluemark@surnet.es X-Accept-Language: en Content-Type: text/plain; charset=iso-8859-1 X-Complaints-To: news@cica.es X-Trace: mercurio.cica.es 956755977 5202 150.214.108.40 (26 Apr 2000 13:32:57 GMT) Organization: Dept. Lenguajes y Ciencias de la Computacion Mime-Version: 1.0 NNTP-Posting-Date: 26 Apr 2000 13:32:57 GMT Newsgroups: es.comp.os.linux.programacion