class Game(): def __init__(self, player=None): director.init() self.main_layer = GameScreen(self) self.ball = Ball() self.main_layer.add(self.ball) self.bouncer = Bouncer() self.main_layer.add(self.bouncer) self.score = 0 self.score_label = Label("Score: 0", font_size=32) self.score_label.position = 20, 400 self.main_layer.add(self.score_label) self.main_scene = Scene(self.main_layer) self.collision_manager = CollisionManagerGrid(0, 640, 0, 400, 5, 5) self.collision_manager.add(self.ball) self.collision_manager.add(self.bouncer) self.player = player def update(self, delta_t): self.ball.update(self) self.bouncer.update() if self.collision_manager.they_collide(self.ball, self.bouncer): print("collision") self.winPoint() self.ball.reset() if self.player: self.player.update(self.ball, self.bouncer) def loosePoint(self): print("-1 points") self.score -= 1 self.score_label.element.text = "Score: {}".format(self.score) def winPoint(self): print("+1 points") self.score += 1 self.score_label.element.text = "Score: {}".format(self.score) def start(self): self.main_layer.schedule(self.update) self.ball.doFall() director.run(self.main_scene)