www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/07/15/07:30:20

From: "jakub" <marushka AT ozemail DOT com DOT au>
Newsgroups: comp.os.msdos.djgpp
Subject: Sprite "ghost" help please.
Date: Wed, 15 Jul 1998 15:18:37 +1000
Organization: OzEmail Ltd.
Lines: 83
Message-ID: <6ohq64$jfu$1@reader1.reader.news.ozemail.net>
NNTP-Posting-Host: slsdn6p56.ozemail.com.au
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Hi,

I'm slowly learning to write my first game.
I have a sprite that moves horizontally across the screen controlled by the
keyboard.

Am using Allegro, with a 640x480 screen, and page flipping.
The problem is that when the ship moves, I can see it 'flickering' at the
edges.
Is there any way to fix this?

Snipped code follows:

int main(void)
{

.....

set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 960); /* need virtual page at
least 2x size */

...

 /* page flipping bitmaps creation */
 page1 = create_sub_bitmap(screen, 0, 0, SCREEN_W, SCREEN_H);
   page2 = create_sub_bitmap(screen, 0, SCREEN_H, SCREEN_W, SCREEN_H);
   active_page = page2;

.....

 /* play while esc key is not pressed */
   while(!key[KEY_ESC])
 {

  clear(active_page);


  if(key[KEY_LEFT])
  {
   player_x -= 4;
  }

  if(key[KEY_RIGHT])
  {
   player_x += 4;
  }

  if(player_x > 594)
   player_x = 594; /* if player is near right hand edge, ie. player sprite
is 43x38
         screen is 640x480, 640-43=597, don't let the ship move off screen
*/

  if(player_x <= 0)
   player_x = 0; /* similar to above but left hand edge this time */

.... missile fire section

  /* draw the players ship */
  draw_rle_sprite(active_page,shoot_datafile[player].dat,player_x,441);

  if (active_page == page1)
  {
       scroll_screen(0, 0);
    active_page = page2;
    }
    else
  {
   scroll_screen(0, SCREEN_H);
    active_page = page1;
    }

 }

.... destroy bitmaps and exit

 }

--
------------------------------------------------------------------------



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019