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