marekp@pnet91.cts.com (Marek Pawlowski) (11/10/90)
I am looking for advice in the area of graphics scrolling on the screen. When I have a routine which DRAW's (EQU $F601) a shape, then XDRAW's (EQU $F65D) over the same shape, then increments the X position by one, and does the process over again, the shape moves along with a very annoying flicker. Instead, I would like the effect of the shape sliding, without any major flickering. Are there suggestions/corrections as to how I can do this? All help appreciated, as usual. /* Marek Pawlowski, marekp@{generic|pnet91|contact|bkj386|torag|aunix}.uucp */ /* President, Intelligent Twist Software, 250 Harding Blvd, PO BOX 32017 */ /* Richmond Hill, Ontario, L4C 9M7, CANADA. */
C489030@UMCVMB.MISSOURI.EDU (Greg Hodgdon) (11/10/90)
well, as long as you're using shape tables, you can completley eliminate annoying flicker by using both hi res pages to do your animation: Address $E6 tells the applesoft hires routines which page you're drawing on: $20 for page 1, $40 for page 2. using this, you can draw/erase on the 'hidden' page while displaying the previous screen. ie. $C054 display page 1 $E6:40 erase/draw on page 2 $C055 display page 2 $e6:20 erase/draw on page 1 etc a better (faster) way would be to use block shapes which erase themselves as they're being drawn, but this involves either writing your own routines for drawing and managing the shapes or using a package like the Graphics Magician, which'll has a bunch of routines for doing all kinds of things with shapes. gee. whatever happened to penguin software anyway? ciao! greg hodgdon c489030@umcvmb.missouri.edu 'The Grateful Dead use ORCA/M' - Mike Westerfield in a Nibble interview p.s. marek P - I would'v responded in mail but i couldn't decipher that humongo address!
MQUINN%UTCVM@PUCC.PRINCETON.EDU (11/11/90)
On Fri, 9 Nov 90 22:00:04 GMT <info-apple-request@APPLE.COM> said: > I am looking for advice in the area of graphics scrolling on the screen. >When I have a routine which DRAW's (EQU $F601) a shape, then XDRAW's (EQU >$F65D) over the same shape, then increments the X position by one, and does >the process over again, the shape moves along with a very annoying flicker. > > Instead, I would like the effect of the shape sliding, without any major >flickering. Are there suggestions/corrections as to how I can do this? > > All help appreciated, as usual. (I assume you're talking about the old hi-res screen (280x192)?) There are two hi-res screens that you may DRAW/XDRAW to. You can use a technique called page flipping. What you do is, draw the latest update of the animation on the screen that isn't visible, then switch video to that screen and update the previous screen, then switch back and so on. The first graphics screen resides at $2000-$3FF7 and the second graphics screen resides at $4000-$5FF7. To switch between these pages, do either a read or a write to locations $C055 and $C054. If you are currently in the first graphics screen ($2000) and want to switch the display to the 2nd screen, then do a LDA $C055. The first page will dissappear and the 2nd one will appear. To switch back to the first screen, do a LDA $C054. You have to tell the ROM based graphics routines which screen you want to draw to. You have to do a poke to some location between $0000-$03FF. I can't recall at the moment what it is (it's been a few years). Anyone else want to help out? Anyway, with this technique, everytime you are erasing an old image, you're looking at a different screen where the image is 'static'. So you never see any erasing. When you flip screens, the newly updated shape is already there. Hope this helps. >/* Marek Pawlowski, marekp@{generic|pnet91|contact|bkj386|torag|aunix}.uucp */ >/* President, Intelligent Twist Software, 250 Harding Blvd, PO BOX 32017 */ >/* Richmond Hill, Ontario, L4C 9M7, CANADA. */ ______________________________________ | | | BITNET-- mquinn@utcvm | | pro-line-- mquinn@pro-gsplus.cts.com | |______________________________________|