最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

像素鳥(niǎo)游戲開(kāi)發(fā)(終極篇)

2017-12-17 22:23 作者:游戲理想國(guó)  | 我要投稿


各位讀者大家好,今天我們來(lái)探討自制像素鳥(niǎo)游戲的最后需要完成的內(nèi)容。

前兩期的內(nèi)容,我們分別完成了游戲的素材和核心對(duì)象的分析;以及游戲場(chǎng)景的布置,游戲?qū)ο笮▲B(niǎo)的創(chuàng)建。今天我們來(lái)接著探討后面的問(wèn)題。

1、小鳥(niǎo)對(duì)象的墜落。

上期我們實(shí)現(xiàn)了讓小鳥(niǎo)對(duì)象的自動(dòng)飛翔的動(dòng)畫(huà)實(shí)現(xiàn)。接著我們來(lái)實(shí)現(xiàn)小鳥(niǎo)對(duì)象的墜落方式。

所謂的墜落,從物理上說(shuō),就是讓小鳥(niǎo)按照自動(dòng)落體的方式向下方移動(dòng)。在C#的設(shè)計(jì)中,對(duì)象的位置是通過(guò)X軸,Y軸來(lái)對(duì)對(duì)象進(jìn)行標(biāo)記的。而0的坐標(biāo)點(diǎn)是在窗體的左上角,因而我們要讓小鳥(niǎo)實(shí)現(xiàn)墜落,就是實(shí)現(xiàn)小鳥(niǎo)在Y坐標(biāo)軸上的絕對(duì)值越來(lái)越大。 

因而我們,在實(shí)現(xiàn)上就是重新新建一個(gè)定時(shí)的控件timmer,這個(gè)定時(shí)器定時(shí)執(zhí)行,不斷獲取到小鳥(niǎo)當(dāng)前的Y坐標(biāo)的數(shù)值,然后給小鳥(niǎo)的Y軸上不斷減小減去35。代碼如下圖

這樣就是實(shí)現(xiàn)了小鳥(niǎo)的墜落情況。


2、小鳥(niǎo)對(duì)象的上升。

實(shí)現(xiàn)小鳥(niǎo)對(duì)象的上升的原理,和下降的原理,基本一致,也是改變小鳥(niǎo)在Y軸上的坐標(biāo)。代碼如下圖。

區(qū)別在于小鳥(niǎo)上升的觸發(fā),不是自動(dòng)觸發(fā)的而是,由玩家進(jìn)行控制的。因而我們?cè)诖绑w上新增代碼,實(shí)現(xiàn)在窗體中點(diǎn)擊鼠標(biāo)左鍵或者點(diǎn)擊鍵盤(pán)空格的時(shí)候,再去觸發(fā)小鳥(niǎo)的上升事件。這樣就實(shí)現(xiàn)了小鳥(niǎo)的上升。 

3、讓整個(gè)畫(huà)面動(dòng)起來(lái)。 

當(dāng)你實(shí)現(xiàn)了今天的1和2以后,你就完成了所有對(duì)于小鳥(niǎo)的操作。一啟動(dòng)程序,小鳥(niǎo)就會(huì)定時(shí)向下墜落,當(dāng)你點(diǎn)擊窗體的時(shí)候,小鳥(niǎo)就會(huì)上升。

但是你發(fā)現(xiàn)一個(gè)問(wèn)題,小鳥(niǎo)只是在原地運(yùn)動(dòng),而并未向前運(yùn)動(dòng)。這在這個(gè)游戲中,就用到了物理的相對(duì)參照物的概念。

其實(shí)在整個(gè)游戲中,小鳥(niǎo)就是在一個(gè)Y軸上上下調(diào)整而已,而給玩家的印象確實(shí)小鳥(niǎo)在向前飛翔。這是在人們的潛意識(shí)中是,水管是不會(huì)動(dòng)的,而小鳥(niǎo)是運(yùn)動(dòng)的。所以給玩家的概念是小鳥(niǎo)在飛翔。

搞定清楚了這個(gè)問(wèn)題,我們就知道如何實(shí)現(xiàn)畫(huà)面運(yùn)動(dòng)起來(lái),和1,2的原理一樣,變更水管在X軸上的方向。我們?cè)傩略鲆粋€(gè)定時(shí)器,通過(guò)定時(shí)器,不斷向左邊移動(dòng)水管即可。代碼如下。

4、對(duì)于成功失敗的判定。 

以上的實(shí)現(xiàn),基本就實(shí)現(xiàn)了游戲的大部分功能?,F(xiàn)在我們來(lái)實(shí)現(xiàn)游戲的開(kāi)始,游戲的開(kāi)始比較容易實(shí)現(xiàn)。我們?cè)谠O(shè)計(jì)界面的時(shí)候,將我們之前三個(gè)timer設(shè)定成為開(kāi)始不啟動(dòng),當(dāng)用戶點(diǎn)擊開(kāi)始按鈕的時(shí)候,再啟動(dòng)定時(shí)器,同時(shí)將小鳥(niǎo)對(duì)象以及水管對(duì)象定位到游戲的初始位置。代碼如下。

游戲失敗的判定,在游戲中主要有三種。

1>小鳥(niǎo)的上升超出了游戲的上邊界,即小鳥(niǎo)的Y坐標(biāo)大于0,這時(shí)候判定游戲失敗。

