正文

簡(jiǎn) 介(4)

iPhone & iPad Cocos2D游戲開發(fā)實(shí)戰(zhàn) 作者:(美)伊特海姆


  

1.5  本書內(nèi)容

在本書中,我會(huì)分享一些我的游戲開發(fā)經(jīng)驗(yàn),從中大家可以看到交互游戲都是怎么如何做出來的。我認(rèn)為,學(xué)習(xí)編程不等同于去記住很多API方法。但是我在過去20年里讀到了太多游戲開發(fā)書籍,它們都只是在遵循著“參考手冊(cè)”的模式,而那根本就是API文檔該做的事。從我20年前開始編程的時(shí)候,我就覺得我以后不可能只是看著一大堆編譯器的說明書和參考手冊(cè)去學(xué)習(xí)怎么如何編程。那時(shí)候,這些書和手冊(cè)都還是紙質(zhì)版的,顯然還沒有在線版本(當(dāng)時(shí)的互聯(lián)網(wǎng)發(fā)展還不夠成熟)。所以我桌上堆了差不多15英寸高的資料,著實(shí)令人望而生畏。

直到今天,有很多方法和API我還是記不住,而且以前背過的一些也常常忘記,所以我會(huì)一再去查閱它們。經(jīng)過20年的編程生涯,我體會(huì)出了真正值得學(xué)習(xí)的東西——思想。好的編程思想和最佳實(shí)踐經(jīng)驗(yàn)是經(jīng)得起時(shí)間考驗(yàn)的,而且對(duì)使用任何語言的編程都是有幫助的。而學(xué)習(xí)編程思想的最好方法就是去理解設(shè)計(jì)、架構(gòu)和編碼過程中采用的各種方法的基本原理。這就是我要著重關(guān)注的地方。

1.5.1  iOS游戲開發(fā)新手將學(xué)會(huì)什么

別擔(dān)心,我會(huì)讓你盡可能容易地學(xué)會(huì)cocos2d里最重要的概念。我會(huì)強(qiáng)調(diào)一些你應(yīng)該牢記的類、方法和概念,因?yàn)樗鼈儗?duì)于使用cocos2d進(jìn)行編程實(shí)在是太基礎(chǔ)、太常用了。

你也可以學(xué)到一些能夠支持cocos2d或者能被它支持的工具。沒有這些工具,你只能算是半個(gè)cocos2d程序員。你會(huì)用到像Zwoptex和Particle Designer這樣的工具來制作越來越復(fù)雜、越來越具有挑戰(zhàn)性的游戲。由于篇幅,本書的示例游戲還不夠完整,可能還有些粗糙,而且我們也無法把每一行代碼都解釋清楚。但我會(huì)盡量在源代碼中加入注釋以便大家理解。

可以在這些游戲框架的基礎(chǔ)上進(jìn)行改進(jìn),進(jìn)而完成你的游戲,我很期待看到你的成果!我認(rèn)為給你一些可以繼續(xù)開發(fā)的游戲框架會(huì)比用一整本書教你如何制作最典型的戰(zhàn)機(jī)類太空游戲有用得多。

我主要是根據(jù)App Store上的關(guān)注度來選擇示例游戲的。另外,因?yàn)橛行╅_發(fā)者經(jīng)常問一些在游戲開發(fā)中碰到的問題,所以我把這類具有代表性的游戲也加到了示例中。舉例來說,畫線類游戲(line-drawing game)是cocos2d游戲開發(fā)者們非常熱衷的一游戲,但是在這種游戲的開發(fā)過程種你會(huì)遇到很多看似極其復(fù)雜的問題。

我看過很多其他程序員寫的cocos2d代碼,也參與過他們對(duì)于代碼設(shè)計(jì)、結(jié)構(gòu)和風(fēng)格的討論。在本書中,我采用了“繼承+組合”的模式來作為示例代碼的框架,在后面的章節(jié)中我會(huì)解釋這樣做的好處。另一個(gè)經(jīng)常被問到的代碼設(shè)計(jì)問題是:不同對(duì)象間應(yīng)該如何溝通。不同的代碼設(shè)計(jì)和代碼結(jié)構(gòu)都有各自的優(yōu)缺點(diǎn),我將介紹這些概念以幫助大家在今后寫出一些更穩(wěn)定、性能更高的代碼。

1.5.2  iPhone應(yīng)用程序開發(fā)者將學(xué)會(huì)什么

作為iPhone應(yīng)用程序開發(fā)者,你一定接觸過iPhone SDK了?非常好!你最感興趣的問題一定是如何在沒有Interface Builder的情況下制作游戲吧?其實(shí),除了Interface Builder以外,還有很多其他工具可供使用。它們可能不像蘋果公司官方提供的工具那么,但也是很有用的。

另外,編程思路也需要進(jìn)行些改變。在游戲編程中,你通常不會(huì)接收或發(fā)送事件,而是讓更多的對(duì)象決定如何響應(yīng)事件。考慮到性能問題,也為了減少用戶輸入的等待時(shí)間,游戲引擎的各個(gè)系統(tǒng)往往是密切相關(guān)的。在這里,大量的工作會(huì)在循環(huán)和更新方法(會(huì)在每幀被調(diào)用一次,或以用戶指定的頻率被調(diào)用)中完成。相比較而言,一個(gè)基于用戶交互的應(yīng)用會(huì)花大部分時(shí)間來等待用戶輸入,而游戲則會(huì)在后臺(tái)不斷地對(duì)數(shù)據(jù)和像素進(jìn)行處理,即便玩家沒有進(jìn)行任何操作。所以,在游戲中,每時(shí)每刻都有很多事情在發(fā)生。而且,出于對(duì)性能的考慮,游戲代碼也變得更加優(yōu)化、更加高效。


上一章目錄下一章

Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)