delorie.com/archives/browse.cgi | search |
From: | arg AT whangomatic DOT freeserve DOT co DOT uk (Andrew R. Gillett) |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: Game Speed |
Date: | Sun, 17 Oct 1999 14:32:08 +0100 |
Organization: | www.release-dates.co.uk |
Lines: | 54 |
Message-ID: | <MPG.1273deccf87c634798b3ff@news.freeserve.net> |
References: | <H3jO3.7505$Tk DOT 157563 AT news DOT tpnet DOT pl> |
NNTP-Posting-Host: | modem-131.spotted-trigger.dialup.pol.co.uk |
X-Trace: | news8.svr.pol.co.uk 940167148 18465 62.137.47.131 (17 Oct 1999 13:32:28 GMT) |
NNTP-Posting-Date: | 17 Oct 1999 13:32:28 GMT |
X-Complaints-To: | abuse AT theplanet DOT net |
X-Newsreader: | MicroPlanet Gravity v2.12 |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
In comp.os.msdos.djgpp, Snowman wrote: > Hello everybody > > I programmed a simple game in C. > (I used DJGPP and ALLEGRO) > But the game runs on different Computers with > a different speed. > Is it possible, that the game runs on all > Computers with a similar speed ? > Please Help me immidiately . Here is a brief outline of what you need to do: - Create an interrupt which is called every 60th of a second (or whatever you want the frame rate to be). - In the interrupt, increase a value (I call it timer_value) by 1. - Set timer_value to 0 before the main game loop starts. - The main game loop is separated into two parts - one which does the calculations (and input), and ones which draws the graphics. The main game loop should look something like this: while (not_finished) { if (timer_value) { // Calculations go here if (--timer_value <= 0) { timer_value = 0; // Draw the graphics here } } } You can also add an extra value (which I call time_waiting) which prevents the game from locking up on very slow computers. Change the relevant line to this: if ( (--timer_value <= 0) || (++time_waiting == 4) ) and then set time_waiting to 0 inside the loop. This will make it so that it never skips more than four frames at once. -- Andrew Gillett http://argnet.fatal-design.com/ ICQ: See homepage "I hate society, Stew. I'm like Skeletor in that respect." - Richard Herring
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |