Welcome to AngryTux’s documentation!¶
How to install¶
Installation of this game is very simple. Just download game from GitHub repository or you can install game thorough pip. Game is located at testing pip server.
Git install¶
- Clone repository from source:
git clone git@github.com:Wilson194/Angry-tux.git
- Change directory to package:
cd Angry-tux
- Create virtual environment for game:
python -m venv __venv__
- Activate virtual environment:
. __venv__/bin/activate
- Install game:
python setup.py install
Pip install¶
- Create virtual environment for the game:
python -m venv __venv__
- Activate virtual environment:
. __venv__/bin/activate
- Install game from pip:
python -m pip install --extra-index-url https://test.pypi.org/pypi AngryTux
Congratulation you have installed the game so you can play. Enjoy!
Running the game¶
If you have all ready installed game, you can play! Just type in console in activated venv:
AngryTux
Here you go, you can play!
There is also some games modes that you can chose.
Movement modes¶
You can chose from two movements modes: basic and realistic. In basic mode, missiles just lowering some angle and enemies just stand at one place and doing nothing. Boooooriiiiing!
But if you chose realistic mode, missiles have ballistic curve and enemies are moving. Much more fun, trust me!
You can chose mode with console parameter: AngryTux -f mode
Levels¶
There is also two levels by default and you can create some new levels. You can specify, which level you want to play with console
parameter: AngryTux -l number
. There are only 2 level now, but you can help game to improve.
Game control¶
Controlling the game is really easy and intuitive. To be sure, here you have instructions.
![]() |
Moving of the cannon |
![]() |
Change firing mode |
![]() |
Lower shooting power |
![]() |
Increase shooting power |
![]() |
Lower gravity of game |
![]() |
Increase gravity of game |
![]() |
Undo command |
![]() |
Shoot missiles |
Firing modes¶
Single mode¶
In single mode cannon shoot one missile in the direction of cannon. This gives you less points for hit but cost less points.
Double mode¶
In double mode cannon shoot two missiles. First missile have direction higher then cannon direction and second lower then cannon. This cost more points but you get much more points for hitting enemies
Gravity¶
With the keys f and g you can increase and decrease gravity. This will influence only missiles. You can use this for smart shooting. You can kill enemies behind walls.
Shooting power¶
With the keys o and p you can increase and decrease shooting power. This will effect missiles starting speed. You can combine this with gravity to achieve awesome shoots!
Undo command¶
This command is for undoing last command. You can undo everything what you did (shooting, destroying, etc.) You can use this for training but don’t use for competitive plays!
Game objects¶
In game is several types of objects. There is description of them.
Obstacles¶

This is obstacles. This obstacles windows use for defence. You must shoot this wall three times to destroy and don’t get any points for destroying this.
Level builder¶
You can use created level build for creating your own levels. In the code is abstract class LevelCreator
.
With extending this class you can create you own levels. Class have 3 methods.
create_enemies¶
This method is for creating enemies. You can create as many enemies as you want and return list of this enemies from this method.
One enemy is created by enemy class:
>>> from angrytux.model.abstract_facotry.CreationFactory import CreationFactory
>>> from angrytux.model.game_objects.Position import Position
>>> CreationFactory().create_dummy_enemy(Position(450, 400))
>>> CreationFactory().create_smart_enemy(Position(700, 700))
where CreationFactory
create proper enemy. You can chose smart or dummy enemy. Behaviour of enemies depends on selected mode.
One parameter is position class which need two parameters, x and y position.
create_obstacles¶
This method is for creating obstacles. Is almost same as enemies but for obstacles:
>>> from angrytux.model.game_objects.Obstacle import Obstacle
>>> obstacles.append(Obstacle(Position(400, 10)))
music¶
Last part is music for level. That is important! You can play your own music with this:
>>> file = os.path.join('angrytux', 'resources', 'sounds', 'song1.mp3')
>>> pygame.mixer.music.load(file)
>>> pygame.mixer.music.play()