Grading and Taking it Further
Grading Specifications
To receive a grade of B, you must have the following:
Component
class,CreateComponent
, and integrating components with actors is implemented. TheSpriteComponent
subclass is declared even if it doesn’t work yet- Sprite loading works in
Game::GetTexture
andSpriteComponent
can draw, minimally with the first test sprite. - You have the required screenshots for Practicing Debugging, Part 2, and you have added the draw order support.
- You have a
Ship
class.Actor
/Component
classes have the requiredUpdate
/UpdateGame
functions.Transform::GetForward
works. You have aMoveComponent
that minimally can move and rotate the ship, even if hardcoded (as you can test here). Input
/HandleInput
is implemented, and the ship moves on screen using W, A, S, D. PressingW
moves forward while pressingS
moves backwards. If bothW
andS
are pressed, the ship shouldn’t move forward or backwards. PressingA
rotates the ship counter-clockwise while pressingD
rotates the ship clockwise. If bothA
andD
are pressed, the ship shouldn’t rotate. It is possible for the ship to move and rotate at the same time.WrapComponent
works to wrap objects around the screen. Asteroids initialize with random positions and rotations, move on screen, and wrap around when they go off screen.- Pressing spacebar fires lasers, but you can’t shoot more than one a second, and lasers will disappear after 1.5 seconds if they hit nothing.
- Lasers can collide with asteroids and in the event of a collision both are destroyed.
Keep in mind that for an A, you will also want to check for warnings on your GitHub actions, and make sure you are writing good quality code. We will do a code review and let you know what changes we think you should make, and you will have an opportunity to apply those changes to improve your grade during the regrade period.
For a C, you need to complete at least half (4/8) specs.
Taking it Further!! (Optional)
Here are some ideas on things you could add to this lab. As a reminder, doing this will have no impact on your lab grade. You do not need to implement any of these to get an A. Similarly, you could implement these and not get an A if you have other issues! Adding anything extra is purely “for fun” and for your own personal education and enjoyment.
- Make it so when you kill a big asteroid, it splits into 4 smaller asteroids. Then when you kill those smaller asteroids, they just go away
- Add hit points to the ship. Every time you collide with an asteroid, you lose a hit point. If you run out, you die. (If you do this, don’t make it impossible to test the other parts because you die too fast.)
- Make it so when you kill all the asteroids on the screen, new ones spawn and move faster