1-19-08

No code update, because I suck, but I have built the new dodge animations (which required some major modification of the frames I had) so now I can install them into the system. It would be nice if I was past using placeholder (Zero) animations, but them’s the breaks for now.

Further, I have an idea to line up the combat. I will assign a specific variable based on enemy skill (and consequently, enemy type). This will be the actual hit frame. When an enemy attacks, and the correct defense button is pressed, the system will take the enemy’s current frame, and divide by the total number of player dodge animation frames. The number left will be how long to display the character animation frames.

(it sounds confusing because it is. By “Frames” I mean “Cycles.” Animation Frames usually take several cycles to show, since the game runs at 30 “Frames” or computer cycles per second).

So, in effect, it will synch the animations so that just as the enemy would hit, the attack will be blocked. After that, the animations can play normal since they don’t have to synch up anymore.

When this is in place I can install the Deflect code and finish the combat system. I also had an idea. It is fully possible, that there will be more block animation frames than there are cycles left before the enemy hits. In this case, I think I will go ahead and also count that as a Deflect. So the player will either be able to mash the attack button at the right time and issue a deflect, or hit the block at the last possible moment. By last possible moment, I figure that if there are 4 block animation frames, it means that the would have to be 3 or fewer cycles left. Running at 30 cycles per second, that means that if you hit the block button in the last tenth of a second before the hit, then you get a free deflect. So it’s more of a, “I got lucky” thing. Although I’m sure that it’s possible that someone out there will figure it out and be able to always block like that.

Leave a Reply

Your email address will not be published. Required fields are marked *