如何利用axure制作簡易版的推箱子
我出的這一版非常簡單,就是讓大家熟悉推箱子游戲做出來的原理,當然你可以花時間優化一下,比如加個方格子,多設置幾個障礙物,多加幾個箱子等等。熟悉基本原理,拓展性的東西自己摸索就會了,這就是很多大神一上來搞得很復雜,導致很多人覺得很牛逼的樣子。附上原型圖,大家可以湊合著看看草圖——推箱子游戲。
看到很多產品大神用axure玩的不亦樂乎,還能拿來做很多小游戲,我也蠢蠢欲動來玩一下。推箱子恰巧是入門級,教程最多的進階版axure產品,大家看到大神們的教程都驚呆了,怎么那么的動作條件,于是連嘗試的勇氣都沒有了……
沒關系,今天我來教大家一個最最最最簡單的推箱子教程,相信我,你一定可以很快學會上手的。之所以網上的推箱子教程那么難學,主要是因為大神們都是一氣呵成,沒有把動作流程拆解出來教學,只是單純的把設置流程截圖出來,導致用戶在看的時候非常懵逼,我擦,這一步是什么意思啊,怎么變量怎么過去的啊……
沒關系,接下來就是我的簡易版教學,首先我們來看需要哪些元件和變量。
四個對象:
- 人(動態面板)
- 箱子(動態面板)
- 目的地(矩形元件)
- 墻(矩形元件)
四個全局變量
- renX:人的x坐標;
- renY:人的y坐標;
- xiangzi X:箱子的x坐標;
- xiangziY:箱子的y坐標。
實現流程將整個過程分為四步:
- 移動人。首先人要先移動吧,人不移動怎么推箱子呢;
- 箱子跟著人一起移動。人可以自由移動了,那就要可以帶著箱子一起移動了吧,其實這一步是最簡單的,待會詳細講一下你就明白了;
- 讓箱子與目的地坐標重合。這是判斷是否闖關成功的標準對不對;
- 設置圍墻。前面3步完成后,人和箱子都可以無拘無束的移動了,這一步就是給他們加個圍欄,讓他們只能在圍欄中移動。
那么,這就是我將推箱子游戲分析后,簡化的四步驟,不要著急,一步一步來,很多大神一開就將所有預設條件都設置進去,所以用戶看的才那么懵逼啊對不對。
- 第一步,移動人
如圖,我創建了一個人的箱子,然后創建了一個移動手柄,上下左右按鍵。實現的動作效果就是:點擊鍵盤的按鍵,人可以上下左右移動,這里我以“上“”按鍵為例,設置動作。
第一步,鼠標單擊時,先用全局標量記錄下當前沒有移動時人的坐標位置,這點很重要,剛才創建的全局變量renX和renY就是用來記錄人的坐標位置的。下一步,就是移動人,記住,移動人的時候采取相對位置,意思就是相當于當前位置,我將人的縱坐標移動了“-30”(上移),就是這個意思。
同理可得,其他三個下,左,右的動作設置,這還能不明白嗎?
做完了之后預覽一下,看看人是不是可以通過上下左右按鍵進行移動了。還有一點,這里我設置移動距離為30,因為我的方塊大小就是30,剛好一個身位,所以這個距離視你設置方塊大小而定,保持一致。
- 第二步,移動箱子
很多人在這一步會很懵,屢一下先,人碰到箱子后,再點擊移動按鍵,箱子就會和人朝一個方向位移相同距離。想明白了,這一步就是要對人在“移動時”設置動作。
先設置動作條件,當人接觸到了箱子時,再移動的話, 先記錄下當前未移動時箱子的坐標位置,用全局變量xiangzi X和xiangziY記錄,然后移動箱子,選擇跟隨就完事了。
“移動-跟隨”的意思就是箱子跟著人一起移動相同的距離,比如人往右移動30,箱子也會往右移動30,推箱子的原理就是這樣的。
至此,你已經可以預覽一下了,是不是實現了,人可以自由移動,然后在接觸到了箱子之后,可以推著箱子一起移動呢?不接觸箱子的話,箱子就不會動,放心吧
- 第三步,設置一個目的地
這個原理其實就很簡單,把目的地用一個元件來代替,當箱子和元件的坐標位置重合的時候就算闖關成功,然后出現提示標語“闖關成功”。這里,我用了一個雪花來代替。
當箱子和雪花重疊時,提示成功。
那么,這一步就是對箱子設置動作,當箱子移動時,如果接觸到了雪花,則顯示成功;反之則隱藏提示框。
至此,完成前面三步,一個推箱子就算是完成了,但是現在的情況時,人和箱子都是可以隨便移動的,沒有一個邊界,也就是墻,同時,墻內還會有障礙物,如果碰到了障礙物,是不能往障礙物方向移動的,這個實現過程就在第四步。
- 第四步,設置墻和障礙物
先屢清楚思路,當人移動時,正常情況下,可以自由移動;碰到墻和障礙物的時候,就要保持原位置不動;當箱子被人推著移動時,正常情況下可以自由移動;當碰到墻和障礙物時,箱子和人都保持原位置不動。這樣理解,我們就很好設置動作了。
這里,我拉出來了四條直線作為墻,一個黑色的方塊作為障礙物,就是很簡單嘛,為了讓大家好理解。
這里,我再以人為為例,設置它碰到障礙物的動作。
當人移動時碰到了障礙物,移動人的位置到“絕對位置”的renX和renY的坐標,想沒想起來之前我們設置的,人在每一次移動時,先記錄他的位置,再移動,那記錄他的坐標位置的全局變量就是renX和renY。
此時,設置完成之后,大家可以預覽一下,當人往障礙物方向移動時,就不會有反應,因為讓人移動到的絕對位置就是上一次記錄的位置!同理,箱子也是一樣。
這里注意:不僅要移動到箱子到絕對位置,還要讓人也移到絕對位置,如果不設置人的話,就是箱子不能動,而人還可以動,就會跟箱子重疊了!我這里以箱子為例,把設置動作展示出來。
就是這樣,說白了就是碰到障礙物就保持上一次全局變量記錄的位置,當然碰到墻壁也是一樣,所以大家可以自己練習一下。
原型地址:https://obiyo5.axshare.com
本文由 @?海濤 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
已經解決了,我只要加入動效就出問題,去掉就好了。我不知道這是為什么,是AXURE 的BUG吧
阿西吧,好煩,能不能跟我解答一下,作者大哥!
我的人和箱子是重合在一起走的,我和你的邏輯跟步驟一模一樣啊,這是為什么呢?這個移動時的事件,應該叫移動結束時才對吧。
為什么我設置移動時:如果接觸區域箱子則箱子跟隨。卻總是人走到箱子上面下一次點擊才移動啊
您好,我最近在做電商后臺真的壓力大,您的電商后臺原型圖能發我一份嗎984957476@qq.com,謝謝您
????你怎么知道我做的有電商原型圖???
現在的伸手黨真是無孔不入