🗒 Cheat Sheet← Lesson
BitWithBite
Pygame Mastery Worksheet

⚡ Physics

Module 12 of 20 · Level ★★☆ · Time: 40 min
SCORE___ / 20
NameClassDate
After this worksheet you can
Apply Euler integration each frameSimulate gravity and bouncingExplain elastic collisions and momentumCompute projectile launch velocity
📚 Quick Recap

Physics in Pygame is built from Euler integration (acceleration updates velocity, velocity updates position), gravity as a constant downward acceleration, bouncing via a restitution coefficient, and projectile motion decomposed into x/y velocity components with trigonometry.

🧠 Section A · Concept Check ● INTERMEDIATE 4 × 1 = 4

1What is the correct order in Euler integration each frame?
2What does a restitution of 0.7 mean for a bounce?
3Why is vy negative for an upward launch angle in Pygame?
4What is momentum?

🧮 Section B · Problem Solving ● INTERMEDIATE 2 + 3×3 = 11

5Gravity is applied as a constant acceleration each frame.
6For equal masses, an elastic collision simply the velocity components along the collision axis.
7Write the two lines that update velocity then position given acceleration and dt.
8Why does a bouncing ball get progressively shorter with each bounce when restitution < 1?
9What two trigonometric functions split a launch speed into x and y velocity components?

🚀 Section C · Challenge ● CHALLENGE 5

10A bouncing ball demo has 15 balls that should bounce off screen edges AND off each other. Explain what two physics techniques from this module are needed, and in what order you'd apply them each frame.
💭 Reflection — the most useful thing I learned:
A ___/4   B ___/11   C ___/5   Total ___/20 Teacher's Signature Parent's Signature
✂ answer key — fold or cut before handing out

1-B   2-A   3-B   4-A  |  5 downward   6 swaps   7 = vel += acc * dt; pos += vel * dt   8 = restitution < 1 removes a fraction of velocity (energy) on every bounce, so each successive bounce reaches a lower peak height than the one before   9 = cos() for the x-component (vx = speed*cos(angle)), sin() for the y-component (vy = speed*sin(angle))  |  10 = apply gravity + bounce-off-screen-edges (restitution) to each ball every frame for the world collision, then separately check each pair of balls for overlap and apply the elastic collision (velocity swap along the collision axis) formula — gravity/bounce handles the world, the pairwise elastic collision check handles ball-to-ball impacts

📄 Need offline practice?Download the print-ready PDF or open the one-page cheat sheet.
⬇ Worksheet PDF 🗒 Cheat Sheet