| ▲ | Pong Wars on the Commodore 64(imrannazar.com) | |||||||||||||
| 12 points by Two9A 5 hours ago | 9 comments | ||||||||||||||
| ▲ | kleiba2 4 hours ago | parent | next [-] | |||||||||||||
Fun fact: a bouncing ball was one of the first programs that the C64 User Guide taught you: https://archive.org/details/commodore-64-user-guide/page/n57... Yes, that's right kids: the C64 came with a manual that didn't just teach you where to flip the power switch of your computer but actually how to program it! | ||||||||||||||
| ▲ | Luc 4 hours ago | parent | prev | next [-] | |||||||||||||
This seemed promising at the beginning, but do yourself a favor and skip to the end to see the hilariously slow end result. | ||||||||||||||
| ||||||||||||||
| ▲ | Two9A 5 hours ago | parent | prev | next [-] | |||||||||||||
Over the years I've written a bunch of things in the orbit of retrocomputing, the largest of which was an incremental game based on a C64 emulator. Somehow I've never written anything substantial for the C64 itself; this post documents my learning while implementing a graphical effect in assembly language, over the course of twelve thousand words and three digressions into side quests. Let me know if this was entertaining, useful or even both. | ||||||||||||||
| ||||||||||||||
| ▲ | Hugsbox 3 hours ago | parent | prev | next [-] | |||||||||||||
This would make a pretty sweet screensaver back in the days when screensavers were more common. I could see myself as a kid staring at pong wars for quite a while. | ||||||||||||||
| ▲ | juancn 4 hours ago | parent | prev [-] | |||||||||||||
Nice! Why not just go full character mode? The smooth motion is nice, but a bit of overkill, also it adds complexity to the collision code. I suspect this can be done using a variation of Bresenham's line algorithm for the trajectories (keeping delta X and delta Y for each ball) and avoid most/all of the complex trig and math. Just addition and subtraction and a few sign changes. The delta can be kept at a higher resolution than the grid (i.e. 16x so a mask can be used instead of division), so you can fudge the collision with small delta changes on impact using the SID as a RNG. | ||||||||||||||
| ||||||||||||||