自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我是如何從0開始,在23天里完成一款A(yù)ndroid游戲開發(fā)的

移動(dòng)開發(fā) 游戲開發(fā)
我想開發(fā)一款 Android 游戲有一段時(shí)間了,但從來沒有一個(gè)好的 idea。最近,我一直在玩地鐵跑酷,發(fā)現(xiàn)它實(shí)在太有意思了。

【Part 1 – 開篇與前 2 天】

開篇

我想開發(fā)一款 Android 游戲有一段時(shí)間了,但從來沒有一個(gè)好的 idea。最近,我一直在玩地鐵跑酷,發(fā)現(xiàn)它實(shí)在太有意思了。通常來講,我不喜歡沒有終點(diǎn)的游戲,因?yàn)槟悴豢赡芡P(guān),所以每次我玩這些游戲的時(shí)候,我總會(huì)隨意設(shè)置一些目標(biāo)然后再去玩。這次我的目標(biāo)是得到 30 倍分?jǐn)?shù)復(fù)乘技能。當(dāng)我實(shí)現(xiàn)這個(gè)目標(biāo)的時(shí)候,我就獲得一些技能然后就會(huì)迷上這款游戲。這款游戲也讓我意識(shí)到,一款 Android 游戲沒有必要非要有什么大的來頭和復(fù)雜的游戲設(shè)置,簡單隨意就好。

不管怎樣,我覺得一個(gè)游戲如果能做到僅需你將手指對(duì)準(zhǔn)一個(gè)東西然后向它射擊就很好了。如果再能有一個(gè)系統(tǒng)性的任務(wù),每天每周需完成的挑戰(zhàn)和一些武器升級(jí)的話,那么這個(gè)游戲就會(huì)很有趣了。我的第一個(gè)想法是創(chuàng)立一款游戲,讓一些可愛的小怪獸在一個(gè)美麗的場(chǎng)景中到處跑,可以藏在樹后面,或者躲在老房子里,甚至可以是在云朵里。你需要做的就是盡可能多地將它們打下。我說的可愛的小怪獸,指的是一些像 Gremlins(小精靈)之類的玩意。它們會(huì)搬一些體形巨大的機(jī)器,或者是做一些其他的愚蠢的事情來讓你哈哈大笑。當(dāng)然,作為一個(gè)擁有零預(yù)算的獨(dú)立游戲開發(fā)者,就按我可以想象到的動(dòng)畫復(fù)雜程度來看,我知道這些將需要投入大量的藝術(shù)設(shè)計(jì)和開發(fā)時(shí)間。所以我決定采用一種不同的設(shè)計(jì),這樣我可以在合理的時(shí)間內(nèi)自己完成。

我現(xiàn)在的目標(biāo)是在一個(gè)月內(nèi)開發(fā)一款有趣而可玩的 Android 游戲。

第 1 天:后院大恐慌

在逛動(dòng)畫素材網(wǎng)站的時(shí)候,我發(fā)現(xiàn)了一些給力又免費(fèi)的僵尸動(dòng)畫。有僵尸走動(dòng)、僵尸被槍擊中之類的。所以,這可能是個(gè)類似于僵尸射手的游戲。

游戲角色會(huì)在他的走廊上,射殺從外面的麥田涌來的僵尸。游戲的名字就叫后院大恐慌。你可以轉(zhuǎn)換不同的游戲角色,老奶奶、拿著獵槍的摳腳大漢或者是拿著遠(yuǎn)射程來復(fù)槍的大兵。下圖是非常非常草的草圖。

[[88596]]

更新:我剛才玩了會(huì)僵尸在美國。游戲倒是挺有意思,但是像瘋子一樣一直按射擊多少有點(diǎn)無聊。我打算把后院大恐慌設(shè)計(jì)成一碰就死的模式,至少僵尸里不要有 boss。我仔細(xì)的想了想,僵尸主題對(duì)我來說有點(diǎn)太陰郁了,而且只要市面上有,這個(gè)類型就不稀罕了。所以,我不確定游戲會(huì)不會(huì)做成這個(gè)類型。另外,這個(gè)游戲看起來會(huì)涉及到 3D 圖形,不過我會(huì)堅(jiān)持 2D,至少我的第一個(gè)安卓游戲會(huì)堅(jiān)持。

第 2 天:安裝 Eclipse,選擇游戲庫

我下載了安卓包,然后在 Linux 系統(tǒng)上安裝了 Eclipse。 能在 Galaxy S2 手機(jī)上運(yùn)行“Hello World”。 你好 Java。我真的得記住所有這些 Java 指令,因?yàn)閺?2002 起,我就沒用過這些玩意兒了。

