Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.
|
Forum Index : Microcontroller and PC projects : OidZone for CMM2 New Youtube video!
Author | Message | ||||
berighteous Senior Member Joined: 18/07/2020 Location: United StatesPosts: 110 |
Demo Youtube Video for my CMM2 game OidZone |
||||
Womble Senior Member Joined: 09/07/2020 Location: United KingdomPosts: 267 |
You are still teasing us |
||||
berighteous Senior Member Joined: 18/07/2020 Location: United StatesPosts: 110 |
I still haven't shown the multicolor fonts... |
||||
vegipete Guru Joined: 29/01/2013 Location: CanadaPosts: 1082 |
You are certainly right about the speed of BLITting. I just had to have a go and typed up a test version of rocks in space. The speed is quite tolerable with 100 asteroids, 2 possible animation sequences of 31 steps each and random speeds and orientation with a glyph size of 55x58 pixels. And this on the 800x600 (8 bit) screen. A more sensible size of say 32x32 pixel glyphs on the 320x200 screen should be a bunch faster. This code does however identify a BLIT bug. If a BLIT is positioned partly off screen with mirroring active, the resulting pixels are not drawn correctly. I saw this bug earlier on the F4 Armmite too when I was creating a mouse interface. (I think) If the BLIT location is less than 0 and mirroring in that direction is active (ie: y_dest < 0 and mirroring = &B010 OR x_dest < 0 and mirroring = &B001 OR both) then the wrong part of the BLIT rectangle is drawn at the edge of the page AND the other piece of the BLIT rectangle appears on the opposite side of the page. Watch asteroids along the edges of the screen in this demo to observe the effect. Not all rocks show the bug because mirroring is randomly chosen from 0-3 in line 33. (And 4 is added to not copy black pixels.) Change line 33 to "aloc(i,6) = 4" to show no bug. (No mirroring) Change line 33 to "aloc(i,6) = 5" (or 6 or 7) to show the bug with all rocks. Visit Vegipete's *Mite Library for cool programs. |
||||
berighteous Senior Member Joined: 18/07/2020 Location: United StatesPosts: 110 |
I blit to a frame buffer 100 pixels higher and wider than the nebula background so there's 50 pixels off each side to cover things drawing off screen. They're still on the buffer but they're cropped to the nebula so nothing breaks trying to draw out of bounds. Everything has to animate for me. Even if it's just blinking lights (or blinking eyeballs for my saucers) |
||||
vegipete Guru Joined: 29/01/2013 Location: CanadaPosts: 1082 |
I take it you do not try to immediately wrap an object to the other side of the screen? For example, an asteroid must completely leave the top of the screen before it starts to reappear at the bottom? Visit Vegipete's *Mite Library for cool programs. |
||||
berighteous Senior Member Joined: 18/07/2020 Location: United StatesPosts: 110 |
yeah, as soon as it goes off the screen I wrap to to the other side off screen. It has to leave completely. You can't wrap it before it's off screen! That's what the frame buffer is for. |
||||
capsikin Guru Joined: 30/06/2020 Location: AustraliaPosts: 341 |
I see the two player option on the screen ... Edited 2020-08-14 09:47 by capsikin |
||||
berighteous Senior Member Joined: 18/07/2020 Location: United StatesPosts: 110 |
yes indeed. Turn based, or cooperative, or adversarial spacewars but with asteroids and enemies. |
||||
Print this page |