From: "23yrold3yrold" Newsgroups: comp.os.msdos.djgpp References: <395e61e0_2 AT spamkiller DOT newsfeeds DOT com> Subject: Re: Using (page-flipping) to speed up a program Date: Sun, 2 Jul 2000 10:53:54 -0500 Lines: 76 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2919.6600 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6600 NNTP-Posting-Host: 64.4.88.210 Message-ID: <395fcb12_1@spamkiller.newsfeeds.com> X-Trace: 2 Jul 2000 18:06:58 -0500, 64.4.88.210 X-Comments: This message was posted through Newsfeeds.com X-Comments2: IMPORTANT: Newsfeeds.com does not condone, nor support, spam or any illegal or copyrighted postings. X-Comments3: IMPORTANT: Under NO circumstances will postings containing illegal or copyrighted material through this service be tolerated!! X-Report: Please report illegal or inappropriate use to You may also use our online abuse reporting from: http://www.newsfeeds.com/abuseform.htm X-Abuse-Info: Please be sure to forward a copy of ALL headers, INCLUDING the body (DO NOT SEND ATTACHMENTS) Organization: Newsfeeds.com http://www.newsfeeds.com 73,000+ UNCENSORED Newsgroups. To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com First of all, thanks to everyone who helped me with understanding the timer issue; due to those responses, I've decided to put the timer bit on the back burner (the program needs no help slowing down) and figure out page-flipping. However, here I have also run into a snag. I found the original program refused to page flip, simply because 640 x 960 seems too big for it to handle. So I triedshrinking it to Mode-X 320 x 240 to see if I could get that to work (I want it in 640 x 480 ultimately, but I tried this to see if it would help). No prob compiling, big prob running. Since a few people suggested the page-flipping I hope for some help in figuring out why/where the following program is flawed. Thank you for your time. #include #include #include short int sx = 0, sy = 0; PALETTE pal; BITMAP *page1, *page2, *active_page; RLE_SPRITE *ship; int main() { allegro_init(); install_keyboard(); install_timer(); set_color_depth(16); set_gfx_mode(GFX_MODEX, 320, 240, 320, 480); 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; ship = get_rle_sprite(load_bitmap("Ship.bmp", pal)); do { draw_rle_sprite(active_page, ship, sx, sy); if (active_page == page1) { scroll_screen(0, 0); active_page = page2; } else { scroll_screen(0, SCREEN_H); active_page = page1; } // Move the sprite according to the controls if(key[KEY_LEFT]) {if(sx > 0) {sx = sx - 5;} else {sx = 0;};}; if(key[KEY_RIGHT]) {if(sx < 595) {sx = sx + 5;} else {sx = 595;};}; if(key[KEY_UP]) {if(sy > 0) {sy = sy - 5;} else {sy = 0;};}; if(key[KEY_DOWN]) {if(sy < 425) {sy = sy + 5;} else {sy = 425;};}; } while(!key[KEY_ESC]); set_gfx_mode(GFX_TEXT, 0, 0, 0, 0); destroy_rle_sprite(ship); destroy_bitmap(page1); destroy_bitmap(page2); return 0; }