原創|使用教程|編輯:郝浩|2016-01-18 17:25:29.000|閱讀 667 次
概述:作為入門工具Axure,功能著實強大,很復雜的邏輯結構以及交互基本都能以低配的形式實現,但是對于快速原型產出的出發點來說,Axure其實相當影響效率,除非自定義自己的組件庫,能夠時常復用。我需要的僅僅是拼積木,你卻給了我一堆木頭。不扯淡,先來瞄一瞄效果:
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
方案A:使用動態面板,命名為bird:設定三種狀態的萌鳥state,分別為初始狀態,上揚以及下墜,初始狀態水平線夾角0°,上下飛行狀態下各自為45°以及-45° 。
方案B:image組件自帶的enable以及select功能變換圖片(這個水深,觸及到image組件的某些機制,很不幸最初我嘗試了下這個坑爹的東西)
方案A:采用最為土的動態面板輪播效果,設置repeat屬性,設置兩個相同背景的state,不斷輪播,注意設置切換時間為15000ms,大概是緩慢移動的概念,勉強實現一個低配版的推進效果:會稱之為低配版,是因為Axure自帶的動畫效果在切換過程的動畫不是線性平滑地移動,而是帶有加速效果的。
方案B:另一種做法是準備兩張一樣的背景計為A和B,然后不斷向左移動A圖片,當A完全劃出界面的左邊界時自動將A移動到界面的右邊界,同理B也是一樣的邏輯,循環推進,完美實現推進效果。
水管的推進過程:采用了上述推進方式的PlanB,即隊尾到隊頭循環重現的做法,這里有幾點要說明:
缺口的實現:想想也知道肯定需要動用隨機數啦,搬出JavaSript的函數:Math.random()生成一個介于0到1的隨機數,缺口的寬度我們設定為某個數值,這里我選擇100,可以根據需要調整,我們要做的是讓上下水管根據這個隨機數調整出一定的缺口,方案由很多種,這里我選擇最土的辦法:選定一個隨機數A=0~99,將均勻分布在屏幕上下的兩個水管分別移動A以及(100 – A)的距離,其實是為了降低難度,降低水管缺口的波動,但是實際上游戲難度真心呵呵噠,玩了你就知道啦!具體隨機數生成的公式為:Math.floor(Math.random()*100),用個floor取隨機數的下邊界,得到0~99中的某個數值。BTW,每個水管有不同的缺口,所以你懂的,在之前的水管onShow事件中就要重新更新這個隨機數啦。
當笨鳥觸及水管、地面時,游戲結束,水管停止推進,笨鳥不再動彈,并彈出game over面板并且出現retry選項,點擊可以重新開始:首先鋪好地面,在bird面板中的onMove事件中設置前置條件:if This is not over XXX && XXX && XXX…邏輯上是如果沒觸碰到地面或是水管,則可以移動,否則,設置一個標志位用作控制信號,提示各個部件游戲玩完啦,這里我用isOver來判定,如果為0則游戲進行中,為1則游戲結束。游戲結束時需要告知以下組件,一個是笨鳥的上升動作,一個是水管的推進動作,當isOver為1時就都憋動啦,老實呆著,實現的方式也是設置前置條件,這里就不贅述啦。
點擊計數可做可不做,在onPageClick事件中設置一個計數器采集click發生的次數即可;另一個跨越水管的計數方案是這樣的:每個水管的右側邊界添加一條垂線用作FinishLine,當笨鳥觸及這條線后計數+1,這里需要讓垂線跟隨水管同步移動和重置循環,并且存在3條。
至此,《Flappy Bird》總算完成了90%。回顧下所需要的知識:對各種JS函數的了解,事件驅動機制的了解,動態面板的了解,Axure交互機制的了解等等。這些東西的學習需要一定的時間,但也不是很難,我相信你也可以完成的。
本文轉載自,作者小野野野
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn