Super NES Programming/Multijointed Sprite Bosses

Multi-jointed bosses are an efficient, but rarely used, technique to animate cool looking bosses. Unlike most bosses where the entire boss is one sprite, with multi-jointed bosses, every body part is an individual sprite that rotate around each other.

Here is how to program a simple robotic arm:


1) Draw the sprite for the shoulder, upper arm, elbow, lower arm and hand at 16 equally spaced angles.


2) Now you need to define 10 registers:

a) shoulder angle

b) elbow angle

c) shoulder angle key frame

d) elbow angle key frame

e) shoulder x

f) shoulder y

g) angle

h) amplitude

i) result x

j) result y


3) Write a routine that converts between polar coordiantes (angle,amplitude) to rectangular coordinates (x,y).


4) Write a routine that displays a sprite with the center being defined by resulting rectangular coordinates, with the angle being used to determing the sprite's attributes.


5) Write a routine that increments the shoulder and elbow angles towards their coorisponding key frame angles.


6) Now put all this together in one big routine:

- The bosses AI determines the key frame angles and shoulder coordinates.

- increment the shoulder and elbow angles towards their coorisponding key frame angles.

- copy shoulder coordinates to result coordinates

- copy shoulder angle to angle

- display 16x16 shoulder sprite

- set amplitude to 24 pixels

- convert between polar to rectangular coordinates

- display 32x32 upper arm sprite

- convert between polar to rectangular coordinates

- display 16x16 elbow sprite

- copy elbow angle to angle

- convert between polar to rectangular coordinates

- display 32x32 lower arm sprite

- convert between polar to rectangular coordinates

- display 16x16 hand sprite