版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、畢業(yè)設計基于iOS的推箱子游戲的設計與實現(xiàn)學生姓名 學 院 專 業(yè) 班 級 學 號 指導教師 2016年 5 月 16 日鹽城師范學院畢業(yè)設計基于iOS的推箱子游戲的設計與實現(xiàn)摘 要當今社會電子游戲業(yè)正在蓬勃發(fā)展,尤其是在國內(nèi),國內(nèi)的電子游戲業(yè)在政府的支持下正迅速發(fā)展,游戲業(yè)在我國產(chǎn)業(yè)中意義重大。在繁忙的生活中,適當?shù)挠螒蚩梢苑潘缮硇模恍┯薪逃饬x的游戲還可以給我們意想不到的收獲。本文介紹了基于iOS的推箱子游戲,該游戲用Objective-C語言編寫。本游戲共有4個模塊,分別為游戲開始、游戲設置、關卡選擇、推箱子模塊、退出游戲功能模塊。游戲開始模塊:該模塊有初始化游戲和讓用戶啟動游戲的功能
2、;游戲設置模塊:該模塊可以讓用戶對游戲進行個性化設置,讓用戶在玩該游戲時有更好的游戲體驗;關卡選擇模塊:該模塊實現(xiàn)了對游戲關卡的自由選擇;推箱子模塊:該模塊是游戲的核心,實現(xiàn)了小人推箱子模塊;退出游戲模塊:該模塊可以讓游戲正常退出,并保存游戲資料。通過對游戲的功能進行測試,測試結果證明該游戲擁有美觀的界面、良好的游戲體驗,給用戶留下了很好的印象?!娟P鍵詞】iOS;推箱子游戲;設計;實現(xiàn);Objective-C語言The Design And Implementation Of Sokoban game based of iOSAbstractTodays society electronic
3、game industry is booming, especially in China, the domestic video game industry is developing rapidly in support of the Government, the game industry in China industry is significant. In a busy life, the right game can relax some educational games can also give us unexpected results.This article des
4、cribes the iOS-based Sokoban games, the game is written in Objective-C language. The game has four modules, namely the game starts, game settings, level select, sokoban ,quit the game modules. Game Start Module: This module allows the user to initialize the game and start the game function; gameplay
5、 module: This module allows users to personalize the game, allow users to play the game have a better gaming experience; the level selection module:this module implements the freedom of choice of game levels; sokoban Module:This module is the core of the game, to achieve a villain Sokoban module;qui
6、t the game module: this module allows normal exit the game and save game data.Through games functional test, the test results show that the game has a beautiful interface, a good gaming experience to the user left a good impression.Key wordsiOS; Sokoban game; design;accomplish;Objective-C language目
7、錄 TOC o 1-3 h z u HYPERLINK l _Toc5371 1 緒論 頁,共 28 頁1 緒論1.1 選題背景科技的快速發(fā)展,使智能機的性能也高速發(fā)展,同時其價格卻不斷變低,理所當然的,智能機漸漸進入千家萬戶。智能機的普及讓手游的開發(fā)成為一個炙手可熱的行業(yè)1。我們的身邊有很多各式各樣的游戲,游戲已經(jīng)成為我們生活中不可少的一個部分,國家也開始鼓勵和輔助游戲業(yè)的發(fā)展。游戲平臺的發(fā)展經(jīng)過了卡帶機到掌機,然后從到pc游戲,到手機游戲,中間經(jīng)歷了許許多多的技術革新。隨著人們生活水平的提高,溫飽問題早就成為過往,我們追尋的是多姿多彩的生活,那么,我們怎么能錯過游戲這一休閑娛樂項目呢?我國
8、的游戲發(fā)展前景一片大好。智能手機的便攜性不言而喻,碎片時間誰都不缺,于是,玩手機游戲漸漸地成為了大家消遣娛樂的一個好方法。1.2 課題研究現(xiàn)狀蘋果手機在國內(nèi)大受歡迎,蘋果公司的iOS技術也漸漸成為一個熱門技術,并擁有很好的上升趨勢2。和其他的高級編程語言相比,Object-C有著獨特的優(yōu)勢。憑借著其優(yōu)勢,用Object-C語言編寫一個有趣的游戲是一個不錯的選擇?,F(xiàn)在的移動應用產(chǎn)業(yè)百花齊放,其中Android以其開放性,多任務,設備多樣等優(yōu)點,應用廣泛;但它有嚴重的缺點,比如系統(tǒng)隨著使用時間嚴重變慢,兩個同種類型的Android和iOS設備在用了很長一段時間后,Android設備的運行速度比iO
9、S設備明顯慢很多3。iOS憑借著其獨特的優(yōu)勢逐漸擴大著占據(jù)的市場。iOS總的來說有一下幾大特點:iOS的開發(fā)語言是Objective-C。雖然蘋果公司只允許自家使用,但有著數(shù)一數(shù)二的受歡迎程度。Objective-C語言來自C語言,直接由C語言編寫,所以運行效率非常的高。2.iPhone在中國有很大的用戶量,受歡迎程度由此可見。中國許多的商家都與蘋果公司合作,為蘋果設備開出各種各樣的優(yōu)惠套餐,iPhone在中國有著很好的評價。本游戲,可以讓忙碌的人們充分利用碎片化的時間來娛樂,從繁重的日常生活中解脫出來。 為了讓人們有良好的游戲體驗,首先游戲的運行必須流暢,不能出現(xiàn)嚴重卡頓,其次必須要有一個美
10、觀的界面,一個美觀的界面能給人們耳目一新的感覺4。好的游戲使人們生活充滿快樂和感動。1.3 研究內(nèi)容與組織結構 現(xiàn)在的生活節(jié)奏快速,許多人沒有足夠的時間去娛樂放松。該iOS推箱子游戲,在我們忙碌的工作生活之余可以讓我們拿來放松身心。本游戲上手難度簡單任何人都可以輕松學會。本游戲采用簡單的mvc模式,并采用了網(wǎng)絡上優(yōu)秀的動畫類,在內(nèi)存的利用上比其他的游戲更好。本游戲一定會讓很多人喜歡,并在忙碌的生活里簡單的得到放松。1.3.1 組織結構本文主要由以下6個方面介紹該iOS推箱子游戲:1.緒論:本章主要介紹iOS游戲的現(xiàn)狀、目的、應用背景。2.推箱子游戲的分析:本章主要介紹推箱子游戲的需求分析、性能
11、分析、開發(fā)工具及技術介紹。3.推箱子游戲的設計:本章主要介紹功能模塊設計。4.推箱子游戲的實現(xiàn):本章主要介紹各個模塊的實現(xiàn)。5.推箱子游戲的功能測試:本章主要介紹對游戲開始、游戲設置、關卡選擇、推箱子模塊、退出游戲模塊的功能測試。6.結論:本章總結全文??偨Y該推箱子游戲的功能、難點及解決方案。2 推箱子游戲需求分析2.1 系統(tǒng)需求本游戲是一個推箱子游戲,需要用戶通過觸摸屏幕來控制小人推動箱子來進行游戲,游戲勝利的條件是所有箱子都被推到指定位置,游戲的評分標準是用戶推完所有箱子完成游戲所消耗的總步數(shù),所消耗的步數(shù)越少評分越高,反之,越低。2.2 性能需求 1.實時性 手機游戲必須對用戶的操作有及
12、時的相應,否則,這個游戲無法正常游玩。2.易操作性 游戲必須操作簡單,要讓用戶在自己摸索幾遍基本熟悉本游戲的操作和規(guī)則。3.時間特性 系統(tǒng)響應時間足夠短,能讓用戶擁有良好的游戲體驗。4.內(nèi)存占用率要控制在一定的范圍內(nèi),不能出現(xiàn)嚴重卡頓,更不能讓運行設備卡機。 HYPERLINK l _Toc137272364 2.3 功能需求需求分析就是分析用戶在功能和性能上的需求。它是軟件開發(fā)過程中初始階段的重要部分,可以了解你需要什么,該干什么,來準確地確定程序要擁有的功能。iOS推箱子游戲主要在手機這個平臺上運行,本游戲的流程:通過玩家操控小人來推動箱子,當所有的箱子被推到指定的位置時,游戲關卡完成,此
13、時玩家可以選擇進入下一關或者返回上一個界面。本游戲模塊主要包括:游戲開始、游戲設置、關卡選擇、推箱子、退出游戲五個功能模塊。其中游戲設置、關卡選擇和推箱子屬于玩家模塊,游戲開始和退出游戲屬于后臺模塊。具體功能分析如下:玩家模塊:該模塊主要由玩家操作,通過玩家的操作可以改變游戲的某些設置以及玩推箱子游戲。玩家模塊分為游戲設置、關卡選擇和推箱子模塊三個部分。游戲設置模塊:設置游戲的音量,玩家通過觸摸屏幕上的音量設置在按鈕,可以根據(jù)自己的喜好設置聲音。這里的設置為全局設置,影響整個游戲的聲音狀況關卡選擇模塊:該模塊可以讓玩家選擇自己想要游玩的關卡,玩家通過點擊界面上的關卡按鈕可以進入對應的關卡。所有
14、的關卡按難易度遞增的順序,在主界面上依次排列。推箱子模塊:該模塊是本游戲的核心模塊。玩家通過點擊屏幕操控小人移動,通過點擊箱子讓小人推動箱子,當出現(xiàn)錯誤步驟時,可以點擊撤銷按鈕返回上一步。如果玩家不想玩當前關卡,也可以直接點擊返回按鈕返回關卡選擇界面。后臺模塊:該模塊所有功能都在后臺完成,主要完成對數(shù)據(jù)的讀取操作。后臺模塊由游戲開始和退出游戲模塊構成。游戲開始模塊:運行游戲時自動調(diào)用的模塊,該模塊完成對數(shù)據(jù)的讀取和游戲主界面的繪制。通過讀取數(shù)據(jù)可以將以前的成績讀取出來,并顯示在界面上,讓玩家看到自己先前的成績。退出游戲模塊:退出游戲時自動調(diào)用的模塊,該模塊在退出游戲時會將數(shù)據(jù)保存到本地文件中,
15、玩家在第二次進行游戲時,可以在上一次的關卡記錄后玩游戲。模塊體系結構圖如圖2-1所示。圖2-1 模塊體系結構圖2.4 開發(fā)軟件平臺及技術介紹2.4.1 iOS簡介 iOS是運行蘋果設備上的操作系統(tǒng),它管理設備的硬件,并為軟件的運行提供幫助,iOS系統(tǒng)主要由Objective-C語言編寫。iOS程序的結構由以下幾個部分構成,如圖2-2所示。通過圖2-1可以看到iOS可以分以下4個主要部分:核心操作程序(the Core OS layer)、核心服務層(the Core Services layer)、媒體層(the Media layer)、Cocoa 觸摸框架層(the Cocoa Touch
16、 layer)5。圖2-2 iOS的程序結構2.4.2 開發(fā)環(huán)境XcodeXcode是蘋果公司向開發(fā)人員提供的集成開發(fā)環(huán)境(非開源),用于開發(fā)Mac OS X,iOS的應用程序。Xcode是開發(fā)iOS程序的必備開發(fā)環(huán)境,開發(fā)人員可以使用Xcode來編寫所有基于iOS的程序,Xcode擁有強大的功能,自帶對程序的簡單差錯功能,也集編譯、調(diào)試、打包程序的功能與一身。Xcode使用上手難度很低,它擁有自帶的、詳細的幫助文檔,通過幫助文檔我們可以輕松的學會使用Xcode,它的界面十分的簡介,在開發(fā)程序是為我們提供了很好可視化編程界面6。此外,Xcode還可以看到程序的層次結構,而且它用一種很直觀的方式
17、呈現(xiàn)給我們,它幫我們自動的生成一個三維視圖,通過該視圖能讓我們對程序的結構有很好的把握。最重要的,Xcode可以直觀看到程序的內(nèi)存使用情況,方便程序員找出程序內(nèi)存上的錯誤。2.4.3 iOS平臺介紹iOS平臺包括iPhone系列、iPad系列等,由蘋果公司獨家研發(fā)并發(fā)售,有著運行流暢,穩(wěn)定,簡潔,還漂亮,性能和美觀同時兼具的特點。頗受現(xiàn)代人們的歡迎7。3 推箱子游戲的設計3.1 游戲界面設計所有的應用程序讓用戶第一眼看到的就是它的界面。如果一個應用程序的界面非常難看,那么用戶使用它時第一感覺會很糟糕,用戶的體驗會大打折扣。對一個游戲而言,界面更重要,一個不好的界面會讓用戶放棄玩這款游戲的想法8
18、。由于iOS游戲大多數(shù)時候運行在手機上,手機界面比較小,界面上的東西要少,不能太多,否則會影響游戲的操作9。所以本游戲的界面本著從簡原則,讓界面的東西能少則少,界面的布局用網(wǎng)格布局,這種布局可最大化的利用界面空間。為了讓該游戲界面顯得簡潔漂亮,關卡選擇界面被直接嵌入到主界面中。用戶只要一打開游戲,就可以看到關卡的總數(shù)量,并且,自己所玩過的關卡數(shù)量和每一關的通關成績都可以在上面直接看到。游戲界面設計圖如圖3-1所示。圖3-1 游戲界面設計圖3.2 游戲模塊設計本游戲由五個模塊構成,五個模塊中推箱子模塊是最重要的模塊,是本游戲的核心模塊。3.2.1 游戲開始模塊游戲開始模塊主要需要完成對數(shù)據(jù)的加載
19、并初始化界面的功能,當游戲被運行時,此模塊會從手機沙盒中讀取數(shù)據(jù),主要讀取玩家以前的游戲成績。接著,系統(tǒng)會根據(jù)這些數(shù)據(jù)來繪制主界面,游戲開始模塊設計流程圖如圖3-2所示:圖3-2 游戲開始模塊設計流程圖3.2.2 游戲設置模塊游戲設置模塊主要完成對音量的設置功能,當進入主界面時,玩家可以根據(jù)自己的喜好來設置聲音。設置聲音功能通過按鈕來實現(xiàn),當玩家點擊按鈕時,會向系統(tǒng)發(fā)送一個控制參數(shù),通過該參數(shù)的值就可以控制聲音。游戲設置模塊設計流程圖如圖3-3所示:圖3-3 游戲設置模塊設計流程圖3.2.3 關卡選擇模塊關卡選擇功能主要完成用戶選擇游戲關卡的功能。進入主界面時,玩家需要選擇自己想要玩的關卡進行
20、游戲,玩家點擊關卡選項時,就可以進入想要玩的關卡。玩家也可以在游戲界面選擇返回按鈕返回到關卡選擇界面。關卡選擇模塊設計流程圖如圖3-4 所示:圖3-4 關卡選擇模塊設計流程圖3.2.4 推箱子模塊推箱子模塊是游戲的核心,需要完成小人推箱子的游戲功能。此功能模塊需判斷小人是否可以推箱子即判斷小人和箱子的位置關系,其次,判斷箱子被推動了多少距離即小人相對箱子移動了多少距離。當玩家不會解決關卡的問題是,可以點擊提示按鈕來獲得本關卡的提示,推箱子模塊設計流程圖如圖3-5所示。3.2.5 退出游戲模塊退出游戲模塊主要完成在游戲退出后對數(shù)據(jù)的永久保存功能。本模塊在游戲退出時必須及時的保存好用戶的數(shù)據(jù),以便
21、用戶下一次玩游戲可以在上一次的記錄下進行。退出模塊設計流程圖如圖3-6所示。圖3-5 推箱子模塊設計流程圖圖3-6 退出游戲模塊設計流程圖4 推箱子游戲的實現(xiàn)4.1 概述總體設計又稱初步設計。通過這個階段的工作將劃分出組成系統(tǒng)的物理元素程序、文件、數(shù)據(jù)庫、人工過程和文檔等等。 程序功能設計是在程序開發(fā)設計思想的基礎上完成的,本程序的主要任務是實現(xiàn)iOS推箱子游戲在手機上實現(xiàn)游戲設置、開始游戲、關卡選擇、退出游戲等功能模塊,并根據(jù)用戶的需求不斷增強程序的功能,提升推箱子游戲的游戲體驗。4.2 游戲功能實現(xiàn)本文詳細的說明了游戲的各個功能模塊的實現(xiàn)方法,并做了詳細的介紹。4.2.1 游戲開始模塊游戲
22、開始模塊是本游戲所用功能的開端,當用戶點擊手機桌面上的軟件圖標時,游戲就會運行,在這運行期間,在手機沙盒中儲蓄的數(shù)據(jù)會被程序讀取。程序讀取這些數(shù)據(jù)后會把數(shù)據(jù)暫時儲存在內(nèi)存中,等待數(shù)據(jù)被調(diào)用。運行界面如圖4-1所示:圖4-1 運行界面圖游戲開始模塊在程序運行時主要通過調(diào)用代理來及時的讀取數(shù)據(jù),在讀取數(shù)據(jù)時,需要先初始化內(nèi)存。本游戲使用initialize方法來初始化內(nèi)存,初始化需要在程序開始的時刻進行,iOS系統(tǒng)提供了didFinishLaunchingWithOptions代理方法,didFinishLaunchingWithOptions代理方法會在程序啟動時自動被執(zhí)行,因此在該代理下編寫初
23、始化代碼。主要代碼如下: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions /初始化關卡的等級參數(shù) srandom(NSDate timeIntervalSinceReferenceDate); LevelManager sharedInstance initialize; /初始化聲音引擎 ,并給儲存聲音狀態(tài)的vindex參數(shù)賦初值 CSSound sharedInstance initialize; if (CSDevice
24、 currentDeviceType = CSDevice_iPad) NSString* versionStr = UIDevice currentDevice systemVersion; NSArray* subVersions = versionStr componentsSeparatedByString:.; if (subVersions & subVersions count 0) NSString* v1Str = subVersions objectAtIndex:0; vindex = v1Str intValue; 游戲開始模塊除了要初始化內(nèi)存,還要讀取沙盒中的數(shù)據(jù),獲
25、取數(shù)據(jù)時需要先獲取數(shù)據(jù)的存儲路徑,本游戲使用自定義的- (NSString*) filePath方法來獲取,具體代碼如下:- (NSString*) filePath NSArray*folders=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);NSString*path=foldersobjectAtIndex:0stringByAppendingPathComponent:LEVEL_FILE_NAME; return path;通過上述代碼,程序就可以獲取上一次的記錄,讓玩家可以
26、從上一次保存的地方繼續(xù)開始游戲。4.2.2 游戲設置模塊游戲設置模塊是控制本程序某些展示形式,程序被運行后,在屏幕下方有設置按鈕,可以調(diào)節(jié)聲音。界面設計十分簡潔,用戶在使用時都可以輕松學會設置。點擊設置按鈕后會彈出設置界面,設置界面如圖4-2所示:圖4-2 設置界面圖本模塊通過監(jiān)視者模式來確定用戶對聲音的改變,用戶可以根據(jù)自己的喜好來設置聲音的狀況。如喜歡玩游戲時有背景音樂,則可以選擇打開聲音,反之亦然。由于iOS系統(tǒng)自帶聲音大小的調(diào)試,所以本程序省去了聲音大小調(diào)節(jié)的功能。設置界面由UIAlertController控制器來生成,用本身擁有的block塊語句來實現(xiàn)被改變參數(shù)的實時傳遞,參數(shù)使用
27、屬性sharedInstance傳遞。主要代碼如下- (IBAction)onVoice:(id)sender while (CSSound sharedInstance isOn) UIAlertController *alertVC=UIAlertController alertControllerWithTitle:提示 message:是否關閉聲音 preferredStyle:UIAlertControllerStyleAlert; UIAlertAction *okAct=UIAlertAction actionWithTitle:確定 style:UIAlertActionSty
28、leDefault handler:(UIAlertAction * _Nonnull action) /用block塊語句來實時的傳遞參數(shù) 。 CSSound sharedInstance setON:NO; CSSound sharedInstance playSound:CSSoundType_KEY; self updateSoundButton; ; UIAlertAction *cancelAct=UIAlertAction actionWithTitle:取消 style:UIAlertActionStyleCancel handler:(UIAlertAction * _Non
29、null action) ; alertVC addAction:cancelAct; alertVC addAction:okAct; self presentViewController:alertVC animated:YES completion:nil;使用上述簡單的代碼就可實現(xiàn)聲音的控制。4.2.3 關卡選擇模塊關卡選擇模塊是用戶選擇游戲關卡的界面,當程序被運行時,展現(xiàn)在用戶面前最顯眼的一部分,整個界面按格子布局,讓人一目了然。用戶點擊所選關卡時,程序就會進入指定關卡。關卡選擇模塊通過開始游戲模塊獲得的數(shù)據(jù)在界面上將用戶的成績顯示出來,然后在用戶完成關卡時,若用戶選擇返回選擇界面,
30、則會再次更新成績。關卡選擇界面圖如圖4-3所示:圖4-3 關卡選擇界面圖本模塊是被動調(diào)用,只能在其他模塊的調(diào)用下啟用。在游戲中,該模塊不可或缺,它起到了對游戲主功能的啟動作用。首先通過currentLevel屬性獲取已經(jīng)完成的總關卡數(shù),用buttonArray數(shù)組來依次獲取每一個關卡等級,最后用LevelManager模型來儲存數(shù)據(jù)。該模塊主要代碼如下所示:1.主要數(shù)據(jù)獲取方法代碼:- (void)viewWillAppear:(BOOL)animated for (int i = 0; i 0) ori = BoxManOrientationLeft; else if(x_dis 0) or
31、i = BoxManOrientationUp; else ori = BoxManOrientationDown; personCell updateOrientation:ori; if (isadd) steps +; self updateStepLabel; ; return moveItem; 推箱子模塊還有另一個重要的功能,判斷是否達成游戲的通關條件。通關條件只有一條:所有的箱子是否都被推到指定的位置上,也就是判斷所有箱子的坐標是否等于指定的位置的坐標。通關界面圖如圖圖4-5所示:圖4-5 通關界面圖游戲通關條件的判斷通過箱子坐標與目的地坐標的對比來實,其中boxID是所要判斷的
32、箱子的編號,ax和ay是箱子的坐標。結構體CGPoint cp表示目標地點的坐標。自定義- (NSInterger*)moveBox:(int)boxID toX:(int)ax toY:(int)ay方法可以實時獲得箱子的坐標,得到坐標后,該方法會將箱子坐標與目的地坐標一起發(fā)送給判斷通關的方法- (BOOL)isFinished方法。獲取箱子坐標的方法的主要代碼如下:- (NSInterger*)moveBox:(int)boxID toX:(int)ax toY:(int)ay; if (boxID = map boxNum) return nil; BoxCell* boxCell =
33、boxCellArray objectAtIndex:boxID; CGRect boxRect = CGRectMake(ax * cellWidth, ay * cellWidth, cellWidth, cellWidth); CGPoint cp = CGPointMake(boxRect.origin.x + boxRect.size.width/2.0, boxRect.origin.y + boxRect.size.height/2.0); map setBoxAtIndex:boxID toPositionX:ax Y:ay;boxCell setCenter:cp;boxCe
34、ll setColumn:ax;boxCell setRow:ay; self updateBoxState:boxCell; if (map isFinished) if (!isPlayingAnswer) NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:selector(popWinTip) userInfo:nil repeats:NO; return moveItem;判斷通過箱子坐標與目的地坐標是否一致的方法為- (BOOL)isFinished,其中ax和ay是箱子的坐標。判斷通過箱子坐標與目的地坐標
35、是否一致的方法的主要代碼如下:- (BOOL)isFinished BOOL finish = YES; for (int i = 0; i boxNum; i +) /數(shù)值轉換便于比較 int bx = boxPosi*2; int by = boxPosi*2+1; int index = by * column + bx; MapCellType type = self typeForCellAtIndex:index; if (type != MAPCELL_CP) finish = NO; break; return finish;4.2.5 退出游戲模塊退出游戲模塊是當游戲退出時保
36、存某些數(shù)據(jù)的和讓游戲安全退出的模塊。利用蘋果設備的Home按鍵退出游戲,模擬器沒有Home鍵按鈕,但可以使用鍵盤的Shift鍵+Command鍵+H鍵來實現(xiàn)Home鍵功能。當用戶使用手機退出游戲時,程序會通過調(diào)用代理在后臺自動保存數(shù)據(jù),讓用戶在下一次運行程序時可以讀取上一次的記錄,在上一次的記錄下繼續(xù)進行游戲。游戲退出模塊在用戶選擇退出游戲時會被調(diào)用,它會將數(shù)據(jù)寫入指定好路徑的沙盒中來實現(xiàn)數(shù)據(jù)的固化。本模塊使用數(shù)組lArray來獲取所有傳遞過來的數(shù)據(jù),并用字典fileDict轉存數(shù)據(jù),轉存后的數(shù)據(jù)的結構清晰,便于儲存。該功能的主要代碼如下: - (void) saveToDocument NS
37、MutableArray* lArray = NSMutableArray alloc init; for (LevelItem* it in levelArray) lArray addObject:it dictionary; NSDictionary* fileDict = NSDictionary dictionaryWithObjectsAndKeys: lArray,levels, NSNumber numberWithInteger:TOTAL_LEVEL_NUM,total, NSNumber numberWithInteger:currentLevel,current, ni
38、l; lArray release; BOOL issuc = fileDict writeToFile:self filePath atomically:YES; issuc ? NSLog(SAVE SUCCESS ) : NSLog(SAVE FAILED );以上就是系統(tǒng)的5大主要模塊,這5個模塊互相調(diào)用實現(xiàn)了整個游戲的全部功能,5個模塊的調(diào)用確保了本游戲可以在不出錯的情況下流暢運行。5 游戲的測試5.1軟件測試 HYPERLINK l _Toc292700884 5.1.1測試方法軟件測試方法可以分為靜態(tài)測試和動態(tài)測試。1.靜態(tài)測試:此方法通過直接檢測程序代碼上的漏洞或錯誤來測試程序
39、。2.動態(tài)測試:此方法有分兩種測試方式,一是通過運行程序,主要是通過程序斷點,將程序分成各個部分來測試。二是通過人為的設置錯誤的參數(shù)或制造錯誤的流程來測試,檢測程序是否能做出正確的響應10。 HYPERLINK l _Toc292700884 5.1.2測試過程測試有三個過程,第一邏輯結構測試,第二功能模塊測試,第三整體測試。1.邏輯結構測試邏輯結構測試,主要測試系統(tǒng)的邏輯結構是否完善,是否有不合理的邏輯判斷。2.功能模塊測試功能模塊測試,測試每個功能模塊是否存在缺陷,通過對每個功能模塊進行單獨的測試,確保每個模塊不會出現(xiàn)明顯的缺陷和漏洞。3.整體測試整體測試,首先,對程序整體進行測試,測試在
40、所有的場景下,程序是否能按預想的方案執(zhí)行。其次,要測試程序的兼容性,測試程序在對應的平臺上能否正常運行,是否會出現(xiàn)嚴重的bug。 HYPERLINK l _Toc292700887 5.2游戲系統(tǒng)測試1.測試環(huán)境:Mac os操作系統(tǒng)、iTunes、X-Code 、iOS Objective-C2.對程序進行測試:(1)開始游戲測試:測試方法:觸摸桌面上的游戲圖標,運行游戲。開始游戲測試圖如圖5-1所示:圖5-1 開始游戲測試圖測試結果:游戲成功初始化并轉至游戲主界面。(2)游戲設置測試:測試方法:觸摸游戲主界面的音量圖標進行測試,游戲設置測試圖如圖5-2所示:圖5-2 游戲設置測試圖測試結果
41、:進入游戲后,實現(xiàn)播放背景音樂。(3)推箱子測試:測試方法:運行游戲,在游戲中觸摸屏幕推箱子使箱子移動,推箱子測試圖如圖5-3所示:圖5-3 推箱子測試圖測試結果:實現(xiàn)了推箱子功能。(4)關卡選擇測試:測試方法:隨機點擊任意的關卡圖標進入游戲,關卡選擇測試圖如圖5-4所示:圖5-4 推箱子測試圖(5)游戲退出測試:測試方法:按下鍵盤上的Shift鍵+Command鍵+H鍵進入程序結束界面,將程序上滑動關閉程序,然后再次打開程序。游戲退出測試圖如圖5-5所示。測試結果:游戲成功退出,再次打開,上次的數(shù)據(jù)沒有丟失。測試最終結果:游戲可以正常的進入游戲,選擇關卡,進行推箱子時小人可以正常推動箱子完成關卡,游戲退出正常,成功的保存數(shù)據(jù)。游戲的各個的模塊都運行正常,沒有錯誤。 HYPERLINK l _Toc292700888 5.3 游戲的優(yōu)缺點經(jīng)過對系統(tǒng)進行測試和運行??偨Y出游戲優(yōu)點如下:1.界面簡潔美觀,游戲的體驗較好,游戲風格可愛,界面的設計被大家認可,游戲的操作簡單易上手。 2.游戲運行流程,響應迅速,沒有嚴重的bug。游戲缺點如下:游戲的功能沒能支持多玩家。由于開發(fā)時間有限,沒考慮多用戶的情況,今后會改進游戲的功能,完善游戲。在對游戲的測試過程中,發(fā)現(xiàn)了不少的問題,特別是內(nèi)存的溢出問題,在仔細的研究和查閱相關的資料下,及時的發(fā)現(xiàn)了問題并修正。游戲的響應上也出現(xiàn)過問題,咨詢了老師
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030長沙綠色食品產(chǎn)業(yè)分析供需市場評估投資評估未來規(guī)劃報告
- 2026國家電投集團河北公司(雄安公司)招聘1人備考題庫有完整答案詳解
- 2025-2030鄱陽湖水產(chǎn)品產(chǎn)業(yè)鏈市場發(fā)展趨勢分析競爭格局投資評估規(guī)劃報告
- 2026四川長虹繽紛時代商業(yè)管理有限公司招聘招商主管崗位1人備考題庫及1套參考答案詳解
- 2026中智(云南)經(jīng)濟技術合作有限公司招聘信息財務實習生備考題庫及參考答案詳解一套
- 2026山東發(fā)展智慧園區(qū)投資有限公司派遣制財務出納崗招聘的1人備考題庫及一套完整答案詳解
- 2026吉林延邊州安圖縣面向委培生、定向生招聘員額經(jīng)費管理人員7人備考題庫及答案詳解(考點梳理)
- 2026上半年云南事業(yè)單位聯(lián)考國土資源職業(yè)學院招聘39人備考題庫及參考答案詳解一套
- 2026內(nèi)蒙古赤峰市敖漢旗就業(yè)服務中心招聘第一批公益性崗位人員166人備考題庫及一套答案詳解
- 2026云南昭通市鎮(zhèn)雄聯(lián)通公司招聘10人備考題庫及1套參考答案詳解
- 房地產(chǎn) -北京好房子政策研究報告-規(guī)劃技術和市場效應 202502
- 土地一級市場二級市場的區(qū)別及流程
- 胸痛中心聯(lián)合例會培訓
- 臥式橢圓封頭儲罐液位體積對照表
- 國家職業(yè)技術技能標準 4-10-01-02 育嬰員 人社廳發(fā)201947號
- 天鵝到家合同模板
- 全球鈷礦資源儲量、供給及應用
- 中考字音字形練習題(含答案)-字音字形專項訓練
- 消防安全責任人任命書
- MOOC 數(shù)據(jù)挖掘-國防科技大學 中國大學慕課答案
- 2024屆新高考物理沖刺復習:“正則動量”解決帶電粒子在磁場中的運動問題
評論
0/150
提交評論