Thursday -- The Plan For Today
Today I hope to get the bulk of the work done. There isn't too much to do, but it needs to be done. I've been mostly making the code up as I go along, but it's still coming along. I should have something that can be tested some time today, and probably at least have it fully playable and working by tomorrow, possibly with the option to tweak some of the settings of the level generator.I'm giving the responsibility for collision detections to the player object, as well as responsibility for movement. I've also decided that the level generator object will have a platform maker-and-positioner as one of its attributes. That should greatly simplify writing the level-generating code. I've made five different platforms:Four normal ones and one for the goal point of the level. I've also made sprites of branches complete with string holding on to the platform, and also some of string coils for attaching one platform to another. The platform maker will position those automatically.
The level generator which will operate the platform maker will have the following settings, which I will add the option to tweak from a menu if I have time:
1.Length of Level (In feet, automatically converted to inches, then to pixels)
2.Density of Platforms (By how many per five feet of level on average)
3.Platform Height Range (By how many feet the platforms can be apart height-wise)
4.Platform Height Preference (By what part of the screen)
Also:Option #4 will have more of an effect as the value of option #3 decreases
The acceptable ranges of value for these parameters are as follows:
1.Ten to Fifty
2.One to Four
3.Zero to Three
4.Low, Middle, or High
Also:Number settings from menus will be in the form of "Sliders" that will only allow whole numbers, settings from within the code, though, can be any number.
(It's worth noting that I've put this under the GPLv3, so you can go ahead and change the level generator around so that it can accept different values. It's fine. I'm just setting mine up so that it can only be set up to use those values)
In the menus, the up and down keys will change the selected menu item, and enter will pick it. Also, moving the mouse over an option will select it, and clicking it will select it.
The one exception to this design will be the level generator settings menu. There, the left and right keys will select the option, the up and down keys will change the setting slowly (IE:Increase or decrease by one at a time), and the page up and page down keys will change the setting quickly. (The Density by two at a time, Length by five at a time, Range still by one at a time, and will set Height to High with Page Up, Low with Page Down). The mouse will work as well. Left-clicking an option will increase it like page up, except for Height, which will increase by one. Right clicking does the same, but decreases it. The mouse wheel will change values by one, increasing them when it is rolled up, and decreasing them when it is rolled down.
I've also worked out the controls. The A and D keys will make the player move left and right, the space bar will make the player jump, and the Q, W, E, and R keys will make the player throw the string at different angles. I may implement using the mouse to throw string, if I have time.
The player will be able to run at about five feet per second, jump up about five feet, and throw the string about three feet.
So... I have a plan for this, and I'm sticking to this one. :D
Nice and simple, easy to implement, and should be fun to play, too. ^_^
Now I'mma get back to coding. ;)