Draw a UML diagram to show the relation between the classes cCritter, cCritterArmed, and cCritterBullet.
How does the cCritterArmed::update method know when to shoot a bullet, and how does it prevent you from shooting the bullets too close together?
What steps take place when cCritterArmed::shoot is called?
Why do we need a cBullet::initialize method in addition to the cBullet constructor?
How does cBullet::collide make use of the cBullet::isTarget method?
Why do bullets by default have a higher _collidepriority value than regular critters?
How does the cCritter::damage method avoid having a critter getting damaged two times in a row by two nearby bullets?
What causes a cCritterArmedRobot to keep shooting, and what controls how long it waits between shots?
What are the default values for the cCritterArmedPlayer fields _attitudetomotionlock and _aimtoattitudelock? Why does the Pop Framework use these values?