def __init__(self, screen, event_e): GameEngine.__init__(self, screen, event_e) self.player = DemoPlayer(400, 300) self.FPS = 60 self.r_mod = int(self.FPS / 15) self.r_count = 0 self.l_mod = int(self.FPS / 15) self.l_count = 0 self.p_speed = int(self.FPS / 6) self.collectables = [] self.score = 0 self._hud.add(HUDText("score", pygame.Color(255, 255, 255), "score 0", (15, 25), 1, 2))
class DemoGameEngine(GameEngine): def __init__(self, screen, event_e): GameEngine.__init__(self, screen, event_e) self.player = DemoPlayer(400, 300) self.FPS = 60 self.r_mod = int(self.FPS / 15) self.r_count = 0 self.l_mod = int(self.FPS / 15) self.l_count = 0 self.p_speed = int(self.FPS / 6) self.collectables = [] self.score = 0 self._hud.add(HUDText("score", pygame.Color(255, 255, 255), "score 0", (15, 25), 1, 2)) def update(self): self.event_e.update() x_mod = 0 y_mod = 0 """ if self.get_key(K_a): x_mod -= self.p_speed if self.get_key(K_d): x_mod += self.p_speed if self.get_key(K_w): y_mod -= self.p_speed if self.get_key(K_s): y_mod += self.p_speed """ if self.get_key(K_LEFT): if self.l_count % self.l_mod == 0: self.player.rotate_by_radians(-math.pi/4) self.l_count += 1 elif self.get_key(K_RIGHT): if self.r_count % self.r_mod == 0: self.player.rotate_by_radians(math.pi/4) self.r_count += 1 if self.get_key(K_UP): x_mod = self.player.rel_dir().x * self.p_speed y_mod = self.player.rel_dir().y * self.p_speed elif self.get_key(K_DOWN): x_mod = -self.player.rel_dir().x * self.p_speed y_mod = -self.player.rel_dir().y * self.p_speed self.player.move_rel(x_mod, y_mod, self.screen) print self.player.rel_dir() if self.get_key(K_SPACE): self.spawn_collectables(10) collected = [] for c in self.collectables: if c not in collected: for p in c.points: if c not in collected: if self.player.point_inside(Vector2(p.x+c.x, p.y+c.y)): collected.append(c) for c in collected: self.score += c.score self._hud.get("score").text = "score %d" % (self.score) self.collectables.remove(c) print "Collected!" del collected if self.get_key(K_ESCAPE): print self.score return QUIT_FLAG self.clock.tick(self.FPS) return CONTINUE_FLAG def draw(self): self.draw_e.begin_draw(pygame.Color(0, 0, 0)) self.draw_e.draw([self.player]) self.draw_e.draw(self.collectables) self.draw_e.draw([self._hud]) # Draw your drawables here # They must be passed in as lists # self.draw_e.draw([some_drawable, some_other_drawable]) # self.draw_e.draw([another_drawable]) self.draw_e.end_draw() def spawn_collectables(self, n): for i in xrange(0, n): x = random.randint(30, 770) y = random.randint(30, 570) self.collectables.append(DemoCollectable(x, y, 50))