貪喫蛇U3D實現筆記

貪喫蛇U3D實現筆記

先構建初始面板start

目錄在這裏插入圖片描述 1. 整個界面分爲兩塊,左邊菜單欄,右邊遊戲區
2. 在canvas畫布上搭建兩部分,在菜單控制面板,搭建皮膚選擇模塊,模式選擇模塊以及分數顯示模塊
3. 設置遊戲開始按鈕監聽事件,跳轉游戲場景,在遊戲開始場景上創建gameobject,掛載控制腳本,控制腳本內依次放入UI控件
在這裏插入圖片描述
4. 在控制腳本里面編寫點擊事件用來改變控制面板焦點以及傳遞參數給session,點擊跳轉游戲場景game

遊戲場景邏輯

左邊依然爲控制菜單,右邊爲遊戲區域,依次放入對應UI
貪喫蛇遊戲邏輯

  1. 鍵盤輸入信號,控制蛇頭圖片上下左右移動,蛇頭作爲單獨的腳本拿出來。
  2. 蛇身實現方式,蛇身作爲預製體,每喫一個食物,new出一個蛇身,掛在尾部
  3. 食物作爲一個容器,每次new出一個,喫掉一個再加一個

各腳本實現功能順序

蛇頭腳本實現功能

  1. 蛇頭創建初始狀態,構建一個食物容器,用來生成食物,記錄蛇頭圖片步伐以及移動座標,完成上下左右移動以及穿牆後坐標問題,通過在蛇頭添加InvokeRepeating方法實現移動。蛇頭移動封裝成一個方法Move,InvokeRepeating重複調用Move方法來實現蛇頭移動。添加2D觸碰檢測,在地圖四周放置隱形gameobject,設置tag爲牆,當觸碰到時,在OnTriggerEnter2D方法裏執行die方法或者改變蛇頭座標實現穿牆。
  2. 蛇身長度模塊,封裝在Grow方法中,在蛇頭每次碰撞到食物後調用,實例化一個gameobject,添加到蛇身List中。
  3. 蛇身隨蛇頭移動封裝在蛇頭移動的Move方法中,判斷蛇身List,反向賦值蛇身座標。

食物腳本實現功能

食物隨機在遊戲地圖上產生,設置tag爲食物,在蛇頭OnTriggerEnter2D碰撞到tag時,檢測是否爲獎勵,普通食物,在觸碰後銷燬食物,蛇的身體漲一格,更新控制面板分數,分數記錄在控制面板的UI上,播放食物被喫掉的聲音。檢測食物容器裏面食物個數,以判斷是否生成獎勵或者普通食物。同理碰撞到獎勵物體時,執行成長方法,銷燬獎勵,更新面板,播放聲音。

控制面板實現功能

菜單面板掛上MainUIController腳本,在頁面初始化開始後,依據勾選模式判定有無邊界,對應增加遊戲難度模塊,分數模塊、暫停和回到首頁選項。

資源以及源碼鏈接(點我)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章