Posted 31 January 2011 - 06:14 AM
I made my own "fork" of megazeux, and added my own bunch of counter functions (to get the hang of C and finding my way through the mzx source) with varying degrees of hackishness...
sprN_active - if not zero, the sprite's position is automatically updated each cycle based on my new sprite counters (probably not the best name for it though)
spr_div - sets how many sub-divisions a char is broken down into when using my new sprite counters (which currently can be set < 1 because I suck)
sprN_xx/yy - just more precise versions of sprN_x,y.
sprN_velx/y - Set's the velocity in which the sprite will travel every cycle
sprN_accx/y - set's how fast the sprite will accelerate each cycle (automatically updating the velocity counters)
Having just written that down, I sort of just realized that you can't really just let megazeux update the sprite's positions on their own automatically, since there would be no way to manage collisions on your own, but replacing the sprN_active for an update function would work just as well. Also, if we were to implement these counters (or whatever they would be translated into in debyte), i think we should implement something that allows you to test for collision along the path that the sprite moves along.
Also, I was thinking about how you could make it easier to draw pixel precise stuff without something like logitech's draw command. My idea is to make a second charset that can be written to, but not drawn (much like the vlayer), and then be able to draw whole chars from that set to a specific point on to the charset in a way that's similar to Char_X, Char_Y, PIXEL, but char specific. To tired to figure out how it'd work out though.
Lastly, there needs to be a function that lets you write a single char/color to a block of Overlay/vlayer, because loading a mzm to do just that every cycle can't be fast...
<Nadir> mzxers don't make GAMES, usually
<phthalocyanine> they make experiences.
<Nadir> demos, more like
<Nadir> a glimpse into what could have been if mzx wasn't such a bore to work with
<Nadir> actually, i'm being unfair
<Nadir> i would have made mzx games if it was capable of running on more than 20 computers worldwide in 1998
<Nadir> >:D
<%Alice> functor
<%nooodl> i hear C++ has a thing called functors and they're completely different from Haskell functors...
<rorirover> the result is the most horrid thing in C++, it's basically black magic and it transforms any code you're writing into some eldritch monstrosity