main.py:
Код: Выделить всё
import time
from turtle import Screen
from obstacles import ObstacleManager
from scoreboard import Scoreboard
from player import Player
# Create screen
screen = Screen()
screen.setup(600, 600)
screen.tracer(0)
# Create objects
player = Player()
obstacle_manager = ObstacleManager()
scoreboard = Scoreboard()
# Detect keypress
screen.listen()
screen.onkeypress(player.move_left, "a")
screen.onkeypress(player.move_right, "d")
game_is_on = True
loops = 0
max_loops = 16
# Game loop
while game_is_on:
time.sleep(0.1)
screen.update()
loops += 1
# Create an obstacle and score + 1 every 16th game loop
if loops == max_loops:
obstacle_manager.create_obstacle()
obstacle_manager.score_up()
scoreboard.score_up()
loops = 0
obstacle_manager.move_obstacles()
# Detect collision with obstacle
for obstacle in obstacle_manager.all_obstacles:
if obstacle.distance(player) < 10:
game_is_on = False
scoreboard.game_over()
screen.exitonclick()
Код: Выделить всё
class ObstacleManager:
def __init__(self):
self.all_obstacles = []
self.obstacle_speed = STARTING_MOVE_DISTANCE
def create_obstacle(self):
new_obstacle = Turtle("square")
new_obstacle.penup()
new_obstacle.color(random.choice(COLORS))
new_obstacle.setheading(270)
random_lane_pos = random.choice(OBS_LANE_POSITIONS)
new_obstacle.goto(random_lane_pos)
self.all_obstacles.append(new_obstacle)
def move_obstacles(self):
for obstacle in self.all_obstacles:
obstacle.forward(self.obstacle_speed)
def score_up(self):
self.obstacle_speed += MOVE_INCREMENT
Подробнее здесь: https://stackoverflow.com/questions/793 ... o-the-move