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