Exemple #1
0
    def ctrl_enemy(self):
        # ====== ctrl enemy ====== #
        # enemy_coreの移動
        if pyxel.frame_count >= 2000:
            self.enemy_core.update(
                math.sin(self.on / 30) * -30 + 90,
                (math.cos(self.on / 30)) * -30 + 50)
            self.on += 1
        elif pyxel.frame_count >= 1800 and self.enemy_core.pos.y >= 20 and self.enemy_core.pos.y <= 21:
            self.enemy_core.update(ENEMY_CORE_NORMAL_X, 20)
        elif pyxel.frame_count >= 1200:
            self.enemy_core.update(
                ENEMY_CORE_NORMAL_X - math.sin(self.oni / 50) * 70,
                20 + abs(math.sin(self.oni / 50)) * 50)
            self.oni += 1
        elif pyxel.frame_count >= 1000 and self.enemy_core.pos.y >= 20 and self.enemy_core.pos.y <= 21:
            self.enemy_core.update(ENEMY_CORE_NORMAL_X, 20)
        elif pyxel.frame_count >= 800:
            self.enemy_core.update(ENEMY_CORE_NORMAL_X,
                                   20 + abs(math.sin(self.orioir / 50)) * 50)
            self.orioir += 1
        elif pyxel.frame_count >= 600 and self.enemy_core.pos.x >= 89 and self.enemy_core.pos.x <= 91:
            self.enemy_core.update(ENEMY_CORE_NORMAL_X, 20)
        elif pyxel.frame_count >= 270:
            self.enemy_core.update(
                ENEMY_CORE_NORMAL_X - math.sin(self.origin_time / 50) * 70, 20)
            self.origin_time += 1
        elif self.for_move_point <= 20 and pyxel.frame_count >= 120:
            self.enemy_core.update(ENEMY_CORE_NORMAL_X, 20)
        elif (pyxel.frame_count >= 80) and (self.for_move_point != 20):
            self.enemy_core.update(ENEMY_CORE_NORMAL_X, self.for_move_point)
            self.for_move_point = self.for_move_point - 0.5
        elif (pyxel.frame_count >= 0):
            self.enemy_core.update(ENEMY_CORE_NORMAL_X, ENEMY_CORE_NORMAL_Y)


#        print(self.enemy_core.pos.y)

# 周りの匹の敵キャラを実体化
        if len(self.Enemies) <= ENEMIS_TOTAL:
            new_enemy = enemy.Enemy()
            new_enemy.update(
                self.enemy_core.pos.x * (math.sin(pyxel.frame_count / 30)),
                self.enemy_core.pos.y * (math.cos(pyxel.frame_count / 30)))
            self.Enemies.append(new_enemy)

        enemy_count = len(self.Enemies)
        for i in range(enemy_count):
            # 当たり判定
            if ((self.pc.pos.x < self.Enemies[i].pos.x + ENEMY_W) and
                (self.Enemies[i].pos.x + ENEMY_W < self.pc.pos.x + PC_W)
                    and (self.pc.pos.y < self.Enemies[i].pos.y + ENEMY_H) and
                (self.Enemies[i].pos.y + ENEMY_H < self.pc.pos.y + PC_H)):
                self.player_hp -= 1
                # パーティクル生成
                for i in range(random.randint(3, 5)):
                    new_particle = ptcl.Ptcl(self.pc.pos.x, self.pc.pos.y)
                    self.player_particles.append(new_particle)

            # enemies動き
            self.Enemies[i].update(
                (math.sin(pyxel.frame_count / 30 * i)) *
                (30 * (math.sin(pyxel.frame_count / 50))) +
                self.enemy_core.pos.x, (math.cos(pyxel.frame_count / 30 * i)) *
                (30 *
                 (math.sin(pyxel.frame_count / 50))) + self.enemy_core.pos.y)
Exemple #2
0
    def ctrl_ball(self):
        # ====== ctrl Ball ======
        if pyxel.btnp(pyxel.KEY_A) or pyxel.btn(pyxel.GAMEPAD_1_A):
            new_ball = bullet.Bullet()
            if self.pc.direction == 3:
                new_ball.update(self.pc.pos.x + PC_W / 2 - 6,
                                self.pc.pos.y + PC_H / 2, self.pc.vec,
                                new_ball.size, new_ball.color)
                new_ball.direction = 3
            if self.pc.direction == 4:
                new_ball.update(self.pc.pos.x + PC_W / 2 + 6,
                                self.pc.pos.y + PC_H / 2, self.pc.vec,
                                new_ball.size, new_ball.color)
                new_ball.direction = 4
            if self.pc.direction == 5:
                new_ball.update(self.pc.pos.x + PC_W / 2,
                                self.pc.pos.y + PC_H / 2 - 6, self.pc.vec,
                                new_ball.size, new_ball.color)
                new_ball.direction = 5
            self.Balls.append(new_ball)

        ball_count = len(self.Balls)
        for i in range(ball_count):
            if 0 < self.Balls[i].pos.x and self.Balls[i].pos.x < WINDOW_W:
                # Ball update
                if self.Balls[i].direction == 3:
                    self.Balls[i].update(
                        self.Balls[i].pos.x + self.Balls[i].speed,
                        self.Balls[i].pos.y, self.Balls[i].vec,
                        self.Balls[i].size, self.Balls[i].color)
                if self.Balls[i].direction == 4:
                    self.Balls[i].update(
                        self.Balls[i].pos.x - self.Balls[i].speed,
                        self.Balls[i].pos.y, self.Balls[i].vec,
                        self.Balls[i].size, self.Balls[i].color)
                if self.Balls[i].direction == 5:
                    self.Balls[i].update(
                        self.Balls[i].pos.x,
                        self.Balls[i].pos.y - self.Balls[i].speed,
                        self.Balls[i].vec, self.Balls[i].size,
                        self.Balls[i].color)
            #  当たり判定(敵キャラとボール)
                enemy_count = len(self.Enemies)
                for j in range(enemy_count):
                    if ((self.Enemies[j].pos.x < self.Balls[i].pos.x) and
                        (self.Balls[i].pos.x < self.Enemies[j].pos.x + ENEMY_W)
                            and (self.Enemies[j].pos.y < self.Balls[i].pos.y)
                            and (self.Balls[i].pos.y <
                                 self.Enemies[j].pos.y + ENEMY_H)):
                        # 消滅(敵インスタンス破棄)
                        # enemyは体力性にする
                        self.enemy_hp -= 1
                        # パーティクル生成
                        for i in range(random.randint(3, 5)):
                            new_particle = ptcl.Ptcl(self.Enemies[j].pos.x,
                                                     self.Enemies[j].pos.y)
                            self.enemy_particles.append(new_particle)
                    #   del self.Balls[i]
                        del self.Enemies[j]
                        break

            else:
                del self.Balls[i]
                break