飛機、挖掘機,除此之外,Axure還可以設計一款真正有趣的小游戲——2048。
趕緊來看看是怎么弄的吧~廢話不多說,簡單來說,這篇文章就是為了紀念我的Axure修煉之路,第一炮:2048()
1、邏輯定義
第一步當然是定義好邏輯啦。(這里借助了XMind的力量)比較復雜的邏輯主要是集中在上下左右移動時的變化,以右移為例,窮舉出所有的可能性如下。當然這里只是窮舉了右移中其中一行,剩下的3行以及上移/下移/左移等,都是一樣的邏輯,只是ABCD對應的順序發(fā)生改變。至于其他方向順序是怎么樣的,同志啊,自己要多想想。
2. 初始化
首先就是要初始化咯~由于其實的3個數(shù)字為隨機擺放,因此一開始我設想用中繼器+Ma的方式來實現(xiàn)(提醒一下,這里容易走彎路),參考自
那么,問題就來了,移動的時候怎樣對中繼器中的值進行操作?(這時候很懷念數(shù)組,想要更新中繼器中的數(shù)值很簡單,但是想在外部讀取中繼器中的值。。難啊?。。?/p>
如果從外部無法讀取到中繼器中特定值,則無法根據(jù)上述的邏輯判斷來進行值的操作,思前想后了半天,鄙人想到一個取巧的方法,將中繼器中的值全部讀到一樣的4X4的矩形陣中,當然,這也不容易,不信你試試。
看明白了嗎?看明白就怪了。
簡單解釋一下: 在中繼器每項加載時,增加一個全局變量count,通過count判斷這個時候加載的是中繼器中第幾項值,如果是第一項,則賦值給4×4矩陣中的矩形1,以此類推。
沒錯,這個中繼器最后的作用就是用來初始化的[捂臉]……跟我初衷不一樣啊,大哥……
現(xiàn)在,我們就得到一個初始化帶三個數(shù)字的4×4矩陣A,下一步就是實現(xiàn)上下左右移移移……動大法。
3. 移動
如果到這里你都明白了,那么其實這篇教程的精華你已經(jīng)學習到了[捂臉]是的,最有成就感的其實就是把中繼器中的值讀出來。
好了,回到正題,上面我們得到一個初始化的矩陣A,但是對于矩陣元件來說,想直接進行移動操作還是比較有難度,因此我創(chuàng)建了16個全局變量A1…A4B1…..D4等,將矩陣中的值賦予它們。
注意到了嗎?賦值完后,我啟動了一個循環(huán),上文提到,每行的變化邏輯都是一樣的,所以我只寫了一行,剩下的三行就交給了這個循環(huán)。
接下來就是做苦工了,將上面腦圖中的邏輯用條件判斷語句表達出來,先以右移為例,畢竟我是右撇子。先取第一行的四個值,即A1-A2-A3-A4,將他們的值傳遞給新的4個變量ABCD。因為Axure沒有數(shù)組(再次吐槽),你不想把16個全部寫一遍那就乖乖的再搞四個變量出來。
為了減少元件數(shù)量同時清晰思路,我將上文中右移的邏輯分為四類:D空C空/D空C非空/D非空C空/D非空C非空。大佬判斷是哪個小弟干活,小弟就乖乖干。
這個時候其實已經(jīng)實現(xiàn)的七七八八啦,可以簡單的測試一下自己實現(xiàn)的邏輯是否正常,盡量這個時候就進行檢查,避免后面增加上下左移,搞得你頭暈眼花。
如果這個邏輯沒有問題,那就已經(jīng)把右移搞定,下面就是將剩下三個方向的邏輯代入到右移的套路中。簡單來看,如果右移第一行是A1A2A3A4–>ABCD,那么左移第一行就是倒過來的A4A3A2A1–>ABCD,下移是A1B1C1D1–>ABCD,上移就是巴拉巴拉。。
反正你就想方設法把剩下三個方向套用到右移已經(jīng)做好的模型里就是了。這個時候我們已經(jīng)完成移動的邏輯,需要的就是把這些變化完的值再給到矩陣A中。
到這里,你就已經(jīng)完成90%啦,剩下就是再隨便生成一個數(shù)添加到矩陣A里就行啦,啥?這也要我教?
4. 添加隨機數(shù)
差點忘記說,添加隨機數(shù)前,需要判斷用戶移動的動作是否有效,即移動時是否相鄰的值相同或者位置發(fā)生變化,如果沒有發(fā)生有效移動,那么是不能添加隨機數(shù)的,而且,如果判斷矩陣A已經(jīng)沒有空白位置,且無法發(fā)生有效移動,則游戲結(jié)束。判斷方法嘛。。很簡單嘛。。好好想想
現(xiàn)在講添加隨機數(shù),簡單粗暴的辦法就是用Ma生成一個1-16之間的整數(shù),如果生成1,則判斷矩陣A中矩形1是否為空,為空則給它一個值(也是用Ma隨機生產(chǎn)2或者4),不為空則重新生產(chǎn)一個整數(shù),一直到找到一個空值為止。啥?如果一直沒有為空的咋辦?上面那段話你沒看嗎,大哥??要先判斷游戲是不是已經(jīng)Over了好么!
5. 結(jié)語
這就完成了,是不是很簡單~隨便加加幾句文字,再美化美化就可以去忽悠人了啦~不是,就可以去與異性增進感情。附上源碼:
寫在后面,算法的三個結(jié)構(gòu)就是順序選擇和循環(huán),Axure可以實現(xiàn)這三點,基本上可以實現(xiàn)大部分軟件想要的效果,因此還是很強大的工具。當然,這個本來就是個原型工具,所以其實我就是為了學習和好玩才做了這么一個東西,真想編程去學C/C++啊,混蛋。
歡迎各位深入淺出地進行指導^_^
作者:HeqQite,一個在產(chǎn)品界摸爬滾打的軟件男
本文由 @HeqQite 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
1.《2048怎么玩看這里!Axure 設計之2048完全設計教程:4步打造可玩的小游戲》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《2048怎么玩看這里!Axure 設計之2048完全設計教程:4步打造可玩的小游戲》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/yule/2109556.html