看著這些 2D/3D OpenGL 類的東西,似乎用工具包/庫來搭建游戲會(huì)是一個(gè)好辦法。我從 NordicGame2013 上弄到一些免費(fèi)的 Unity3D 序列號(hào),但是還沒有在 Google Play 上發(fā)行的權(quán)限。所以我想我得暫時(shí)跳過 Unity 了?,F(xiàn)在我正著手于 CoronaSDK 和一些其他的庫。

【Part 2 – 第 3 至第 5 天】

第 3 天:一個(gè)新的游戲點(diǎn)子

在網(wǎng)上泡 Android 相關(guān)論壇,找點(diǎn)子的時(shí)候,我看到了《Revenge of the Titans》的一則廣告。有著復(fù)古圖像和漂亮動(dòng)畫的酷游戲。我也能做復(fù)古圖像。所以,外星人會(huì)從太空降落到后院……

不對(duì)!后院貌似不是個(gè)好點(diǎn)子。我想我得給游戲取個(gè)新名字了。

外星人在邊界上攻擊了遠(yuǎn)程防守站。他們摧毀了自動(dòng)系統(tǒng),所以你不得不手動(dòng)操作并射擊。這個(gè)游戲可以叫 MANUAL OVERRIDE 或 EMERGENCY OVERRIDE。我在網(wǎng)上和 Google Play 上查了一下,貌似這兩個(gè)名字,別人都還沒用的。

外星人的大型飛船在一個(gè)停靠站著陸,你必須要把他們趕在。他們可能躲在油桶后面,或者是已著陸的飛船后面等等。我想在游戲中加一些可摧毀的東西,放在敵人旁邊。游戲可能叫 DOCKING BAY 或 DECK 42 之類的名字。

名字聽起來不是那么令人興奮?嗯,是的。

第 4 天:一個(gè)轉(zhuǎn)變

我一直在嘗試畫停靠站的圖形,但他們看起來很垃圾,所以我正放棄了這個(gè)點(diǎn)子。戰(zhàn)斗肯定是在太空中進(jìn)行,這點(diǎn)不用改變。外星人會(huì)從屏幕的一端出來,你可以在他們到達(dá)屏幕另一端之前射擊他們。在底部有一些能被摧毀的東西。外星人可能躲在這些東西后面,你可以將這些東西打掉或者在上面射出幾個(gè)洞。下圖是一個(gè)例子,里面有塔,衛(wèi)星接收器和其它一些東西。

[[88597]]

我的想法是讓玩家在有限的時(shí)間內(nèi)(比如說一分鐘),盡可能擊斃更多的外星人。

由于這個(gè)游戲有一個(gè)太空主題,我瀏覽了自己的字體集,并且找出了一些很酷的銀河字體。目前,我將使用 AdourGM 字體,用于顯示游戲中的文本,比如:points 和屏幕選項(xiàng)等。

受到 Gimp 的星云教程的啟發(fā),我使用 Gimp 完成了上圖。讀了 Gimp 的星云教程,自己做了一些調(diào)整,我在幾個(gè)小時(shí)內(nèi)完成上述圖。我討厭在一件事情上花費(fèi)太多時(shí)間,不過,還好這個(gè)背景在這個(gè)游戲的大部分地方中都能用到。

第 5 天: libGDX 和圖形的想法

我選擇了將要使用的庫。它基于 java 語言,看似相當(dāng)?shù)耐暾N覈L試搭建并調(diào)試了一個(gè)測(cè)試程序,可以很快上手。但我仍然困惑是使用場(chǎng)景(Scene),角色(Actor)以及其它的特性,還是像以往那樣自己搭建這些東西。這個(gè)庫的文檔缺少示例,也沒介紹如何結(jié)合,這種情況下,我猜想自己將會(huì)不得不依賴于 Google。例如,沒有任何解釋,你應(yīng)該如何連接角色(Actor)和怪物(Sprite)。如果你有近 20 個(gè)圖形(或者其他類似的東西)一樣的怪物(Sprite),應(yīng)該如何處理。

對(duì)于第一個(gè)項(xiàng)目,我想我剛學(xué)會(huì)如何使用怪物(Sprite),然后使用以前的經(jīng)驗(yàn)來構(gòu)建余下的。對(duì)于將來的一些項(xiàng)目,我可能會(huì)更聰明,會(huì)清楚哪些我需要使用的東西已經(jīng)有了。我只是討厭先學(xué)了很多了,然后發(fā)現(xiàn)框架或者庫不夠靈活多變,不足以滿足我將來可能遇到的一些非常規(guī)的想法。

