Git Product home page Git Product logo

python-arcade-tuesday-01's Introduction

Asteroids

We are building a clone of the classic arcade game Asteroids with Python and the Arcade library. We are using this video as reference.

If you live in Copenhagen (Denmark) and want to learn to code with us, go to opfinderklubben.dk.

Setup virtual environment

  • python3 -mvenv .venv
  • source .venv/bin/activate
  • pip3 install -r requirements.txt

To use highscores you must create a highscores_config.yml

Example of a valid 'highscores_config.yml'

# URL to api
api-url: "https://myapi.example.org/"

# Key of the game inside of the api's database
api-game-key: "MyGameKey"

# Secret token required to post to the database
api-access-token: "MySecretToken"

python-arcade-tuesday-01's People

Contributors

miho42 avatar leoleonora avatar tobiasbp avatar vincent09123 avatar gilbertenevoldsen avatar

Watchers

 avatar  avatar  avatar

python-arcade-tuesday-01's Issues

Player shots

Player shots are maybe living a bit too much?

It is entirely up to personal preferences, I just think they're a bit too sejlivede (:+1:).

Add asteroids

Asteroids need to flow through space (have x & y velocity). They wrap on screen edges like the player.

  1. Create Asteroid class
  2. Create asteroids sprite list
  3. Draw asteroids
  4. Asteroids move
  5. Asteroids wrap

Highscores

Wow! The game does not display score by the end of the game (I think)

It doesn't save the score either...

:)

Lives does not work

When hit by asteroid, player lives goes from 3 to 2 to 3.
Player never gets less than 3 lives

Unified wrap

Wrap code is duplicated. Make sure we only have the wrap logic once.

Player is clearly hit

Player has to reset in some kind of way, when hit by asteroid. It has to be clear to the player, when they loose a life.

Player_shot graphic and angle

Player_shot angle doesn't match the graphic, which results in "magic numbers" scattered around the code, "fixing" the code.

If we change the angle, player_shot may turn out to be a real angel.

Shot_wraps

Shots have to wrap as well.

Everyone should be treated equally, and the shots do not deserve to die when reaching the boarder of the universe, when everybody else survives.

Shots should instead have an already decided livstid.

Player wraps

When exiting the screen, the player must show up on the opposite side. Exiting on the left side, will make the player appear on the right side. The speed and direction is unchanged.

Sound effects

Sound effects are needed for these events:

  • Players shoots
  • Asteroid is hit
  • Player's engine is fired (Thrust)

Reset and setup

Reset and Setup does almost excactly the same and should be merged

Asteroid movement

Asteroids are only moving vertically.

They should be able to move horizontically (?) as well.

More understandable reset

When the player is hit by an astroid, they restart in the middle, but the game continues so fast, that it is incredibly confusing.
i think it would be better if the game was paused for some time, before everything starts to move again?

Player floats in space

  • Player can rotate
  • Player has thrust (rocket engine)
  • Player has velocity/speed in X & Y dimensions

Asteroids split when hit by player

When hit, an asteroids splits in to two smaller asteroids. Study original Asteroids for details.

  • How many sizes of asteroids are there?
  • How do the smaller asteroids move when splitting off?

Bonus UFO

At random times, a UFO appears. The player can shoot it for points. Collision will kill player. Study original Asteroids to find out how the UFO moves.

Joystick_compatible

To be able to control with joystick is very important.

Non-functional joystick support marked with # can be found in
MyGame` -> on_update

Please fix
🥺

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.