Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

3akev/pyasteroids

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pyasteroids

An Asteroids clone, made with python and pyglet. Docs: https://pyglet.readthedocs.io/en/latest/index.html

Art from opengameart.org

TODO:

  • Draw player and a few asteroids
  • Asteroids come in 3 sizes: big, medium, small.
  • Asteroids move in random directions at constant speeds
  • Player moves as follows:
    • W -> Moves the player in the direction the player is facing
    • A -> Rotate the player counter-clockwise
    • D -> Rotate the player clockwise
    • S -> Brake, that is, gradually reduces speed
    • Player is in space, so speed remains constant if no outside force
  • The player and asteroids loop to the other side when going over the border of the screen
  • Player can shoot bullets
    • Bullets move in a constant speed, in the direction the player was facing when fired
    • Apply a cooldown for shooting bullets. That is, at most one bullet every, say, 0.3 seconds.
    • Bullets that go outside the screen are destroyed.
  • Collision checking with asteroids(See: AABB collision)
    • If player collides with an asteroid, remove one life. If last life, game over. Player starts with 3
    • If a bullet collides with an asteroid, destroy the bullet and the asteroid.
  • Asteroids split when destroyed:
    • If it's a big asteroid, it splits into 3 medium ones.
    • If it's a medium asteroid, it splits into 3 small ones.
    • If it's a small asteroid, it doesn't split.
  • Split asteroids gain a random increase in speed as well as a reasonable change in direction
  • Asteroid spawning:
    • Spawn a group of asteroids as soon as there are no more left
    • Asteroids spawn around the edges of the screen
    • Asteroids never spawn on top of the player
  • Sound(See Bfxr):
    • Shooting bullets plays a shooty sound
    • Asteroids being destroyed plays an appropriate sound
    • Moving with W activates the engine, playing an engine humming sound
  • HUD
    • Draw current score.
    • Show a heart(or similar) for each life left.
  • Scoring:
    • Destroying asteroids increases score.
    • Dying resets the score.

Additional polish:

  • Game over screen:
    • Show score
    • Button to restart the game
  • Pause screen: ESC to pause
    • Nothing moves, nothing is processed
    • Draw the word "PAUSED" while paused
    • ESC again to unpause
  • Enemies(UFO?) spawn randomly
    • Enemies shoot at player
    • Destroying enemies increases score
    • Enemies move erratically

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.