下面是我對(duì)復(fù)古圖形的外星人的一些想法。大部分的時(shí)間,我先畫在紙上。這也許只是一種習(xí)慣,但遠(yuǎn)離鍵盤和顯示器會(huì)讓我集中精力。

[[88598]]

【Part3 – 第 6 至第 8 天】

第 6 天:第一批外星人和屏幕方向

好了,現(xiàn)在有了一些復(fù)古風(fēng)格的外星人它們正在到處飛。抱歉,暫時(shí)還沒有 demo。這款 Andriod 游戲目前只有 .apk 格式的安裝包。想必你不大可能安裝一個(gè)陌生人發(fā)給你的安裝包??偟膩碚f,目前背景和星星已經(jīng)可以載入而且還會(huì)慢慢移動(dòng)。為了讓星星滾動(dòng)我在星星圖案上調(diào)用了 setV ()和 setV2()函數(shù),并逐個(gè)增加計(jì)時(shí)器的值。像這樣:

scrollTimer -= delta*0.014;if (scrollTimer < 0.0f)    scrollTimer = 1.0f;sStars.setV (scrollTimer);sStars.setV2(scrollTimer+1);

然后出現(xiàn)了一些外星人,它們會(huì)向右移動(dòng)。這就是這款游戲目前所有的功能。我仍然在學(xué) libGDX,因此會(huì)花大量時(shí)間 Google、閱讀手冊(cè)或是看視頻。

小貼士:我注意到一些借助 libGDX 開發(fā)的游戲通常會(huì)固定屏幕方向。在翻轉(zhuǎn)設(shè)備時(shí)游戲界面不會(huì)轉(zhuǎn)動(dòng)。我在 SO(StackOverflow)的一些缺頭少尾的跟帖和評(píng)論中找到了一個(gè)簡單的解決辦法:只要將 AndriodManifest.xml 文件中的 landscape 用 sensorLandscape 替換就可以讓屏幕隨著設(shè)備一起自動(dòng)翻轉(zhuǎn)。

第 7 天:改變布局和屏幕方向

現(xiàn)在可以射擊外星人了。由于是復(fù)古風(fēng)格的圖形,我決定在外星人爆炸時(shí)采用大像素(在 Gimp 里使用無差方式將外星人圖片放大 5 倍)。然后寫了一點(diǎn)碎片管理代碼,在 libGDX 從中央向其它方向隨機(jī)發(fā)射碎片時(shí)進(jìn)行中間計(jì)算。

[[88599]]

也許你注意到屏幕上沒有圖形表示你自己。這是有意為之的。如果你沒有意識(shí)到這一點(diǎn)也沒關(guān)系,因?yàn)檫@是第一人稱射擊游戲。搞笑吧!嘿嘿,至少從技術(shù)上來說是這樣的。你不必知道你在哪兒,只要射擊敵人就好。在一些測(cè)試版本中,我也嘗試了對(duì)外星人做一些尺度上的變換以增加縱深感,讓你感覺它們從遠(yuǎn)處過來。但在安卓設(shè)備上用手指是很難射擊那些很小的東西的,所以我放棄了這個(gè)想法。

為了讓這個(gè)游戲更加有趣,射擊外星人用的激光槍需要不斷補(bǔ)充能量。每把可以射擊 10 次,然后需要點(diǎn)擊屏幕左下角的能量按鈕。我現(xiàn)在還不確定它的特性——因?yàn)檫€需要測(cè)試。

當(dāng)我在測(cè)試這個(gè)功能的時(shí)候有件事讓我很頭疼:當(dāng)射擊外星人的時(shí)候我的食指會(huì)滿屏幕點(diǎn),很難看清屏幕上發(fā)生了什么。然后我看了一些自己手機(jī)上各種安卓游戲,意識(shí)到如果屏幕方向是縱向的效果會(huì)更好。在縱向模式下,食指不是從屏幕下方而是從右邊過來的(當(dāng)然你需要習(xí)慣使用右手)。在這種模式下,屏幕的大部分區(qū)域還是可見的。我還改變了外星人飛行的方向,外星人會(huì)從屏幕上方出現(xiàn)而不是之前的從左向右出現(xiàn)。

同樣基于這個(gè)原因,我還改變了游戲的主要設(shè)計(jì)。你可以一直玩到讓一個(gè)外星人越過你,而不是之前的只能在固定時(shí)間內(nèi)玩。起初我的想法是你可以每次玩一分鐘, 在這一分鐘內(nèi)你要盡量多得分(類似于水果忍者的加分規(guī)則)?,F(xiàn)在我的想法是,雖然你可以有 3 條命,然而一旦你讓外星人越過了你游戲就到此結(jié)束。

