国产精品吹潮在线播放,日韩一区二区三区在线播放,啊级免费黄片视频,66av视频

初學(xué)android對于小游戲的開發(fā)有什么好的建議嗎

更新時間:2022-04-17 13:08:21作者:未知

初學(xué)android對于小游戲的開發(fā)有什么好的建議嗎

  隨著智能手機的發(fā)展,許多游戲也不斷的在手機中出現(xiàn)、更新,比如先前比較火的植物大戰(zhàn)僵尸,憤怒的小鳥等等。游戲的本質(zhì)就是在屏幕上不斷地顯示和更新圖片,只不過不是胡亂地更新,而是根據(jù)程序邏輯來控制。一款完整的游戲需要多方面的知識,比如游戲的創(chuàng)意、背景、故事情節(jié)、游戲音效,游戲風(fēng)格、游戲類型、運行速度、適配機型等。而且,游戲的開發(fā)需要策劃、美工、程序、測試的協(xié)同工作和默契配合完成的。

  

  如果你對開發(fā)Android平臺游戲感興趣,那么你需要了解很多東西。如果你有些許開發(fā)經(jīng)驗,想要以開發(fā)跨平臺游戲或表現(xiàn)出色的Android小游戲。那么你就要學(xué)習(xí)學(xué)習(xí)下面任務(wù)易提供的一些知識了。

  

  學(xué)習(xí)應(yīng)用程序架構(gòu)

  

  理解Android應(yīng)用程序架構(gòu)也是件非常重要的事情。如果你不學(xué)習(xí)這個方面的內(nèi)容,可能會使游戲完成后問題的修改變得很困難。你需要理解應(yīng)用程序、活動、意圖以及它們之間的相互聯(lián)系。Google在架構(gòu)方面已經(jīng)提供了許多有價值的信息。真正重要的是,要理解游戲為什么需要包含不止一個活動以及這對設(shè)計良好用戶體驗的意義。我們接下來要探討的就是活動生命周期。

  

  獲得SDK

  

  開發(fā)Android平臺的首個步驟是獲得Android SDK(游戲邦注:即軟件開發(fā)工具包)。SDK包含核心庫、模擬器、工具和代碼范例。我強烈推薦使用Eclipse和Android Eclipse插件。如果你只面向Android平臺,那么專門供Java Developers使用的Eclipse IDE是個很好的工具。如果這是你的首個Java開發(fā)項目,你可以下載整個Java SE Development Kit(游戲邦注:簡稱“JDK”),因為它包含你需要用于應(yīng)用認(rèn)證和部署的工具。

  

  學(xué)習(xí)活動生命周期

  

  活動生命周期由Android操作系統(tǒng)管理。你的活動將根據(jù)操作系統(tǒng)的指令創(chuàng)建、回訪、暫停和摧毀。正確處理這些事件對構(gòu)建有著良好行為的應(yīng)用程序非常重要,這樣應(yīng)用才能正確地滿足用戶的意圖。在你開始設(shè)計游戲之前,有必要先知道所有這些內(nèi)容的運轉(zhuǎn)方式,這會減少你將來調(diào)試和重新設(shè)計的時間。對于多數(shù)應(yīng)用程序來說,使用默認(rèn)設(shè)置就可以了。但是對游戲來說,你可能需要考慮打開SingleInstance功能。當(dāng)處在默認(rèn)設(shè)置下時,Android會在合適的時候自動創(chuàng)建新活動實例。對于游戲來說,你可能只想要單個游戲活動實例。這也等于提示你需要如何來管理內(nèi)容狀態(tài),但是對我來說,它解決了某些資源管理問題,所以應(yīng)當(dāng)考慮入列。

  

  主循環(huán)

  

  是否擁有主循環(huán)取決于你編寫的游戲類型。如果你的游戲與時間無關(guān),或者如果游戲只會對用戶的行為做出反應(yīng),沒有用戶輸入視覺場景就不會發(fā)生改變,那么你或許不需要主循環(huán)。如果你編寫的是動作游戲或帶有動畫、計時器或其他自動運轉(zhuǎn)內(nèi)容的游戲,那么你應(yīng)當(dāng)認(rèn)真考慮使用主循環(huán)。

  

  游戲的主循環(huán)指以特定順序運轉(zhuǎn)子系統(tǒng),通常會盡可能提升每秒主循環(huán)的次數(shù)。你的主循環(huán)需要在它自己的線程上運行。原因在于,Android有個主UI線程,如果主循環(huán)不在自己的線程上運行,那么UI線程就會受游戲影響,導(dǎo)致Android OS無法完成普通的更新任務(wù)。執(zhí)行順序通常是:狀態(tài)、輸入、AI、物理、動畫、音效和視頻。

  

  更新狀態(tài)意味著管理狀態(tài)改變,比如游戲結(jié)束、角色選擇或下個關(guān)卡。通常情況下,你需要在一個狀態(tài)上等待數(shù)秒鐘時間,狀態(tài)管理的任務(wù)應(yīng)當(dāng)是處理這個延遲并設(shè)置時間過后的下個狀態(tài)。

  

  輸入是指來自用戶的任意按鍵、滾動或觸碰。在處理物理前完成這個方面的內(nèi)容是很重要的,因為輸入往往會影響到物理效果,所以先處理輸入會讓游戲顯得更為靈敏。在Android應(yīng)用中,輸入事件來自于主UI線程,所以你必須通過代碼來緩沖輸入,這樣你的主循環(huán)才能適時將其捕獲。這并不是個很困難的任務(wù)。所有需要做的就是為下次用戶輸入確定區(qū)域,用onKeyPressed或onTouchEvent將下次用戶動作設(shè)置到該區(qū)域中。在特定游戲狀態(tài)下,所有的有效輸入都需要進行輸入更新,讓物理端處理針對該輸入的響應(yīng)問題。

  

  AI更新類似于用戶決定接下來要“按”的按鍵。學(xué)習(xí)如何編寫AI不是這篇文章的主題,但基本想法是,AI將像用戶那樣按動按鍵。這也將被物理更新捕捉并做出響應(yīng)。

  

  物理更新可能是真正的物理,也可能不是。對于動作游戲而言,要點在于同時考慮上次更新時間、此次更新時間、用戶輸入和AI輸入,決定游戲中所有內(nèi)容的位置以及是否有碰撞發(fā)生。對于你可以看到對象抓取和滑動的游戲,物理更新還需要處理對象的互動或者讓它下落到指定的位置。對于問答游戲,它還需要決定答案是否正確。或許你使用的是其他的名稱,但是每款游戲的游戲引擎中都需要有處理上述內(nèi)容的部分,在這篇文章中我將其稱為“物理”。

  

  動畫并不只是在游戲中加入gif這么簡單。你需要讓游戲在恰當(dāng)?shù)臅r候播放每幀動畫。但是,它也不像聽起來那么難。要保持isDancing、 danceFrame和lastDanceFrameTime等狀態(tài)區(qū)域允許動畫更新以決定是否轉(zhuǎn)向下一幀。這就是動畫更新所做的所有工作。真正負(fù)責(zé)呈現(xiàn)動畫改變的是視頻更新。

  

  音效更新負(fù)責(zé)觸發(fā)音效、暫停音效、改變音量和音調(diào)。通常在編寫游戲時,音效更新會生成一連串字節(jié)傳輸給音效緩沖器,但是Android自行管理音效,所以針對游戲開發(fā),你可以使用SoundPool或MediaPlayer。它們都有一點敏感,但是要知道,由于存在某些低層次的執(zhí)行細(xì)節(jié),小而低位速率的 OGG也能產(chǎn)生最棒的運行表現(xiàn)和穩(wěn)定性。

  

  視頻更新要考慮游戲狀態(tài)、玩家位置、分?jǐn)?shù)和狀況等內(nèi)容,在屏幕繪制所有內(nèi)容。如果使用主循環(huán),那么你可以考慮使用SurfaceView,進行“推送”繪制。如果使用其他視圖,視圖本身能夠調(diào)用繪制運轉(zhuǎn),這樣主循環(huán)就無需負(fù)責(zé)這項工作。SurfaceView能夠提供最高的每秒幀數(shù),最適合帶有動畫或在屏幕上有移動物體的游戲。視頻更新應(yīng)該做的工作是,獲取游戲狀態(tài),并及時繪制在屏幕上。除此之外,其他的自動化內(nèi)容最好由其他更新任務(wù)來完成。

  

  3D還是2D?

  

  在你開始開發(fā)游戲前,你需要決定是制作3D還是2D游戲。2D游戲要學(xué)習(xí)的內(nèi)容較少,通常更容易獲得良好的表現(xiàn)。3D游戲需要更多的深層次數(shù)學(xué)技能,如果不注意的話,可能會產(chǎn)生表現(xiàn)問題。如果你想要添加比方形和圓圈更加復(fù)雜的形狀,那么無論選擇3D或2D,都需要使用3D Studio和Maya等模型工具。Android支持使用OpenGL進行3D編程,網(wǎng)絡(luò)上有許多很不錯的OpenGL教程可供閱讀。

  

  構(gòu)建簡單且高質(zhì)量方法

  

  開發(fā)開始時,確保不要編寫又大又長的方法。如果你采用我在上文中描述的主循環(huán)樣式,這樣得出的方法應(yīng)當(dāng)較為簡單。你編寫的每個方法都應(yīng)當(dāng)能夠完成某項特定任務(wù),而且不可發(fā)生錯誤。比如,如果你需要在游戲中洗牌,那么就應(yīng)當(dāng)編寫名為“shuffleCards”的方法,而且這個方法就是用來完成洗牌這個動作。

  

  這是個可用于所有軟件開發(fā)的編程方法,但是在游戲開發(fā)中顯得特別重要。在狀態(tài)化的即時系統(tǒng)中,調(diào)試會變得非常困難。要保持方法簡單輕巧,最好是保證每個方法只有1個目標(biāo)。如果你需要為場景繪制背景,那么你可能需要名為“drawBackground”的方法。這樣會讓你的游戲開發(fā)變得像搭建方塊一般,你可以隨時根據(jù)自己的需要添加新方塊,同時不會讓代碼變得難以理解。

  

  學(xué)習(xí)應(yīng)用程序架構(gòu)

  

  理解Android應(yīng)用程序架構(gòu)也是件非常重要的事情。如果你不學(xué)習(xí)這個方面的內(nèi)容,可能會使游戲完成后問題的修改變得很困難。你需要理解應(yīng)用程序、活動、意圖以及它們之間的相互聯(lián)系。Google在架構(gòu)方面已經(jīng)提供了許多有價值的信息。真正重要的是,要理解游戲為什么需要包含不止一個活動以及這對設(shè)計良好用戶體驗的意義。我們接下來要探討的就是活動生命周期。

  

  效能是關(guān)鍵

  

  運行效果是所有游戲遇到的主要問題。我們的目標(biāo)是讓游戲的反應(yīng)速度盡可能快,游戲的運行看起來盡可能流暢。Canvas.drawLine等某些方法可能執(zhí)行較慢。而且,在每幀的主畫布上繪制全屏位圖也會耗費大量時間。要讓應(yīng)用實現(xiàn)最好的表現(xiàn),平衡這些動作就成了必要之舉。確保對資源進行良好的管理,使用各種技巧,實現(xiàn)用最少的CPU完成任務(wù)。如果表現(xiàn)不好,即便是最棒的游戲也顯得乏味無趣。通常情況下,人們不會對反應(yīng)緩慢的應(yīng)用抱有好感。

  

  總的來說,發(fā)布更新和錯誤修復(fù)是開發(fā)者們的另一塊重要的工作,特別是獨立的開發(fā)者。有些android小游戲開發(fā)一旦完成就鮮有更新,除非有重大的錯誤修復(fù)。而其它游戲,特別是那些比較重量級以及社交成分較多的游戲,則會在更新上花費較多精力,這時獨立開發(fā)者們也發(fā)現(xiàn)用戶們的反饋是很寶貴的資源。


