iPhone游戲編程教程
iPhone游戲編程教程是本文要介紹的內(nèi)容。這是此系列教程的***部分,我將從最基本開始教大家怎樣編寫一個(gè)iPhone游戲。眾所周知,OpenGL和Quartz的學(xué)習(xí)不是那么簡(jiǎn)單的。本教程將簡(jiǎn)化開發(fā)的過程而不會(huì)使用這兩種技術(shù)。我們將使用UIImageView作為圖像部分。
在此教程系列中,我將教大家有關(guān)iPhone游戲編程的方方面面。游戲包括圖形,音效,游戲邏輯以及簡(jiǎn)單的電腦AI。
我們將編寫的游戲叫iTennis。它實(shí)際上是一個(gè)以網(wǎng)球?yàn)橹黝}的乒乓游戲。它將遵循乒乓游戲的所有規(guī)則和邏輯。我選擇其作為***個(gè)游戲教程是不需要任何特殊動(dòng)畫效果的。如果大家有興趣,我將在以后的系列中更加深入,介紹一個(gè)更加復(fù)雜的游戲。下面是游戲的截圖:
下面是項(xiàng)目需要的圖像。按圖標(biāo)下載壓縮的圖像文件。
打開Xcode建立一個(gè)View Based應(yīng)用程序,取名為iTennis。
加壓下載的圖像文件,將其拖放到項(xiàng)目下的Resources(資源)文件夾。完成后,資源文件夾應(yīng)該像這樣。
現(xiàn)在可以開始編寫代碼了。為了在代碼中與我們的圖像互動(dòng),我們首先需要建立一個(gè)IBOutlet鏈接。我們還需要加入一些游戲變量以便在可以在教程中使用。打開iTennisVeiwController.h加入以下代碼:
如你所見,我們有好些IBOutlet。這是因?yàn)槲覀冃枰c許多對(duì)象互動(dòng)。暫時(shí)先忽略ballVelocity和gameState變量?,F(xiàn)在,我們可以開始建立我們的用戶界面了。雙擊iTennisViewController.xib在Interface Builder中打開。下面是一個(gè)視頻介紹怎樣建立界面。
現(xiàn)在你已經(jīng)做好了鏈接,關(guān)閉Interface Builder返回Xcode。我們需要設(shè)定一些常量。你可以硬編碼這些數(shù)值,但是將它們定為常量是你在調(diào)整游戲架構(gòu)時(shí)更易于改變。打開iTennisViewController.m,加入下列代碼。
我們來解釋下這些常量的意義。前面兩個(gè)是游戲的狀態(tài)。我們用它們來確定屏幕上將顯示什么。游戲是暫停?是在運(yùn)行?還是處于標(biāo)題畫面?以后我們會(huì)加入更多的狀態(tài)。下面兩個(gè)變量是球運(yùn)行的速度。由于游戲是2D的,只需要X和Y的速度作為它們的速度矢量。再下面一行(注:應(yīng)該是@synthesize這一行)是用來自動(dòng)產(chǎn)生getter和setter方法的變量。
現(xiàn)在,我們?cè)趘iewDidLoad方法中加入下列代碼:
我們將游戲狀態(tài)設(shè)定為暫停狀態(tài)。這樣在視圖被加載后,游戲不會(huì)立即開始。接著,我們建立球速向量。調(diào)整前面定義的常量,可以使球運(yùn)行更快或更慢些。***,創(chuàng)建一個(gè)NSTimer的實(shí)例。***個(gè)參數(shù)是時(shí)階。在此,我們?cè)O(shè)置為0.05秒。調(diào)整此參數(shù)可以改變整個(gè)游戲的速度。下面一個(gè)參數(shù)是目標(biāo)。此參數(shù)告訴定時(shí)器回調(diào)的位置。再下面的參數(shù)就是回調(diào)的名稱了。簡(jiǎn)單地說,就是通知定時(shí)器每隔0.05秒調(diào)用一次self.gameLoop。在這里我們不用管userInfo參數(shù)。***一個(gè)參數(shù)是告訴定時(shí)器重復(fù)執(zhí)行。
初始化后,我們來創(chuàng)建游戲循環(huán)。加入下面代碼:
首先我們檢查游戲是否處于運(yùn)行狀態(tài)(暫停狀態(tài)時(shí),不需要移動(dòng)球)。如果游戲沒有運(yùn)行,tabToBegin標(biāo)簽將會(huì)被顯示出來。我們先前定義的這個(gè)標(biāo)簽只是通知用戶觸動(dòng)屏幕開始。如果游戲真正運(yùn)行,我們會(huì)根據(jù)其速度向量來移動(dòng)球。下面幾行是邊界檢查。如果球到達(dá)屏幕邊界,我們就會(huì)將其速度方向,這樣球就會(huì)“來回彈跳”。沒有這些代碼,球就會(huì)飛出屏幕了。
***我們還要加入的代碼是touchesBegan方法。此方法是在游戲暫停時(shí)用來啟動(dòng)游戲的。加入下面代碼:
這段代碼首先檢查游戲是否處于暫停狀態(tài)。如果是,則隱藏tapToBegin標(biāo)簽并設(shè)定游戲?yàn)檫\(yùn)行狀態(tài)。游戲?qū)?dòng)。以后,我們將會(huì)在此函數(shù)中寫入玩家球拍控制。
***,作為一個(gè)好的iPhone開發(fā)者,我們需要清除分配的資源。在dealloc方法中加入下面代碼。
游戲開發(fā)教程系列***部分到此結(jié)束。有什么問題,請(qǐng)留言。這里下載源碼。
小結(jié):iPhone游戲編程教程的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!
本文來自:http://www.iphone-geek.cn/%e7%bc%96%e7%a8%8b/%e6%b8%b8%e6%88%8f/iphone%e6%b8%b8%e6%88%8f%e7%bc%96%e7%a8%8b%e6%95%99%e7%a8%8b%e4%b9%8b%e4%b8%80