后來我還修改了背景星云圖。之前我寫過怎么用 Gimp 畫帶有星星的夜空和星云圖,但是每次不得不為了滿意的效果而做很多實(shí)驗(yàn)??梢酝ㄟ^對(duì)兩個(gè)圖層做減法并增加一些固有噪聲,然后鍍上一層漸變顏色以達(dá)到效果。問題是當(dāng)對(duì)兩個(gè)圖層做減法的時(shí)候總會(huì)產(chǎn)生一些“小”星云圖,而我想要的是整個(gè)屏幕都充滿色彩。我用畫筆隨機(jī)地在畫紙上點(diǎn)一些點(diǎn),然后著上不同顏色。我把星星分成 3 個(gè)圖層:第一個(gè)圖層,給每個(gè)點(diǎn)加上一個(gè)兩像素的陰影(沒有補(bǔ)償),第二個(gè)圖層進(jìn)行模糊化,第三個(gè)圖層讓它保持原樣。這個(gè)技巧可以畫出很好的星星效果,奧秘在于保證相近的點(diǎn)有不同顏色或不同的清晰度。而這也正是真正星空所具有的特點(diǎn)。看起來相近的星星其實(shí)相距N光年之遙,只是從地球上看起來他們比較接近而已。

第 8 天:星空之戰(zhàn)

我在試著給這個(gè)游戲起個(gè)新名字。雖然想了一個(gè)“星空之戰(zhàn)”,但是是否合適感覺仍然有待研究。我嘗試了一些字體,后來決定使用一種叫做 Ruslan Display 的字體。

[[88600]]

今天我改進(jìn)了外星人爆炸效果的算法。我一直在思考怎么讓敵人看起來有一波一波的進(jìn)攻。先有 10 波敵人,緊接著 boss 出場(chǎng)。通過一關(guān)以后游戲會(huì)有些加速,還會(huì)加入一些新的敵人。在每 10 級(jí)里(10,20,30…)都會(huì)有一個(gè)新的 boss。這個(gè)算法會(huì)一直重復(fù)執(zhí)行,直到游戲者輸?shù)魹橹?。如果發(fā)現(xiàn)你想消滅所有外星人,游戲的速度會(huì)被設(shè)置為開始速度的兩倍這樣你需要付出很多的努力。

下面是現(xiàn)在對(duì)能量提升的設(shè)想:

有時(shí)限的能量提升,可以在游戲過程中收集到:

  • 盾牌(在屏幕的底部,防止一個(gè)外星人通過)
  • 分?jǐn)?shù)倍乘提升器
  • 快速火力(只需手指持續(xù)按下然后到處移動(dòng))
  • 大炸彈(毀滅掉所有屏幕上的外星人)
  • 超能力(跳過十波敵人,但是獲得所有分?jǐn)?shù))
  • 銀河忍者(用絕地武士之劍腰斬?cái)橙?mdash;—水果忍者的風(fēng)格)
  • 自動(dòng)補(bǔ)充能量(自動(dòng)為激光槍補(bǔ)充能量)
  • 多火力(同時(shí)有 3 或 4 個(gè)激光槍開火)
  • 多生命(啟動(dòng)游戲時(shí)有 4 條命)

  永久性的能量提升,可以在每次玩的時(shí)候不斷升級(jí):

  • 快速火力
  • 盾牌
  • 銀河忍者
  • 自動(dòng)補(bǔ)充能量
責(zé)任編輯:張葉青 來源: 安卓巴士
相關(guān)推薦

2014-03-13 14:02:28

Android手游速成

2014-03-13 14:17:05

Android手游速成

2014-03-13 14:42:13

2014-03-13 14:27:51

2014-03-13 14:55:04

2014-03-13 14:12:52

2014-03-13 15:06:30

Android手游速成

2014-03-13 15:15:33

Android手游速成

2019-11-26 08:43:44

平臺(tái)桌面軟件

2021-09-26 05:00:11

Vscode插件

2022-05-27 10:00:06

C++游戲引擎

2015-08-26 16:05:31

2015-08-10 11:41:00

SQL注入SQL注入工具Sqlmapi

2021-01-27 07:24:38

TypeScript工具Java

2015-07-17 10:02:11

三消游戲怎么做

2021-07-08 09:46:23

Git游戲Linux

2022-01-27 13:02:46

前端爬蟲工具

2022-04-18 19:02:53

chrome擴(kuò)展瀏覽器

2014-03-17 15:16:02

移動(dòng)開發(fā)iOS應(yīng)用

2021-09-28 20:19:54

APKAndroid流程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)