0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

東方Projectっぽいシューティング3マスタースパーク広がるのと2発目

Last updated at Posted at 2023-07-23

マスパ(マスタースパーク)は、伸びるのが止まったら、広がります。

M_Spark.cs
    IEnumerator CoreWide()
    {
        while (isTime < 2)
        {
            transform.localScale += new Vector3(0.00375f, 0, 0);
            yield return null;
        }
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if(collision.gameObject.tag == "E_B_DEATH")
        {
            O_Freame = true;
            StartCoroutine(CoreWide());
        }
    }

マスパの子要素に、Xの大きさが1.1のカプセルのスプライトを追加。
スクリーンショット (35) (1).png

マスタースパークを出してる間はSEを鳴らしています。
SEが鳴りやんだら1秒掛けて徐々に色を薄くし、Destroyします。
内側を黄緑色、外側を白色にしているので、内側は、RBGはそのまま、Aに、FeadOutTime(1からTime.deltaTimeを引いた数値)を代入。
外側は、Aを最初から128くらいにしているので、FeadOutTime÷2を代入。

M_Spark.cs
public float FeadOutTime = 1;

void FeadOut()
    {
        if(!GetAudio.isPlaying)
        {
            FeadOutTime -= Time.deltaTime;
            GetComponent<SpriteRenderer>().color = new Color(GetComponent<SpriteRenderer>().color.r, GetComponent<SpriteRenderer>().color.g, GetComponent<SpriteRenderer>().color.b, FeadOutTime);
            Out_MS.GetComponent<SpriteRenderer>().color = new Color(1, 1, 1, FeadOutTime/2);
        }
        if(FeadOutTime <= 0)
        {
            Enemy.GetComponent<Enemy>().MS_END = true;
            Destroy(gameObject);
        }
    }

    // Update is called once per frame
    void Update()
    {
        FeadOut();
        isisTime += Time.deltaTime;
        if (O_Freame)
        isTime += Time.deltaTime;
    }

スクリーンショット (36).png

2発目は、自機狙いに打ちます。
まず自機の方向に向きを合わせます。

M_Spark.cs
    void Start()
    {
        /*BackGround = GameObject.Find("BackGround");
        //BackGround.GetComponent<Shake>().is_Shake();
        Out_MS = transform.Find("Out_MS").gameObject;
        Enemy = GameObject.Find("Enemy(Clone)");
        GetAudio.volume = 0.25f;
        GetAudio.PlayOneShot(MS_SE);*/
        Player = GameObject.Find("Player(Clone)");
        if(!Enemy.GetComponent<Enemy>().First_Spark)//1発目じゃなければ
        {
            Pos = Player.transform.position - transform.position;
            transform.rotation = Quaternion.FromToRotation(Vector3.up, Pos);
        }

向いてる方向に伸ばします。

M_Spark.cs
    IEnumerator Long()
    {
        if (Enemy.GetComponent<Enemy>().First_Spark)//1発目なら真下に伸びる
        {
            while (!O_Freame)
            {
                transform.localScale += new Vector3(0, 0.0075f, 0);
                transform.position += new Vector3(0, -0.0075f, 0);
                yield return null;
            }
        }
        else//2発目以降は、向いてる方向に伸びる
        {
            while (!O_Freame)
            {
                transform.localScale += new Vector3(0, 0.0075f, 0);
                transform.position += transform.up * 0.0075f;
                yield return null;
            }
        }
    }

スクリーンショット (53).png
スクリーンショット (57).png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?