Based on @dapontes' project "Billiard with three circular obstacles" (https://scratch.mit.edu/projects/30099508/), this project adds a second moving ball. From his project I got the idea of doing simple after-hit angle calculations using helper objects like the direction from each ball to the other and its tangent. Thanks @dapontes!! NOTE: Press space bar to show/hide those helper objects. Pros: - No physics involved, just angle calculations. - Simple and understandable code. - Very few variables. Cons: - This technique does not use clones, so each moving ball must have the code to check if it's colliding with each and every other moving ball, which makes it almost non-viable for billiard modalities that use many balls, for instance. It could be good for carambole billiards (3 balls), though. Challenge: do it with clones! - Since physics are not applied (no elastic collisions, no friction, no mass, constant speed, etc), movement is not as real as in projects that do apply physics (a good billiard game is https://scratch.mit.edu/projects/10079318/). - Sometimes bounces are not very real.
Thanks to @dapontes!!