Ejemplo n.º 1
0
        //ボールの初期化
        public void initializa()
        {
            //キャラクターの登録
            pic.CharaList.Add(_myBall);

            Random random = new Random();

            //敵キャラの登録
            for (int i = 0; i < 2; i++)
            {
                //ランダムに動かす
                int x = random.Next(100, pic.Width - 100);
                int y = random.Next(100, pic.Height - 100);
                //方向をランダムにする
                //?は条件演算子
                //0のdx,dyが0の場合-1を返して、それ以外の場合は1を返す
                int dx = random.Next(0, 2) == 0 ? -1 : 1;
                int dy = random.Next(0, 2) == 0 ? -1 : 1;

                EnemyBall enemyball = (new EnemyBall(x, y, dx, dy));

                //描画用ピクチャーボックスに登録
                pic.CharaList.Add(enemyball);

                //あたり判定リストに敵を追加
                _EnemyBallList.Add(enemyball);
            }
        }
Ejemplo n.º 2
0
 // Use this for initialization
 void Start()
 {
     enemyCtrl.setHP(hp, hp);
     IsAnime       = false;
     ball          = new EnemyBall(enemyBall);
     ball.speed    = ballSpeed;
     enemyCtrl.dir = 1;
 }
Ejemplo n.º 3
0
    /// <summary>
    /// 敵を生成                              // 変更なしですが記載します
    /// </summary>
    /// <returns></returns>
    private IEnumerator GenerateEnemys()
    {
        // 生成する敵の数をランダムで設定
        int appearEnemyCount = Random.Range(2, 5);

        // 生成した数をカウント用
        int count = 0;

        // 生成した数が生成数になるまでループする。目標数になったら生成終了し、ループを抜ける
        while (count < appearEnemyCount)
        {
            // Transform情報を代入
            Transform enemyTran = canvasTran;

            // 位置を画面内に収まる範囲でランダムに設定
            enemyTran.position = new Vector2(Random.Range(leftBottomTran.localPosition.x, rightTopTran.localPosition.x), Random.Range(leftBottomTran.localPosition.y, rightTopTran.localPosition.y));

            // 設定した位置に対してRayを発射
            RaycastHit2D hit = Physics2D.Raycast(enemyTran.position, Vector3.forward);

            // Rayに当たったオブジェクトを表示。何もないときは null
            Debug.Log(hit.collider);

            // もしも何もRayに当たらない場合(Rayに何か当たった場合にはその位置には生成しないので、ループの最初からやり直す)
            if (hit.collider == null)
            {
                // 敵を生成
                EnemyBall enemyBall = Instantiate(enemyBallPrefab, canvasTran, false);

                // 親子関係を設定
                enemyBall.transform.SetParent(enemyPlace);

                // 敵の位置をランダムで設定した位置に設定
                enemyBall.transform.localPosition = enemyTran.position;

                // 敵の初期設定
                enemyBall.SetUpEnemyBall(this, canvasTran);

                // 敵の生成カウントを加算
                count++;

                // 敵の管理リストに追加
                enemyBallList.Add(enemyBall);

                // 少し待機して、ループを最初から繰り返す
                yield return(new WaitForSeconds(0.15f));
            }
        }
    }
Ejemplo n.º 4
0
 void OnTriggerEnter(Collider other)
 {
     if (other.tag.CompareTo("EnemyBall") == 0)
     {
         EnemyBall enemyBall = other.GetComponent <EnemyBall>();
         if (enemyBall != null)
         {
             // m_life-=ball.m_power;
             // if(m_life<=0){
             //     Destroy(this.gameObject);
             // }
             Destroy(this.gameObject);
         }
     }
 }
Ejemplo n.º 5
0
    //Fait apparaitre une balle ennemi a chaque 100f
    IEnumerator EnemyShot()
    {
        if (m_Timer == 100f)
        {
            GameObject ballGO;
            ballGO = GameObject.Instantiate(m_ObjectToSpawn, transform.position, Quaternion.identity);

            EnemyBall ball = ballGO.GetComponent <EnemyBall>();
            ball.Shoot(transform.forward);

            m_Timer = 0f;
        }

        m_Timer += 1f;

        yield return(new WaitForSeconds(1f));
    }
Ejemplo n.º 6
0
 void Awake()
 {
     myBody     = GetComponent <Rigidbody> ();
     enemyBall  = GetComponent <EnemyBall> ();
     myRenderer = GetComponent <MeshRenderer> ();
 }
Ejemplo n.º 7
0
 /// <summary>
 /// 敵をリストから削除                         // 変更なしですが記載します
 /// </summary>
 /// <param name="enemy"></param>
 public void RemoveEnemyList(EnemyBall enemy)
 {
     //RemoveEnemyList(enemy);
     enemyBallList.Remove(enemy);
     CheckRemainingEnemies();
 }