ICS3U Culminating - Collision Detection
This is your programming culminating activity for the course. It is worth 15% of your final grade.
Description:
Collision systems are an integral part of games. You will be creating a demonstration program in Pygame for 3 types of collision: • Square • Circle • Separating Axis Theorem (SAT)
Resources:
Collision Types - This link has information about how to program all 3 types of collisions. It covers the first two in great detail. Separating Axis Theorem - More detail about SAT collision More SAT And More SAT Aaaaand More...
Below are some picture that shows one possibility of what I am expecting to see: First we see two circles that are colliding. The colour of the circle indicates that collision is happening.
Second we see an example of squares that are NOT colliding. The white colour indicates that they are not colliding.
REMEMBER: These are just examples. Your version should look different!
Requirements:
You will create 1 Python file that uses Pygame.
Evaluation:
Below are the requirements to achieve specific percentages for you Knowledge (25%), Thinking (25%) and Application (25%) portions of the mark for this assignment. 50% • Blank screen with 2 shapes on it.
55% • Shapes on screen move on their own and bounce around on the screen within the borders of your window
65% • Square Box Collision
70%
• On screen indication that collision is happening. This can be done by: o change the colours of your shapes o text indicator on the side of the screen o some other approved method
80% • Circle Collision
82% • Interface with buttons or some way of changing testing modes
84% • Onscreen indication of which mode is being tested (Square, Circle, SAT)
88% • Use of more advanced programming concepts (procedures/functions) to reduce code size and increase readability.
98% • SAT Collision
99% • Shapes that are rotated and still work with SAT collision.
100% • Shapes that can be moved by clicking on them and dragging them around
Below are the requirements to achieve specific percentages for your Communication (25%) mark of the assignment. 50% • Header at the top of the file with all header sections completed.
75% • Inline comments explaining tricky bits of code
100% • Meaningful variable and procedure/function names