Re: A86: Question on tile maps


[Prev][Next][Index][Thread]

Re: A86: Question on tile maps




Yeah, I forgot to mention that, that is another advantage (funny, I
mentioned that in my note in the first game I used this method with).  I
should have just copied that in the first place...

; Notes:  I used a unique sort of tripple-buffering system for this game.
;	  There are three buffers used:  video ram, the virtual screen and
;	  the map screen.  Because the map is not always updated in a frame,
;	  it is saved in the map screen.  The sidebar is also stored on the
;	  the map screen.  Each frame it is copied over to the virtual screen
;	  before any other sprites are drawn.  This is saves time because
;	  the background behind sprites doesn't have to be saved and redrawn
;	  every frame.  This also helps to equalize the speed, so it doesn't
;	  seem to bog down when many sprites are on screen at once (it just
;	  runs a little slower all the time).  I'm sure there is a better
;	  method, but this seems to work pretty well at the moment.

----- Original Message -----
From: Justin Karneges <jgkarneges@ucdavis.edu>
To: <assembly-86@lists.ticalc.org>
Sent: Wednesday, January 27, 1999 2:14 PM
Subject: Re: A86: Question on tile maps


>
>Not only is this easier programming, but it makes the game go at a constant
>rate.  Remember how in penguins if you didn't move to the left or right the
>game was extremely fast?  but when you started moving, the game slowed
down?
>If you redraw the background independently of whether or not the player
>moved, it will keep the game going at the same speed no matter what (as
>opposed to using a timer routine).  This is a *good* thing.  Heed David's
>advice.
>
>-Justin Karneges [Infiniti]
>
>>I've found that instead of using a SLOW sprite routine that saves the
>>background, it's almost always much faster and easier to just save the
>>background each frame into a secondary buffer.  I call it "tripple
>>buffering".  You have your Video Ram or Video Buffer, Virtual Screen or
>>Double Buffer, and you have the Map Screen or Map Buffer.
>>
>>You draw the map to the Map Buffer.  At the beginning of each frame (top
of
>>the main loop), copy the Map Buffer to the Virtual Screen.  This will
>>effectively erase any sprites that were drawn the previous frame.  During
>>the frame, use whatever putsprite routine that you want and draw your
>>sprites to the Virtual Screen.  Don't worry about where they were or what
>>was behind, them, just draw them as fast as possible.  At the end of the
>>frame, copy the Virtual Screen to Video Ram.  This will save you alot of
>>effort when programming, and it will be much faster if you have more than
>>two or three on screen sprites.  An extra 21000 t's for a buffer copy
isn't
>>much at all.
>>
>>Some example equates for this would be...
>>
>>VideoRam = $fc00
>>VirtScr  = $f600
>>MapScr   = $8100
>>
>>Example main loop...  (a little easier to understand than asm, maybe)
>>
>>main_loop:
>>  copy MapScr to VirtScr
>>
>>  ...
>>  draw sprites and do other stuff
>>  ...
>>
>>  copy VirtScr to VideoRam
>>goto main_loop
>>
>>--
>>David Phillips <david@acz.org>
>>http://www.acz.org/
>>
>>----- Original Message -----
>>From: Andreas Finne <a_finne@hotmail.com>
>>To: <assembly-86@lists.ticalc.org>
>>Sent: Wednesday, January 27, 1999 7:18 AM
>>Subject: Re: A86: Question on tile maps
>>
>>
>>>
>>>>From: BlAsTo1414@aol.com
>>>>Date: Tue, 26 Jan 1999 22:28:35 EST
>>>>To: assembly-86@lists.ticalc.org
>>>>Subject: Re: A86: Question on tile maps
>>>>Reply-To: assembly-86@lists.ticalc.org
>>>
>>>>How would I make a map(for a game like Chips Challenge{tiles also})
>>>>print it to the screen and move a sprite over top of it?
>>>>I also need to know how to check for collisions with other spites.
>>>>ANY help on ANY of these
>>>>questions would be appreciated SO much.  :-)
>>>>
>>>>Thank you,
>>>>BlAsTo1414
>>>>
>>>
>>>To put a moveable sprite on top of other sprites without destroying the
>>>background i suggest Jimmy Mardell's ASCR (ascr.h came with SQRXZ). It
>>>saves the background so it doesn't get destroyed.
>>>
>>>Andreas Finne
>>>
>>>a_finne@hotmail.com
>>>
>>>______________________________________________________
>>>Get Your Private, Free Email at http://www.hotmail.com
>>>
>>>
>>
>>
>
>
>