Compare commits

..

4 Commits

4 changed files with 41 additions and 2 deletions

View File

@ -1,3 +1,30 @@
# Pseudo-3D hyperbolic engine
My school project
## Loading games
You can load a game by passing the name of the game as an argument:
```sh
python3 main.py triangle
```
Game can be loaded only if it is located in the games/ directory.
If no game is specified then "squareroom" will be loaded.
## Controls
| Descripton | Key |
|----------------------------------------|:---:|
| Move forward | W |
| Move backwards | D |
| Strafe left | Q |
| Strafe right | E |
| Turn 180 degrees | R |
| Toggle FPS cap | F1 |
| Create a wall | F2 |
| Toggle debug info | F3 |
| Print current position to the terminal | F4 |
| Save level to `./levels` folder | F5 |

View File

@ -0,0 +1,11 @@
import importlib.resources as impr
import sys
import json
def init(serialize):
curm = sys.modules[__name__]
files = impr.files(curm)
level = None
with files.joinpath("triangle.json").open('r') as leveldir:
level = json.loads(leveldir.read(), object_hook=serialize.object_hook)
return level

View File

@ -0,0 +1 @@
[{"__type__": "objSegment", "isFinite": true, "pointA": {"__type__": "complex", "real": 0.38529100476842437, "imag": 0.0}, "pointB": {"__type__": "complex", "real": -0.2372040619364459, "imag": 0.36629343026935063}, "color": [255, 0, 0]}, {"__type__": "objSegment", "isFinite": true, "pointA": {"__type__": "complex", "real": -0.2372040619364459, "imag": 0.36629343026935063}, "pointB": {"__type__": "complex", "real": -0.22354939429564802, "imag": -0.26820653903460523}, "color": [0, 255, 0]}, {"__type__": "objSegment", "isFinite": true, "pointA": {"__type__": "complex", "real": -0.22354939429564802, "imag": -0.26820653903460523}, "pointB": {"__type__": "complex", "real": 0.39868528559672944, "imag": 0.017873216691274733}, "color": [0, 0, 255]}]

View File

@ -114,7 +114,7 @@ def mainLoop():
alert.start_hide_thread(alerts, delay)
try:
game = import_module(sys.argv[1])
game = import_module('games.' + sys.argv[1])
except IndexError:
game = import_module("games.squareroom")