本文標(biāo)簽: 有什么  小游戲  百科  標(biāo)簽  

為您推薦

WPS Office手機版如何手寫簽名

WPS Office手機版如何手寫簽名?手機版WPS Office怎么手寫簽名?很多用戶想知道手機版的WPS Office怎么手寫簽名,WPS Office手機

2022-11-30 00:19

WPS Office手機版最近文檔如何刪除

WPS Office手機版最近文檔如何刪除?在手機版的WPS Office內(nèi),每次打開的文件都會在最近文檔中顯示,那如何刪除最近文檔內(nèi),WPS Office手機

2022-11-30 00:17

WPS Office手機版怎么找回丟失的文檔

WPS Office手機版怎么找回丟失的文檔?當(dāng)我們不小心將WPS office手機版的文檔刪除之后,該怎么找回來呢,丟失的文檔怎么找回,WPS Office手

2022-11-30 00:17

手機版WPS(手機版wps怎么首行縮進2字符)

手機版WPS Office怎么使用?WPS Office是一款辦公軟件,我們可以使用WPS Office創(chuàng)建文檔、表格、演示等等,那WPS Office怎么使用

2022-11-30 00:15

手機版WPS(手機版wps怎么首行縮進2字符)

手機版WPS Office怎么做表格?表格可以用來做數(shù)據(jù)統(tǒng)計等等,非常的好用方便,那怎么使用手機版WPS Office制作表格呢,手機版WPS Office怎么

2022-11-30 00:15

手機版WPS 手機版wps怎么首行縮進2字符

手機版WPS Office使用教程是什么?很多用戶對于WPS Office手機版還不知道如何使用,怎么使用手機版WPS Office,手機版WPS Office

2022-11-30 00:15