First thing I did, I decided to move up the playfield so that it is visible on Kylie when windowed. Had to alter the pit itself and readjust the variables for when it was done rising, but I did it. Results: not only is everything plainly visible when windowed, but I also accidentally fixed a problem. Sometimes, if a cloud generated and you were right on top of it, you wouldn't be able to hit it with a water jet. If the sprite for the water was generated directly overlapping some part of the cloud, the collision detection didn't work. But now, the cloud starts high enough and the water jet starts low enough that this is no longer an issue.
I spend Saturday working on the character art. I wanted some sort of fairy for the player character. So I started working on, you should pardon the expression, the sprite for the game. I put my chibi skills, currently being honed with Sound Waves, to work. Unfortunately, I was really dreading it. Every time I play Basset Hound Games, I am aware of the slight changes in the head and body of the basset that just shouldn't be there if you have any professional skill. The idea of a sprite where the whole thing jiggles like a squiggletoon (think along the lines of Dr. Katz) just filled me with dread.
Then, brainstorm. I decided to build the sprite out of individual sections. The parts I would be changing constantly, the legs as the character walks, I measured and tweaked within an inch of their lives. Body, wings, and head? All one form that I cut and pasted into the sprite template. The swinging arm? Just the arm rotated in the GiMP and pasted in. Testing the results, I had a very nice animation of a chibi sprite, and I set to work coloring it. But by that point, it was late, and I had to get going to sleep.
Big mistake. Sunday morning, my dad suddenly gets the bright idea to celebrate Father's Day. I don't know why. We haven't done anything Father's Day oriented in at least a decade. He wants to go to the movies and watch The Proposal. In fact, he also feels up to catching Star Trek again. I'm mentally calculating the time I'm losing, and it only gets worse. Mom wants to go shopping, and then, because one of my uncles lives in the area, maybe visit him. My dad plays the guilt card -- "Come on, it's Father's Day." So I load up my pack and head out.
Getting home around 6PM, my body wants to go to bed, and my brain refuses to focus on the tasks my will is dictating. I realize that I am looking at another lost weekend unless I do something drastic. I reach into my supply of herbals and pull out the 1-2 punch of ginseng and ginko. Not everyone reacts to herbs, but my body does. They kick in within minutes and boost my system for three to five hours, depending on how depleted I am when I take them. So, like Popeye and Underdog, I ingest an external stimulus and get to work.
Oh, I love that crap. In short order, I had finished coloring the sprite's sprites, got them positioned correctly in the template, adjusted for left or right facing, and incorporated it into the game, removing the Sailor Jupiter sprites as I went. I got them in and tested it. The character and the animation looks just adorable.
At this point, given the image above and the imagery and subject matter of Sound Waves, I would like the record to show that I do in fact date and have sex with women. Yeah, it's the testosterone talking, what of it?
Round counter? I couldn't figure out how to make it work. Any time the computer hit the instructions, it would continually increment the round counter instead of only doing it once. Once again, the difference between the scripting engine and an actually C++ program. I decided to cheat. I created a separate variable, the old round counter. When the instructions begin, it checks to see if the values are identical. If they are, it increments the round counter and does it's stuff. Things freeze as long as the two round counters don't match. When everything is set, I increment the old round counter, making them match. But at that point, the engine no longer needs the instructions associated with the round counter. Result: it only increments once each time instead of rocketing into triple digits. I then created the round display, and it automatically shuts itself down thanks to a five second timer associated with it.
You can see the two displays in the upper corners. When I program, I will sometimes create a display for variables I am working with so I can see exactly what the hell is going on with them. I couldn't get the water level to work right until I did that, and discovered my code was treating the water level as a negative number, and I was putting decisions based on positive numbers. This means that the results would never evaluate properly. Two minutes of searching the code and reversing symbols, and it worked perfect. Those two counters will be gone when the game gammas.
Having goaled for the weekend, I decided to push. Remember, computers do what you tell them to do, not what you want them to do. The sprite would just keep walking left and right, even off the screen. Gotta do something about that. A little work, and now the sprite only goes to the edge of the pit, no further. Took some work, I'm still not sure what I did wrong -- the sprite would go to the edge and get stuck there, unable to move away. But with a little Mythbusters magic (read that: random tinkering and dumb luck), I got it fixed. Just don't ask me what I did, I still don't know.
Oh, and after going through my stock music library, I have some music that is appropriate and legal for me to include.
Goals for next weekend? The framework of the game is in place. Now, I need to fix it's biggest problem. IT'S BORING!!! The clouds generate very slowly. This means you spend most of the game waiting for something to happen. No matter what the Shenmue nuts say, that is the kiss of death if people are expecting a game to let them actually do something. So, with everything else testing well, it's time to ramp it up. Also, I want to put a sprite animation in for when the game is over, just a little extra polish.