def generate(self, space_game, ship): # def create_enemy_star(self): self.enemies = [] self.x = randint(100, CANVAS_WIDTH - 100) self.y = randint(100, CANVAS_HEIGHT - 100) while vector_len(self.x - self.ship.x, self.y - self.ship.y) < 200: self.x = randint(100, CANVAS_WIDTH - 100) self.y = randint(100, CANVAS_HEIGHT - 100) for d in range(18): self.dx, self.dy = direction_to_dxdy(d * 20) self.enemy = Enemy(self, self.x, self.y, self.dx * ENEMY_BASE_SPEED, self.dy * ENEMY_BASE_SPEED) self.enemies.append(self.enemy) return self.enemies # def create_enemy_from_edges(self): self.x, self.y = random_edge_position() self.vx, self.vy = normalize_vector(self.ship.x - self.x, self.ship.y - self.y) self.vx *= ENEMY_BASE_SPEED self.vy *= ENEMY_BASE_SPEED self.enemy = Enemy(self, self.x, self.y, self.vx, self.vy) return [self.enemy]
def generate(self, space_game, ship): x, y = random_edge_position() vx, vy = normalize_vector(ship.x - x, ship.y - y) vx *= ENEMY_BASE_SPEED vy *= ENEMY_BASE_SPEED enemy = Enemy(space_game, x, y, vx, vy) return [enemy]
def create_enemy_from_edges(self): x, y = random_edge_position() vx, vy = normalize_vector(self.ship.x - x, self.ship.y - y) vx *= ENEMY_BASE_SPEED vy *= ENEMY_BASE_SPEED enemy = Enemy(self, x, y, vx, vy) return [enemy]
def generate(self, space_game, ship): # TODO: extracted from method create_enemy_from_edge x, y = random_edge_position() vx, vy = normalize_vector(ship.x - x, ship.y - y) vx *= ENEMY_BASE_SPEED vy *= ENEMY_BASE_SPEED enemy = Enemy(space_game, x, y, vx, vy) return [enemy]
def generate(self, space_game, ship): self.x, self.y = random_edge_position() self.vx, self.vy = normalize_vector(self.ship.x - self.x, self.ship.y - self.y) self.vx *= ENEMY_BASE_SPEED self.vy *= ENEMY_BASE_SPEED self.enemy = Enemy(self, self.x, self.y, self.vx, self.vy) return [self.enemy]
def __init__(self): super(SquashGame, self).__init__('Game', SquashGame.BLACK) self.ball = Ball(radius=10, color=SquashGame.GREEN, pos=(self.window_size[0]/2, self.window_size[1]/2), speed=(1.5,5)) self.player = Player(pos=(250,460), color=SquashGame.BLUE) self.walls = [Walls(pos=(50,225),color=SquashGame.PINK)] self.enemy = Enemy(pos=(250,0), color=SquashGame.RED) self.score = 0 self.score1 = 0
def generate(self, space_game, ship): enemies = [] x = randint(100, CANVAS_WIDTH - 100) y = randint(100, CANVAS_HEIGHT - 100) while vector_len(x - ship.x, y - ship.y) < 200: x = randint(100, CANVAS_WIDTH - 100) y = randint(100, CANVAS_HEIGHT - 100) for d in range(18): dx, dy = direction_to_dxdy(d * 20) enemy = Enemy(space_game, x, y, dx * ENEMY_BASE_SPEED, dy * ENEMY_BASE_SPEED) enemies.append(enemy) return enemies
def create_enemy_star(self): enemies = [] x = randint(100, CANVAS_WIDTH - 100) y = randint(100, CANVAS_HEIGHT - 100) while vector_len(x - self.ship.x, y - self.ship.y) < 200: x = randint(100, CANVAS_WIDTH - 100) y = randint(100, CANVAS_HEIGHT - 100) for d in range(18): dx, dy = direction_to_dxdy(d * 20) enemy = Enemy(self, x, y, dx * ENEMY_BASE_SPEED, dy * ENEMY_BASE_SPEED) enemies.append(enemy) return enemies
def generate(self, space_game, ship): self.enemies = [] self.x = randint(100, CANVAS_WIDTH - 100) self.y = randint(100, CANVAS_HEIGHT - 100) while vector_len(self.x - self.ship.x, self.y - self.ship.y) < 200: self.x = randint(100, CANVAS_WIDTH - 100) self.y = randint(100, CANVAS_HEIGHT - 100) for d in range(18): self.dx, self.dy = direction_to_dxdy(d * 20) self.enemy = Enemy(self, self.x, self.y, self.dx * ENEMY_BASE_SPEED, self.dy * ENEMY_BASE_SPEED) self.enemies.append(self.enemy) return self.enemies
def generate(self, space_game, ship): ## ## # TODO: extracted from method create_enemy_star self.ship = ship enemies = [] x = randint(100, CANVAS_WIDTH - 100) y = randint(100, CANVAS_HEIGHT - 100) while vector_len(x - self.ship.x, y - self.ship.y) < 200: x = randint(100, CANVAS_WIDTH - 100) y = randint(100, CANVAS_HEIGHT - 100) for d in range(18): dx, dy = direction_to_dxdy(d * 20) enemy = Enemy(self.ship, x, y, dx * ENEMY_BASE_SPEED, dy * ENEMY_BASE_SPEED) enemies.append(enemy) return enemies
class SquashGame(gamelib.SimpleGame): BLACK = pygame.Color('black') GREEN = pygame.Color('green') RED = pygame.Color('red') YELLOW = pygame.Color('yellow') WHITE = pygame.Color('white') BLUE = pygame.Color('blue') PINK = pygame.Color('pink') def __init__(self): super(SquashGame, self).__init__('Game', SquashGame.BLACK) self.ball = Ball(radius=10, color=SquashGame.GREEN, pos=(self.window_size[0]/2, self.window_size[1]/2), speed=(1.5,5)) self.player = Player(pos=(250,460), color=SquashGame.BLUE) self.walls = [Walls(pos=(50,225),color=SquashGame.PINK)] self.enemy = Enemy(pos=(250,0), color=SquashGame.RED) self.score = 0 self.score1 = 0 def init(self): super(SquashGame, self).init() self.render_score() self.EtoP=False for num in range(5): newWall = Walls(pos=(100+(num*100),225),color=SquashGame.PINK) self.walls.append(newWall) def update(self): self.ball.move(1./self.fps, self.surface, self.player) self.EnemyToPlayer() self.PlayerMove() #self.player.move(self.ball) if self.EtoP==False: self.enemy.move(self.ball) else: self.EnemyMove() for i in range(5): if self.walls[i].Hit(self.ball,pos=(100+(i*100),225)): self.ball.bounce_walls(self.walls[i]) if self.enemy.can_hit(self.ball): self.ball.bounce_enemy(self.enemy) if self.player.can_hit(self.ball): self.ball.bounce_player(self.player) if self.ball.score(): self.score1+=1 self.render_score() self.ball = Ball(radius=10, color=SquashGame.YELLOW, pos=(self.window_size[0]/2, 450), speed=(1.5,-5)) elif self.ball.score()==False: self.score+=1 self.render_score() self.ball = Ball(radius=10, color=SquashGame.WHITE, pos=(self.window_size[0]/2, 50), speed=(-1.5,5)) def render_score(self): self.score_image = self.font.render("Score = %d" % self.score, 0, SquashGame.WHITE) self.score_image1 = self.font.render("Score = %d" % self.score1, 0, SquashGame.WHITE) def EnemyToPlayer(self): if self.is_key_pressed(K_SPACE): self.EtoP=True if self.is_key_pressed(K_5): self.EtoP=False def PlayerMove(self): if self.is_key_pressed(K_LEFT): self.player.move_left() if self.is_key_pressed(K_RIGHT): self.player.move_right() def EnemyMove(self): if self.is_key_pressed(K_1): self.enemy.move_left() if self.is_key_pressed(K_2): self.enemy.move_right() def render(self, surface): self.init_render(surface) for num in range(5): self.walls[num].draw(surface,num) surface.blit(self.score_image, (10,10)) surface.blit(self.score_image1, (10,460)) def init_render(self,surface): self.ball.render(surface) self.player.render(surface) self.enemy.render(surface)
def init_objects(self): self.steps = 0 for enemy in self.enemies: self.enemies.remove(enemy) for food in self.foods: self.foods.remove(food) for i in range(self.nFoods): while True: flag = False size = int(self.width * Food.sizeF) x = random.uniform( int(size / 2.0) + 1, self.width - int(size / 2.0) + 1) y = random.uniform( int(size / 2.0) + 1, self.width - int(size / 2.0) + 1) for n in self.foods: if abs(x - n.posX) < size + 1 and abs(y - n.posY) < size + 1: flag = True if not flag: break self.foods.extend([Food(x, y, self.width)]) for j in range(self.nEnemies): while True: flag = False size = int(self.width * Enemy.sizeF) x = random.uniform( int(size / 2.0) + 1, self.width - int(size / 2.0) + 1) y = random.uniform( int(size / 2.0) + 1, self.width - int(size / 2.0) + 1) for n in self.enemies: if abs(x - n.posX) < size + 1 and abs(y - n.posY) < size + 1: flag = True for n in self.foods: if abs(x - n.posX) < size + 1 and abs(y - n.posY) < size + 1: flag = True if not flag: break self.enemies.extend([Enemy(x, y, self.width)]) while True: flag = False # size = random.randint(0, 0.1) size = int(self.width * Player.sizeF) x = random.uniform( int(size / 2.0) + 1, self.width - int(size / 2.0) + 1) y = random.uniform( int(size / 2.0) + 1, self.width - int(size / 2.0) + 1) for n in self.foods: if abs(x - n.posX) < size + 1 and abs(y - n.posY) < size + 1: flag = True for n in self.enemies: if abs(x - n.posX) < size + 1 and abs(y - n.posY) < size + 1: flag = True if not flag: break self.player = Player(x, y, self.width)