tighogg

fighting game for the terminal
git clone https://git.ce9e.org/tighogg.git

commit
ca2d4125a650c486acb1985fd2e845525e476a68
parent
fda8d11cf0152bb5e121152adbf527b1510df782
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2021-05-08 08:57
render hud

Diffstat

M tighogg.py 36 +++++++++++++++++++++++++++++++-----

1 files changed, 31 insertions, 5 deletions


diff --git a/tighogg.py b/tighogg.py

@@ -60,13 +60,39 @@ class Game:
   60    60     def __init__(self):
   61    61         self.player1 = Player(10, 10, RIGHT, YELLOW)
   62    62         self.player2 = Player(20, 10, LEFT, GREEN)
   -1    63         self.players = [self.player1, self.player2]
   63    64         self.running = True
   64    65 
   -1    66     @property
   -1    67     def leader(self):
   -1    68         return self.players[-1]
   -1    69 
   -1    70     @property
   -1    71     def position(self):
   -1    72         return self.leader.x / self.cols
   -1    73 
   -1    74     def render_hud(self):
   -1    75         x = round(self.position * self.cols)
   -1    76         if self.leader == self.player1:
   -1    77             bar = ' ' * x + '<' + '=' * (self.cols - x - 1)
   -1    78         else:
   -1    79             bar = '=' * x + '>' + ' ' * (self.cols - x - 1)
   -1    80         boon.move(0, 0)
   -1    81         sys.stdout.write(
   -1    82             boon.get_cap('setaf', self.leader.color)
   -1    83             + bar
   -1    84             + boon.get_cap('sgr0')
   -1    85         )
   -1    86 
   65    87     def render(self):
   66    -1         cols, rows = shutil.get_terminal_size()
   -1    88         self.cols, self.rows = shutil.get_terminal_size()
   67    89         sys.stdout.write(boon.get_cap('clear'))
   68    -1         self.player1.render()
   69    -1         self.player2.render()
   -1    90 
   -1    91         self.render_hud()
   -1    92 
   -1    93         for player in self.players:
   -1    94             player.render()
   -1    95 
   70    96         sys.stdout.flush()
   71    97 
   72    98     def on_key(self, key):
@@ -99,8 +125,8 @@ class Game:
   99   125             while self.running:
  100   126                 last = time.time()
  101   127                 self.on_key(boon.getch())
  102    -1                 self.player1.step()
  103    -1                 self.player2.step()
   -1   128                 for player in self.players:
   -1   129                     player.step()
  104   130                 self.render()
  105   131                 time.sleep(1 / 30 - (time.time() - last))
  106   132