Topic for Kerm
I have no idea what this is yet but it's isometric.



EDIT: lol foreground


Recently got a clipping sprite routine working so I can draw the outer edges.
Tiles completely on screen are drawn using an optimized & unrolled loop which is way faster.

The reason it's not full screen is I'm drawing to an in-memory buffer, which I then copy to the LCD. This makes transparency a lot simpler, and it also means I can unroll the copy-to-LCD code for really fast full-screen transfers.
Width is 128 pixels because I needed coordinates to fit in a signed int.

Idea I have btw for anyone else that might wanna do isometric stuff:
I'm splitting the xlibc color palette in half.
Foreground will be drawn using only odd colors.
Background will be drawn using only even colors.
Reason is I can then use the 1s bit to determine if something is in the foreground or background, so when I draw movable sprites I can mask them to be hidden by the foreground. That way I don't actually have to draw the movable sprites into the pixel buffer behind the other stuff. I can write them directly to the LCD after everything else is drawn and move them around without redrawing all the tiles. IDK if this is a good idea but it might work *shrug*.
Very cool! I have a project that I wanted to write an isometric engine for, that I'd really, really love to use something like this for. I don't suppose you'd be willing to license this out to me for the project, if I get to work on it later this summer? Wink I'm quite impressed with the ideas here. Have you considered making it double the resolution and full-color (which would make the even/odd idea even easier) on the TI-84+CE, or are you sticking with a CSE/cross-platform engine for now?
Once I get a CE I'll make it work on the CE with full color.
Since the CE's LCD is memory mapped, it means I don't have to bother with a separate memory buffer to simplify transparency. That combined with the ez80 processor will make full resolution, full color easy to do.

And yeah you're free to use it once it works better. Maybe you'll find some ways to optimize some of my graphics routines too.

Also I guess I never explicitly stated why the memory buffer makes transparency easier. Obviously I'm not having any color-mixing going on since I'm using a 256 color palette; it boils down to the fact that you can skip a pixel in memory no problem, but you can't skip a pixel on the LCD very quickly. Then I can just draw my isometric tiles as squares with transparent pixels on the sides. Technically they could bleed into each other too I guess but that'd be trickier.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement