Flappy Nole is an FSU themed arcade game that is built in Python3 using PyGame. Our inspiration came from the game Flappy Bird.
- Python
- pygame
- pygame_gui
The following is a basic outline of the contributions made by each author. See the included git log for complete attribution.
Taylor designed the system which is used to position the player vertically over time. The system inclues the concept of a Gravity constant which is added to the player's vertical momentum each tick. The effect being the player's speed of descent increases as time progresses, unless of course the player jumps.
Taylor designed the graphics used for pipes and the game background.
Taylor developed the main menu, the sign-up screen, and the user account management system.
Worked on the original back ground graphics and edited main logo to work with hitboxes
Worked to make game play smooth and close to the original game
Worked on saving highscore, storage and display to only save high score
Duncan designed and developed the horizontal world space mechanism. Pipes are placed accross the horizontal wordspace at a constant rate such that the pipes are equadistant to each other. Pipe placement is determiend using a frequency constant and modular arithmetic.
Utilized pygame to create a mesh of the Seminole Head which is used for collision detection between rectangular Pipe hitboxes.
Duncan developed the score calculation algorithm. The score is a function of the number of pipes currently spawened in the world, the player's position, and the total number of pipes which have ever existed (spawned or not) within the world.
Duncan designed the main project structure. The app is built in a reactive style, where changes to the state are seperated from the actual rendering of the game. The main game loop is split into three phases.
- Handle User Input
- Handle Side Effects (progress the game forward through time)
- Draw the Game State to the Screen
-
Make sure pygame and pygame_gui are installed.
-
Then run
python3 main.py
in the project directory. -
Create a login using a unique username. When playing, use space bar to "jump".
Inspiration for background image and pipes - https://csw.fsu.edu/100years
Player icon - https://upload.wikimedia.org/wikipedia/en/...
Flappy Bird - https://flappybird.io/
Python Docs - https://docs.python.org/3/
PyGame Docs - https://realpython.com/pygame-a-primer/
PyGame Tutorials - https://realpython.com/pygame-a-primer/
PyGame_GUI Docs - https://pygame-gui.readthedocs.io/en/latest/