Apparently GameMaker works in both Word and Byte format. As I said previously, I figured I could reduce Qword negative resultants by adding $100 and then ANDing the whole thing by $FF. On a whim, I tried taking out the $100 to see what happens. I thought it would be needed to account for "super negatives", like you see when working with directions greater than 720 or less than -720. I thought maybe the same would be true with negative Qwords in GM. As it turns out, GM will treat -n & $FF as a byte and truncate it properly even without the +$100.
That trimmed down my code a few cycles!
So here's an update on what's been recently completed:
Collision code has been further modified to allow for floating platforms. Since CV3 gave priority to solid ground, thus making Trevor step off a platform if it passed through the ground, my prt_ground generation script now REALLY shines! Because the prt_ground objects are created after all the pre-set objects, they have higher id values than platforms, so I can just check for collision with the max of the two ids. ... Whether or not this is necessary or redundant, I'm not sure and don't particularly care right now.
So yes, the code for floating platforms is complete. I haven't finished horizontally floating platforms just yet because they have an extra variable for when to start their movement (so they appear from off-screen before Trevor reaches their xstart). Yes, that would be simple enough to just code myself, but I want to see what Konami did -- out of endeavor to learn more about 6502 ASM.
Medusa Heads are done. I think normal bats are done, but I'll have to double check. Sleeping bats aren't done yet. Well, they are but not efficiently. ... HA! As if using ASM in GML is actually efficient! I'll be working on Winged Demons next, now that I've got floating platforms figured out.
The collision code is being continuously modified, so don't get too comfortable with it.
No comments:
Post a Comment