A.J. Franzman, on Wed Mar 28, 2007 8:40 PM, said:
First of all, terminology: your first pair of images show the sprite "rotated" 90 degrees, the second and third pairs show it "flipped" (mirrored is not a noticeable change with this sprite since it's horizontally symmetrical!)
Flipping a sprite in software is easily doable, as is mirroring. Rotating 90 degrees is not too difficult but is easiest if it's square.
Even if it's 8 pixels wide and 8 pixels tall, the sprite will probably look stretched or squashed when the data is rotated 90 degrees, due to the aspect ratio of the pixels. But you'll need to define the rotated image in ROM anyway, so you could adjust the image a tad to keep it from looking too stretched or squashed.
A.J. Franzman, on Wed Mar 28, 2007 8:40 PM, said:
The VCS has no provision to do any of these "automatically", nor can it display a single shape in multiple orientations by using the standard multiple-copies method.
You should have time to store the new image for the copy, as is done in the score technique.
So you'll need to define four versions of the cannon in ROM, one for each direction it can be pointed in-- so you'd need eight versions if it can be pointed in eight directions. And if you're going to display two or three copies of the cannon on a line, and you want to rotate them independently, you'll need to change the player data before the next copy is displayed. That usually means the copies need to be stationary as far as their horizontal positions are concerned, due to the precise timing required for changing the player data between the different copies.
Michael