Unity3D_(游戲)卡牌01_啟動屏界面


 

 

卡牌2D游戲展示

  (游戲代碼放到  卡牌04_游戲界面  文章最后面~) 

 

  游戲項目已托管到github上(里面有個32bit可執行文件)  傳送門  

  

 

規則

  開始游戲每張卡牌初始翻開展示 展示幾秒后卡牌扣下。

    點擊第一個卡牌,翻開、記錄。 點擊第二個卡牌, 如果不匹配,等待1秒后兩個都重置為扣下 如果匹配,則變暗,禁止再次點擊 所有卡牌成功配對

  右上角顯示時鍾倒計時 時間結束,游戲失敗

  不同主題關卡不同,遠不止15關~ 

 

啟動屏
    主菜單界面選擇主題,不同主題對應不同圖片素材。點擊后進入選關界面
選關界面
    鼠標進入某個具體關卡按鈕上,底下對應顯示這個關卡的描述信息
    當關卡很多時,通過滑動屏幕,來切換多頁顯示
游戲界面
    隨機生成偶數對圖片。兩兩配對
    全部配對成功,游戲結束
核心算法:先后翻開兩張卡牌,判斷兩個卡牌id相同即可
    時間計時。剩余時間越多在關卡中標識星星越多(0-3個)
數據結構設計
    每個關卡在指定圖片素材中隨機、在全體圖片素材中隨機
記錄的保存
    記錄最高的關卡編號。只有通過當前關卡才解鎖下一關卡
    每關根據完成比賽時間長短,顯示不同的星級。
游戲整體分析

 

  卡牌01_啟動屏界面  傳送門

  卡牌02_主菜單界面  傳送門

  卡牌03_選關界面   傳送門

  卡牌04_游戲界面     傳送門

 

 

啟動屏界面

 

  5s后start場景跳轉到MainMenu場景

(0.5s閃爍一次!) 

 

  點擊start場景(按任意鍵),從start場景跳轉到MainMenu場景

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class Scene_Start : MonoBehaviour {

    float _timer;
    GameObject anyKeyObj;

    // Use this for initialization
    void Start () {
        _timer = 0;
        anyKeyObj = GameObject.Find("anykeyTxt");
    }
    
    // Update is called once per frame
    void Update () {

        _timer += Time.deltaTime;

        if (_timer % 0.5f > 0.25f)
        {
            anyKeyObj.SetActive(true);
        }
        else
        {
            anyKeyObj.SetActive(false);
        }


        if (_timer>5||Input.anyKeyDown)
        {
            GoToMainMenu();
        }
    }

        void GoToMainMenu()
        {
            SceneManager.LoadScene("MainMenu");
        }
}
Scene_Start.cs

 

 

實現過程

 

  創建四個場景,並保存到工程項目中

 

  創建游戲屏幕分辨率

 

   Canvas的分辨率及多屏幕適配 

  添加background(Image)、logo(Image)、name(text)、anykeyTxt(txt)

 

  創建一個空對象,掛載腳本

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class Scene_Start : MonoBehaviour {

    float _timer;
    GameObject anyKeyObj;

    // Use this for initialization
    void Start () {
        _timer = 0;
        anyKeyObj = GameObject.Find("anykeyTxt");
    }
    
    // Update is called once per frame
    void Update () {

        _timer += Time.deltaTime;

        if (_timer % 0.5f > 0.25f)
        {
            anyKeyObj.SetActive(true);
        }
        else
        {
            anyKeyObj.SetActive(false);
        }


        if (_timer>5||Input.anyKeyDown)
        {
            //任意鍵按下,則直接跳轉主菜單場景
            GoToMainMenu();
        }
    }

    void GoToMainMenu()
    {
        SceneManager.LoadScene("MainMenu");
    }
}
Scene_Start.cs

 

 

  anykeyTxt文字閃爍效果

 

  文字狀態可見

anyKeyObj.SetActive(true);

  

  文字狀態不可見

 anyKeyObj.SetActive(false);

 

  添加文字閃爍

        if (_timer % 0.5f > 0.25f)
        {
            anyKeyObj.SetActive(true);
        }
        else
        {
            anyKeyObj.SetActive(false);
        }

 

  5s鍾后或任意鍵按下,則直接跳轉到MainMenu場景

        if (_timer>5||Input.anyKeyDown)
        {
            GoToMainMenu();
        }

        void GoToMainMenu()
        {
            SceneManager.LoadScene("MainMenu");
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM