Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android游戲 >> Android游戲開發 >> 23天從0開始完成一款Android游戲開發 – 第6~8天

23天從0開始完成一款Android游戲開發 – 第6~8天

編輯:Android游戲開發

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

  好了,現在有了一些復古風格的外星人它們正在到處飛。抱歉,暫時還沒有demo。這款Andriod游戲目前只有.apk格式的安裝包。想必你不大可能安裝一個陌生人發給你的安裝包。總的來說,目前背景和星星已經可以載入而且還會慢慢移動。為了讓星星滾動我在星星圖案上調用了setV()和setV2()函數,並逐個增加計時器的值。像這樣:

Java代碼
  1. scrollTimer -= delta*0.014;  
  2. if (scrollTimer < 0.0f)  
  3.     scrollTimer = 1.0f;  
  4. sStars.setV(scrollTimer);  
  5. sStars.setV2(scrollTimer+1);  

  然後出現了一些外星人,它們會向右移動。這就是這款游戲目前所有的功能。我仍然在學 libGDX,因此會花大量時間 Google、閱讀手冊或是看視頻。

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

23天從0開始完成一款Android游戲開發 – 第6~8天

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

  現在可以射擊外星人了。由於是復古風格的圖形,我決定在外星人爆炸時采用大像素(在Gimp裡使用無差方式將外星人圖片放大5倍)。然後寫了一點碎片管理代碼,在libGDX 從中央向其它方向隨機發射碎片時進行中間計算。

23天從0開始完成一款Android游戲開發 – 第6~8天

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

  為了讓這個游戲更加有趣,射擊外星人用的激光槍需要不斷補充能量。每把可以射擊10次,然後需要點擊屏幕左下角的能量按鈕。我現在還不確定它的特性——因為還需要測試。

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

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

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

  第8天:星空之戰

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

23天從0開始完成一款Android游戲開發 – 第6~8天

  今天我改進了外星人爆炸效果的算法。我一直在思考怎麼讓敵人看起來有一波一波的進攻。先有10波敵人,緊接著boss出場。通過一關以後游戲會有些加 速,還會加入一些新的敵人。在每10級裡(10,20,30…)都會有一個新的boss。這個算法會一直重復執行,直到游戲者輸掉為止。如果發現你想消滅所有外星人,游戲的速度會被設置為開始速度的兩倍這樣你需要付出很多的努力。

  下面是現在對能量提升的設想。

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

  盾牌(在屏幕的底部,防止一個外星人通過)

  分數倍乘提升器

  快速火力(只需手指持續按下然後到處移動)

  大炸彈(毀滅掉所有屏幕上的外星人)

  超能力(跳過十波敵人,但是獲得所有分數)

  銀河忍者(用絕地武士之劍腰斬敵人——水果忍者的風格)

  自動補充能量(自動為激光槍補充能量)

  多火力(同時有3或4個激光槍開火)

  多生命(啟動游戲時有4條命)

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

  快速火力

  盾牌

  銀河忍者

  自動補充能量

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved