Unity3D 魔鬼與牧師遊戲記錄 MVC架構

2022-08-27 06:42:11 字數 2410 閱讀 7372

遊戲成品圖

設定60s倒計時——60s後如果未能安全運送所有魔鬼與牧師,遊戲失敗。

嘗試改進介面,對一些東西還不太熟悉。

1列出遊戲中提及的事物(objects)

object:三個魔鬼(用白cube表示)、三個牧師(用黑sphere表示)、一艘船、兩個岸

2遊戲架構:

iscenecontroller.cs和iuseraction.cs是介面類, iscenecontroller.cs定義場景控制方法,而firstcontroller.cs是控制乙個場景的具體場景實現,實現的函式定義在iscenecontroller.cs之中,而場景管理器不知道具體實現方法,具體實現由導演(ssdirector)決定。只有場景設定可見,保證了內部核心**的安全性。iuseraction.cs定義使用者互動方法,usergui.cs實現對應方法。mvc,達到模式,檢視,控制分離。

例如:1.接收到使用者點選事件(usergui.cs)

2.呼叫使用者介面函式(函式在iuseraction.cs中)

3.轉到函式實現——轉到場景控制器firstcontroller.cs

4.請求具體方法實現——轉到導演ssdirector.cs——控制

2.3在 gengameobjects 中建立 長方形、正方形、球 及其色彩代表遊戲中的物件。

遊戲中用白正方形表示魔鬼,黑球代表牧師,長方體代表船以及兩岸。

2.4用**列出玩家動作表(規則表),注意,動作越少越好

與規則表對應的動作函式表:

行為大致可以分為三種,上船、開船和下船。開船有限制條件,必須要有乙個牧師或乙個魔鬼船方可開動。

1.上船

分為兩種物件——牧師和魔鬼。上船這個動作可以把牧師或者魔鬼作為船的子物件,在船中還有空位的時候就可以加進設定子物件的**。為區分是魔鬼或者牧師,在預設的時候新增對應的tag。牧師為priest,魔鬼為devil

void

aboardtheboat(gameobject obj)

else}}

2.開船

船上必須有乙個牧師或者乙個魔鬼,將船從一岸到另乙個岸邊。

3.下船

不分物件,但分從船左船右下船,解除子物件繫結,再移動對應物件的位置。

public

void getofftheboat(int

side)

else

if (_instance.boat[side].tag == "

devil")

}else

if (_instance.state ==state.bstart)

else

if (_instance.boat[side].tag == "

devil")

}_instance.boat[side] = null

; }

}

關於**,將firstcontorller.cs掛載到空物件,將usergui.cs掛載到主攝像機即可執行

2.5修改**,使用 c# 集合型別 有效組織物件,通過 xxscenecontroller 物件 gengameobjects 互動完成遊戲邏輯。(這一點要求不同,現在改用課件框架。)如需要遊戲物件**,可以動態繫結。

2.6注意事項:

1.整個遊戲僅主攝像機和乙個 empty物件,其他物件必須**動態生成!!!。

使用預製動態生成物件。(未包含介面改進後的物件)

2.整個遊戲不許出現 find 遊戲物件, sendmessage 這類突破程式結構的 通訊耦合 語句。 違背本條準則,不給分

3.注意細節,例如:船未靠岸,牧師與魔鬼上下船運動中,均不能接受使用者事件!

大致**邏輯參考師兄部落格。

Unity 3D 牧師與魔鬼遊戲之智慧型幫助

在之前的作業中,曾經實現過牧師與魔鬼這個益智小遊戲,但是一些小朋友玩這個遊戲的時候可能有些困難 比如十年前在qq空間玩這個遊戲的我 因此,我們可以開發乙個autonext的功能,給小朋友提示一下下一步該怎麼操作。由於這次的智慧型設計比較簡單,只有三個牧師和三個魔鬼,因此我們可以使用狀態圖來幫助分析遊...

3D遊戲設計與分析 牧師與魔鬼V2

在動作分離版的設計,將上船 下船以及船的移動都分離出來,畫出簡略的uml圖如下 這個類是用來控制具體的遊戲事件,有三個方法 start update 和ssactionevent start 方法用於將ssdirector例項化,update 方法用於實現具體的遊戲事件,ssactionevent ...

Unity3D遊戲開發

入門級unity安裝教程 一 unity五大面板 unity3d的介紹 1 介面 選單 面板 元件 unity5.x 編輯器介紹 unity開啟篇 一 滑鼠右鍵 wsadeq前後左右上下移動 shift加速移動 滑鼠右鍵旋轉檢視 滑鼠中鍵移動檢視 alt 右鍵縮放 alt 左鍵旋轉物體視角 q移動場...