tighogg

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

commit
78bd2783fa072c53eb4271d56e3826e669d5ba69
parent
ce9add7c5dab460707baaa939b98991746bca253
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2021-05-08 07:56
render player

Diffstat

M tighogg.py 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-

1 files changed, 64 insertions, 1 deletions


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

@@ -1,9 +1,72 @@
    1     1 import boon
    2     2 
   -1     3 LEFT = 0
   -1     4 RIGHT = 1
   -1     5 YELLOW = 10
   -1     6 GREEN = 11
   -1     7 
   -1     8 
   -1     9 class Player:
   -1    10     def __init__(self, x, y, direction, color):
   -1    11         self.x = x
   -1    12         self.y = y
   -1    13         self.color = color
   -1    14         self.direction = LEFT
   -1    15         self.running = False
   -1    16         self.ducking = False
   -1    17         self.weapon = '-'
   -1    18 
   -1    19     def _render(self):
   -1    20         if self.running:
   -1    21             if self.ducking:
   -1    22                 return (
   -1    23                     r'     ',
   -1    24                     r'o_   ',
   -1    25                     r'  @  ',
   -1    26                 )
   -1    27             else:
   -1    28                 return (
   -1    29                     r'o    ',
   -1    30                     r'w\   ',
   -1    31                     r'  @  ',
   -1    32                 )
   -1    33                 return 'o    \n \\'
   -1    34         else:
   -1    35             if self.ducking:
   -1    36                 return (
   -1    37                     r'     ',
   -1    38                     r'  o  ',
   -1    39                     r'  Z  ',
   -1    40                 )
   -1    41             else:
   -1    42                 return (
   -1    43                     r'  o  ',
   -1    44                     r' w|  ',
   -1    45                     r'  Λ  ',
   -1    46                 )
   -1    47 
   -1    48     def render(self):
   -1    49         for line in self._render():
   -1    50             if self.direction == RIGHT:
   -1    51                 line = line[::-1]
   -1    52             line = line.replace('w', self.weapon)
   -1    53             line = (
   -1    54                 boon.get_cap('setaf', self.color)
   -1    55                 + boon.get_cap('bold')
   -1    56                 + line
   -1    57                 + boon.get_cap('sgr0')
   -1    58             )
   -1    59             yield line
   -1    60 
    3    61 
    4    62 class Game(boon.App):
   -1    63     def __init__(self):
   -1    64         super().__init__()
   -1    65         self.player1 = Player(10, 10, RIGHT, YELLOW)
   -1    66         self.player2 = Player(10, 10, LEFT, GREEN)
   -1    67 
    5    68     def render(self, rows, cols):
    6    -1         yield 'Hello World'
   -1    69         return self.player1.render()
    7    70 
    8    71     def on_key(self, key):
    9    72         if key == 'q':