Compare commits

...

3 Commits
4 ... main

Author SHA1 Message Date
Plaza521 bf638e711e
fix creating Player object 2023-03-16 23:14:44 +03:00
Plaza521 a89e41cd68
fix bug with turn 2023-03-06 01:30:06 +03:00
Plaza521 aff3036a0d
fix issue #1 and fix pause 2022-11-06 22:18:02 +03:00
3 changed files with 44 additions and 15 deletions

33
main.py
View File

@ -9,25 +9,43 @@ from time import sleep, time
class Game: class Game:
def __init__(self) -> None: def __init__(self) -> None:
self.running = True self.running = True
self.is_pause = False
self.pl = Player() self.pl = Player()
self.out = Out(self.pl) self.out = Out(self.pl)
self.is_pause = False
kb.add_hotkey(QUIT_BUTTON, self.stop_game) kb.add_hotkey(QUIT_BUTTON, self.stop_game)
kb.add_hotkey(PAUSE_BUTTON, self.switch_pause) kb.add_hotkey(PAUSE_BUTTON, self.switch_pause)
kb.add_hotkey(LEFT_BUTTON, self.pl.left) kb.add_hotkey(
kb.add_hotkey(RIGHT_BUTTON, self.pl.right) LEFT_BUTTON,
kb.add_hotkey(UP_BUTTON, self.pl.up) self.pl.left,
kb.add_hotkey(DOWN_BUTTON, self.pl.down) args=[self]
)
kb.add_hotkey(
RIGHT_BUTTON,
self.pl.right,
args=[self]
)
kb.add_hotkey(
UP_BUTTON,
self.pl.up,
args=[self]
)
kb.add_hotkey(
DOWN_BUTTON,
self.pl.down,
args=[self]
)
def switch_pause(self) -> None: def switch_pause(self) -> None:
self.is_pause = not self.is_pause self.is_pause = not self.is_pause
def stop_game(self) -> None: def stop_game(self) -> None:
self.running = False if not self.is_pause:
self.running = False
def play(self) -> None: def play(self) -> None:
system("clear||cls") system("clear||cls")
print()
start_time = time() start_time = time()
different_between_time = 1 / FPS different_between_time = 1 / FPS
@ -55,7 +73,8 @@ class Game:
def main() -> None: def main() -> None:
Game().play() game = Game()
game.play()
if __name__ == '__main__': if __name__ == '__main__':

View File

@ -5,6 +5,7 @@ from food import Food
class Player: class Player:
def __init__(self) -> None: def __init__(self) -> None:
self.start_direciton = MAIN_DIRECTION
self.direction = MAIN_DIRECTION self.direction = MAIN_DIRECTION
self.body = [Point(MAIN_X, MAIN_Y)] self.body = [Point(MAIN_X, MAIN_Y)]
@ -34,6 +35,8 @@ class Player:
raise IndexError("Player has collision with self") raise IndexError("Player has collision with self")
def update(self) -> None: def update(self) -> None:
self.start_direction = self.direction
if self.body[-1] == self.food: if self.body[-1] == self.food:
self.food.generate_new() self.food.generate_new()
self.score += 1 self.score += 1
@ -42,14 +45,18 @@ class Player:
Player._check_collision(self.body) Player._check_collision(self.body)
def left(self) -> None: def left(self, game) -> None:
self.direction = D_LEFT if not game.is_pause and self.start_direction != D_RIGHT:
self.direction = D_LEFT
def right(self) -> None: def right(self, game) -> None:
self.direction = D_RIGHT if not game.is_pause and self.start_direction != D_LEFT:
self.direction = D_RIGHT
def up(self) -> None: def up(self, game) -> None:
self.direction = D_UP if not game.is_pause and self.start_direction != D_DOWN:
self.direction = D_UP
def down(self) -> None: def down(self, game) -> None:
self.direction = D_DOWN if not game.is_pause and self.start_direction != D_UP:
self.direction = D_DOWN

View File

@ -34,3 +34,6 @@ TT_WALL = "\u001b[34m{}\u001b[0m".format("██")
TT_FOOD = "\u001b[33m{}\u001b[0m".format("██") TT_FOOD = "\u001b[33m{}\u001b[0m".format("██")
TT_WALL_FOOD = "\u001b[32m{}\u001b[0m".format("██") TT_WALL_FOOD = "\u001b[32m{}\u001b[0m".format("██")
TT_HEAD = "\u001b[36m{}\u001b[0m".format("██") TT_HEAD = "\u001b[36m{}\u001b[0m".format("██")
# Globals
is_pause = False