如何利用axure制作簡易版的推箱子

7 評論 8927 瀏覽 2 收藏 10 分鐘

我出的這一版非常簡單,就是讓大家熟悉推箱子游戲做出來的原理,當然你可以花時間優化一下,比如加個方格子,多設置幾個障礙物,多加幾個箱子等等。熟悉基本原理,拓展性的東西自己摸索就會了,這就是很多大神一上來搞得很復雜,導致很多人覺得很牛逼的樣子。附上原型圖,大家可以湊合著看看草圖——推箱子游戲。

看到很多產品大神用axure玩的不亦樂乎,還能拿來做很多小游戲,我也蠢蠢欲動來玩一下。推箱子恰巧是入門級,教程最多的進階版axure產品,大家看到大神們的教程都驚呆了,怎么那么的動作條件,于是連嘗試的勇氣都沒有了……

沒關系,今天我來教大家一個最最最最簡單的推箱子教程,相信我,你一定可以很快學會上手的。之所以網上的推箱子教程那么難學,主要是因為大神們都是一氣呵成,沒有把動作流程拆解出來教學,只是單純的把設置流程截圖出來,導致用戶在看的時候非常懵逼,我擦,這一步是什么意思啊,怎么變量怎么過去的啊……

沒關系,接下來就是我的簡易版教學,首先我們來看需要哪些元件和變量。

四個對象:

  1. 人(動態面板)
  2. 箱子(動態面板)
  3. 目的地(矩形元件)
  4. 墻(矩形元件)

四個全局變量

  • 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協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 已經解決了,我只要加入動效就出問題,去掉就好了。我不知道這是為什么,是AXURE 的BUG吧

    來自湖北 回復
  2. 阿西吧,好煩,能不能跟我解答一下,作者大哥!

    來自湖北 回復
  3. 我的人和箱子是重合在一起走的,我和你的邏輯跟步驟一模一樣啊,這是為什么呢?這個移動時的事件,應該叫移動結束時才對吧。

    來自湖北 回復
  4. 為什么我設置移動時:如果接觸區域箱子則箱子跟隨。卻總是人走到箱子上面下一次點擊才移動啊

    來自湖北 回復
  5. 您好,我最近在做電商后臺真的壓力大,您的電商后臺原型圖能發我一份嗎984957476@qq.com,謝謝您

    來自湖北 回復
    1. ????你怎么知道我做的有電商原型圖???

      來自浙江 回復
    2. 現在的伸手黨真是無孔不入

      來自四川 回復