#### Description: CS50 Final Project: Godot-SpaceShooter
- classical space shooter game made with Godot in C#
- you start with the request to start a countdown with a key stroke
- then a countdown starts from 3 and let the game start
- from the top of the game window there are dropping asteroids towards your space ship and you have to destroy them
- when an asteroid leaves the game window and the bottom or hits the space ship, you loose a life
- if you have no lives left, the game is over and you get a highscore
- after finishing some asteroids you raise the level and the asteroids are getting fast and more of them are spawning
- the asteroids are containing rigidbodies and are physically calculating, so that they are bouncing at each other or when they have been shot
## Main Script description
### InputManager
- the input is got by a const string description of the input from Godot
- It is checked if the game is in countdown, pause or gaming mode
- If in countdown mode, the counting is started
- If in pause mode, the pause mode is beeing switched
- If in gamemode the direction and rotation of the spaceship is set and after normalization written to the playership script
- Also the shooting boolean of the playership script is set whether eh fire button is hold or not
## PlayShip
- different public parameters for the direction, shooting, lives and so on
- inside the physics processing method it is checked whether the spaceship should move or not
- if the length of the direction vector is above zero, the jet is visible and the collision is checked for MoveAndCollide
- if there is the GameArea boundary box hitted, the ship is not moving any further
- if there is an asteroid hitted an explosion at the ship is triggered via an event and also the asteroid will be destroyed as the event of the asteroid script is called
- the spaceship explosion method instantiate an explosion from a packed-scene as a GPU particle system and set it to the right position and starts the emit
## Asteroid
- the asteroid have random starting position and a random size in a definitive range
- the mesh, rigidbody and collisionshape are adjusted due to the actual size
- the speed and rotation of the new asteroids are also a little bit random
- the asteroids are checking by themself if there colide with something
- it also triggers the explosion (maybe therefore I have them doubled -> bug found by writing this Readme ;))
- they also cannot leave the gamearea
- the hit a laser beam and will be destroyed by them (by calling the Explode method)
- the Explode method plays a sound via the SoundManager, instantiate the particle system
- the number of asteroids of the GameManager is updated and the asteroid is been destroyed.