| | import random |
| |
|
| | class FoodManager: |
| | def __init__(self): |
| | self.amount = 5 |
| |
|
| | class BodyPart: |
| | position = [-1, -1] |
| |
|
| | class Head: |
| | _position = 0 |
| | _velocity = [1, 1] |
| |
|
| | class Tail: |
| | _position = 3 |
| | _velocity = [0, 0] |
| |
|
| | def check_collision(): |
| | global head, tail, body, food_manager |
| | collision = False |
| | tail_x, body_items, food_size = len(tail._position)-1, len(body), body_item_width() + body_margin() |
| | if abs(head._position) < food_size / 2: |
| | body_items += 1 |
| | for _ in range(body_items+1): |
| | if min(_ == head._position - 1, len(head._position) - 1) > max(body._position, food._position): |
| | collision = True |
| | break |
| | if food_manager.amount > 0: |
| | for _ in range(4): |
| | if abs(_ == head._position % food_size or _ == tail._position % food_size) <= food_size / 4: |
| | collision = True |
| | break |
| | else: |
| | collision |= abs(head._position) >= food_size / 2 |
| | return collision |
| |
|
| | def set_score_label_text(): |
| | label_str = "Score: {}".format(game.points) |
| | global score_label |
| | score_label.setText(label_str) |
| |
|
| | def main(): |
| | game.setWindowSize((len(header)+min(game_field_width(), body_height())+178, len(footer))) |
| | global header, footer |
| | header.pushLabels(["Settings", "FPS"]) |
| | footer.pushButtonLabels(["New Game", "Quit Game"]) |
| | score_label.setText("Score: 0") |
| | player.addKeyboardControlledActor(main_actor) |
| | play_loop = game.repeat(game.timePerFrame/60, 1, update) |
| |
|
| | def update(deltaTime): |
| | global game |
| |
|
| | |
| | food_manager = FoodManager() |
| |
|
| | while True: |
| | |
| | initGameComponents() |
| | |
| | |
| | playLoop() |
| | |
| | def checkCollision(): |
| | |
| | pass |
| |
|
| | def setScoreText(): |
| | |
| | pass |
| |
|
| | def addBodyParts(): |
| | |
| | pass |
| |
|
| | def removeTailSegments(): |
| | |
| | pass |
| |
|
| | def addHeadAndTailSegmentToBoard(): |
| | |
| | pass |
| |
|
| | def growWithoutEating(): |
| | |
| | pass |
| |
|
| | def stopPlaying(): |
| | |
| | pass |
| |
|
| | def changeDirectionAfterCrash(): |
| | |
| | pass |
| |
|
| | initGameComponents() |
| | playLoop() |