2016年12月12日 星期一

Day 13: 少林功夫好

終於輪到製作偉大「少林功夫好」頭巾的時刻了。不過因為我還沒做好敵人與敵方子彈,所以今天不會做它實際的功能,只會改變頭巾的字樣(50%鐵頭功,50%金鋼腿)。


新建一個罷氣十足的「ShouLinKungFuIsGood.cs」C# Script。


public class ShouLinKungFuIsGood : MonoBehaviour

{
    public SpriteRenderer sr; //實際擁有Sprite Renderer Component的Game Object

    public Sprite invincible; //鐵頭功的Sprite

    public Sprite useless; //金鋼腿的Sprite



    void Start()

    {

        if (Random.value >= .5f) { //50%

            sr.sprite = invincible; //更換Sprite圖片為鐵頭功

        } else { //50%

            sr.sprite = useless; //更換Sprite圖片為金鋼腿

        }

    }

}

sr用來取得擁有Sprite Renderer Component的Game Object。因為我先前以另一個Game Object包裝擁有Sprite Renderer Component的Game Object以調整座標,所以必須到Inspector把真正擁有Sprite Renderer Component的Game Object拖到Sr欄,才能Script中更改它的Sprite。

接著兩個Sprite型態的變數invincibleuseless分別儲存之後要更換為的鐵頭功Sprite與金鋼腿Sprite。這兩個變數一樣可以在Inspector把Sprite拉至欄位設定為初始值。

進入Start()函數,if判斷式內的Random.value會回傳任意[0, 1]之間的浮點數。所以Random.value >= .5f 剛好有一半的機率成立,換句話說,if (Random.value >= .5f) {}else {}大括號內的程式碼有同等的機率被執行。

大括號裡的sr.sprite = invincible把Sprite Renderer的Sprite設定為新的Sprite(鐵頭功)。也就是把「少林功夫好」的圖片改成「鐵頭功」。else大括號裡的程式碼亦然。

回到Unity,把「少林功夫好」裝備加上Shou Lin Kung Fu Is Good (Script) Component,並把鐵頭功和金鋼腿的Sprite分別拉至Invincible和Useless欄位。





進入Play Mode測試,現在接到「少林功夫好」頭巾後,在主角頭上的頭巾就會自動變成「鐵頭功」或是「金鋼腿」了。

今天的文章有點短,不過我相信「少林功夫好」不同於其他裝備,值得自成一篇文章。


繪圖進度

完成遊戲規則看板。會在遊戲開始時短暫顯示。



待續。

沒有留言 :

張貼留言