When it's done, though, it should be nice. It's basically two classes, Bitmap and DrawableBitmap. Bitmap is just a tight little buffer full of bits and functions to copy and move the bits from one bitmap to another. DrawableBitmap looks exactly the same from the outside, but it's got extra functions to draw the bitmap to the screen. Even though they look the same on the outside, they're quite a bit different on the inside. A DrawableBitmap is currently a DIBSection, which is a Windows bitmap that allows you to futz with the bits. Eventually though, I could make it a GameX screen-buffer or a DirectDraw surface.
My goal is to have a single DrawableBitmap for the game. It'll be the size of the screen. Everything else will be my little custom bitmap objects that draw to it.
One idea I'm toying with is automatic portrait-landscape adjustment. Some games work better with a horizontally-oriented screen, but palm devices all have tall vertically-oriented screens. I've been toying with the idea of making a landscape mode that'll rotate bitmaps as they're loaded and will transform the X-Y coordinates as they're drawn.
It'd be fairly easy to do at the bitmap level. For the program itself, though, I'm not sure how I'd adjust things. For example, consider the screen layout for ThinkTank. For a vertically-oriented screen, I could simply tuck all of those score-boxes in a row on the bottom. I'm just wondering if there's a way for a program to look at the size and orientation of the screen and decide the best way to arrange things. It'd be awfully neat if I could just define the size of the rectangles and have the base classes automatically arrange them. I'll probably end up doing it manually, but it'll be an interesting challenge nonetheless.
While you're listening, lemme get your opinion on something. . .
Unfortunately, most palm devices don't have little joy-buttons like the Casio devices have. Most of 'em either have a horizontal row of buttons on the front or a vertical row of buttons on the side. Controlling something like a pacman with a row of buttons just doesn't work (trust me, I've seen games that do it). Looks like I've got two choices for directional control.
One way would be to have the stylus "guide" an on-screen object. For example, tapping above the pacman would make him move up. Tapping to the right of the pacman would make him move right, etc. It'd be pretty obvious to the user, but there's a chance that the user could obscure the screen with his hand while playing.
The other way would be to have a little on-screen graphical joystick that the user could control with the stylus. It'd require less stylus-movement and there's less chance that the user would obscure the screen, but it could be more cumbersome and less obvious. I'd also need to be able to move it to different corners of the screen to accomodate left/right handed users.
Any ideas other than "do both"?