2>小鳥(niǎo)的墜落也小于了游戲的下面草地的坐標(biāo),也是小于Y坐標(biāo)的某一值,這時(shí)候判定游戲失敗。

3>小鳥(niǎo)碰到了上管或者下管。這也是定位小鳥(niǎo)的X坐標(biāo)和Y坐標(biāo)和,水管的坐標(biāo)有重合的時(shí)候判定游戲失敗。 

4>坐標(biāo)定位技巧,由于在游戲中,小奶是一個(gè)四方體,而不是一個(gè)坐標(biāo)值,因而在判定上比較麻煩。在這里筆者使用的是小鳥(niǎo)的核心坐標(biāo)點(diǎn)判定,也就是圖片的中心點(diǎn)的坐標(biāo),要獲得小鳥(niǎo)的中心點(diǎn)的坐標(biāo)的實(shí)現(xiàn),就是小鳥(niǎo)的坐標(biāo),X軸和Y軸各自添加小鳥(niǎo)的寬高的一半的值,就可獲得小鳥(niǎo)的中心點(diǎn)坐標(biāo)值。

5、實(shí)現(xiàn)每一次水管的不同高度。

做完了以上之后,就實(shí)現(xiàn)了小鳥(niǎo)跳過(guò)水管的游戲要求。但是目前我們的小鳥(niǎo)跳過(guò)的只是固定高度的管道,且只能跳過(guò)一個(gè)管道。

1>實(shí)現(xiàn)管道循環(huán)。

管道循環(huán)的實(shí)現(xiàn),就是當(dāng)管道一直向畫(huà)面左邊移動(dòng),當(dāng)移動(dòng)出畫(huà)面之后。管道的X軸坐標(biāo),重新調(diào)整至畫(huà)面的右方,這樣就實(shí)現(xiàn)了管道的重復(fù)。

2>實(shí)現(xiàn)管道的上下不一。

要實(shí)現(xiàn)管道的上下不一,我們要用到的是隨機(jī)數(shù)的算法。首先我們給兩個(gè)管道之間的距離固定一個(gè)數(shù)值,在這個(gè)游戲中我們初始的距離是150px,那么整個(gè)畫(huà)面中,整個(gè)高度減去地下的高度,減去中間的固定數(shù)值,剩下的就是兩個(gè)管道的高度之和。

我們假設(shè)兩個(gè)管道之和數(shù)字是600吧,那么我們就先取1到600的隨機(jī)數(shù)字作為,上管道的高度,然后用600的總數(shù)減去上管道的高度,就獲得到了下管道的高度。

每次當(dāng)管道劃出左邊畫(huà)面,跳轉(zhuǎn)到又邊畫(huà)面的時(shí)候,我們就重新取一個(gè)隨機(jī)數(shù),計(jì)算一下管道的高寬,從而實(shí)現(xiàn)管道的高度調(diào)整。

3、游戲難度的增加。

左上角是有游戲得分的,如果游戲中兩個(gè)管道的距離是固定不變的,那么整個(gè)游戲?qū)](méi)有難度。玩家就會(huì)一直玩下去,當(dāng)然這也是很枯燥的。

因而我們,會(huì)有分?jǐn)?shù)機(jī)制,隨著玩家的不斷游玩,游戲分?jǐn)?shù),會(huì)不斷增加。隨著玩家分?jǐn)?shù)的增加,筆者實(shí)現(xiàn)的就是不斷的減小,兩個(gè)管道間的距離,增加玩家的難度,直至最終游戲結(jié)束。

當(dāng)然,游戲設(shè)計(jì)者,也可以設(shè)計(jì)為,隨著分?jǐn)?shù)的提高,逐步增加管道向左移動(dòng)的速度,來(lái)增加難度。


實(shí)現(xiàn)了這些內(nèi)容,基本上像素鳥(niǎo)小游戲的所有內(nèi)容,就全部完成了。筆者錄制了一個(gè)游戲的游玩視頻供大家查看。


相應(yīng)的游戲的源碼素材,筆者也會(huì)共享在百度云內(nèi)供大家下載。

百度云的分享密碼,大家只要在公眾號(hào)內(nèi),給公眾號(hào)發(fā)送“像素鳥(niǎo)”,既可以獲得下載密碼。謝謝合作。

    如果您喜歡本文的話,那就動(dòng)動(dòng)手指,把他轉(zhuǎn)發(fā)到您的朋友圈吧。

    如果您想持續(xù)關(guān)注筆者的作品的話,那就在微信里搜索RPG游戲評(píng)論者關(guān)注吧。您的關(guān)注和持續(xù)閱讀是筆者繼續(xù)下去的最大動(dòng)力?。?!


像素鳥(niǎo)游戲開(kāi)發(fā)(終極篇)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
枝江市| 安阳县| 峡江县| 天峨县| 达拉特旗| 印江| 柳江县| 巴马| 中西区| 乐业县| 海城市| 盐池县| 合阳县| 广饶县| 靖远县| 武宣县| 拉萨市| 灯塔市| 科尔| 临夏市| 贵港市| 航空| 桦川县| 麻江县| 县级市| 汉川市| 双辽市| 磴口县| 蛟河市| 丰县| 德化县| 石楼县| 都昌县| 南和县| 荥经县| 南乐县| 游戏| 揭阳市| 分宜县| 滕州市| 凯里市|