標籤

2018年1月12日 星期五

Unity小試身手-警察抓小偷

Date: 20180112
Version: 1

主要內容為在一個棋盤格式的地圖中,警察要在棋格上移動,找出小偷躲藏的地方。












規格:
Unity: Unity 2017.3.0f3 (64-bit)
Asset: Fungus
Android SDK:Android 6.0 API 23, Android Tool 25.0.0
JDK:jdk-8u77-windows-x64 (jdk1.8.0_77)

學習平台:
1. fungus詢問平台
https://muut.com/fungus#!/

2. 陳間時光 youtube
https://www.youtube.com/channel/UCXWxqnjzo4q6NhQiLhQFk7g


學習記錄:
collider -> clickable -> flowchart(can use object click action)
rigibody->collider->other.trigger(script needed)

Scripting > execute lua
-----------------------------------------------
local thief = getvar(flowchart, "Thief")
if (thief.value == 1)
then
thief.value = 2
--print(thief.value)
--return(thief.value)
end
----------------------------------------------
說明:
--註解
getvar 取得在flowchart中的fungus變數名稱"Thief"
local 只給fungus使用
thief.value = 2 將thief物件中的數值value改為2,此時fungus中的Thief會變為2
print(thief.value) 會在debug.log列印出來,除錯用
return(thief.value) 將thief.value回傳給Return Variable
Return Variable 要回傳的fungus變數,可為<None>
有return(...),Return(<None>),沒有回傳變數,故回傳值回傳後就不見了,程式正常
有return(...),Return(...),將回傳值回傳給回傳變數,程式正常
沒有return(...),Return(<None>),沒有回傳值,也沒有回傳變數,程式正常
沒有return(...),Return(...),沒有回傳值,有回傳變數,回傳失敗,程式error
lua if 結構式為: if () then {} elseif () then {} else {} end
lua 且(and )、或(or),不是&&或是||



遊戲步驟:決策 > 移動

決策說明:(三者擇一)
1. 調查:可得知與之相連的棋格是否有小偷,return 有無小偷。
2. 部署:在原地點佈下警力,小偷不會進入此區域,但有持續時間/次數之限制。
2. 技能:可使用角色技能。

移動說明:選擇與之相連的棋格進行移動,return 有無小偷。
1. 有小偷:逮捕,遊戲結束,按照步數進行獎懲。
2. 無小偷:進行循環。

初始:
設定警察、小偷位置
1. 設定警察位置,九宮格共9個位置(set police.random = 1-9)
2. 設定小偷位置,不能與警察同格(set thief.random = 1-9,  while (thief == police){set thief.random = 1-9})

流程:
警察(決策>移動) > 判斷(抓住與否) > 小偷(移動)

決策:
調查:
1. 警察四周可移動之位置,確認是否有小偷,若有則回傳對話框saydialog,if (police == thief or police == thief ){},使用lua撰寫。

部署:
1. 鎖定位置,讓小偷無法進入,但不影響警察進出。

警察移動:
1. 判斷自身位置(九種位置)(if police == 1-9)(9種){依照自身位置給出方向(角2、邊3、心4,上下左右(menudialog)}(24種)
    1-1. 判斷周遭狀況(部署)
2. 連至相對應的block(move to 1-9)(step++)(set police = 1-9)

判斷:
1. 若警察和小偷的位置一樣,則跳出對話後,給出兩種選擇"重新開始"、"結束遊戲"。

小偷移動:
1. 判斷警察和小偷位置後,使用if功能,確認出小偷可以移動之方向,若距離一樣,則使用隨機給出方向。
2. 使用lua。

目前會暫停這項計畫,發覺這遊戲好像沒這麼好玩,需要重新思考一下,可能會繼續卡牌遊戲的設計吧!

沒有留言:

張貼留言