16 comments

[ 2.5 ms ] story [ 45.2 ms ] thread
Something I made with pure JS and the HTML5 Canvas. Play it, have fun, and if you have any thoughts on the quality of the source code, please let me know!
I like it. It harkens back to the original vector art version from '79, although you really should make the asteroids look more asteroid-y. If you make them circular it's still quite easy to do your collision detection and they'll look a lot better.
My collision code is overly simplistic, and so I went with squares to give the asteroids some jagged edges. I should totally try out circles to see if they look better, though. Thanks!
I did a similar thing some time ago adding rigid body collisions on the asteroids, which makes the game way harder.

https://github.com/santialbo/Asteroids

play here: https://rawgit.com/santialbo/Asteroids/master/default.htm

That's a really cool version, but you need to give some invincibility when you respawn, otherwise one death can be equivalent to 2-3 if there happen to be asteroids in the middle area at the time.
It was fun to look at your source code. About 600 lines.

I really liked the arcade version of asteroids, so me and a friend wrote a version in PDP assembler for a class project. I wish I still had the source code, but let's just say it was not as compact (e.g., we had to do the video driver, random number generation, trig, etc.), and took a couple of weeks.

Although the basic OO design is the same, which is cool.

Asteroid collisions completely change the game! You also nailed that vintage look! Nice stuff! I'm diving into your source code for polygons in detail!
Been a while since I played Asteroids... is this any different from the original, other than the asteroid shapes?

Very clean code btw.

Thanks for the comment. It's ideally supposed to be the same as the original. If it is not, it's because I haven't implemented some features yet (spaceships, slowing down eventually if you don't thrust, ...).
On my browser (Safari), pressing arrow keys scrolls, making the game really hard to play. You should be able to `event.preventDefault()` or something to prevent scrolling.
Ah yes, the scroll is annoying! I think I tried some sort of preventDefault thing, but definitely need to get that working. Thanks!
At first, I blasted everything in sight.

Then I noticed that if it wasn't going to hit me on the pass and wasn't the smallest size, that was bad.

I started waiting on the first big with a direct line, taking that guy down to basic and repeating.

Zen Astroids. :)