版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課</b></p><p><b> 程</b></p><p><b> 設</b></p><p><b> 計</b></p><p><b> 報</b></p><p
2、><b> 告</b></p><p> 設計名稱: “捕魚達人”的手游開發(fā)</p><p><b> 班 級:</b></p><p><b> 姓 名: </b></p><p> 指導老師: </
3、p><p> 組織單位: </p><p> 時 間: 2013.6.10——2013.6.22</p><p><b> 摘要</b></p><p> 利用cocos2d-x引擎,通過構建三個框架,包含LogoScene、SlectScene、GameScen
4、e這三個場景,通過三個流程達到捕魚的效果:1)LogoScene :包含“開始游戲”、“退出游戲”以及“網(wǎng)絡連接”。點擊“開始游戲”字樣的按鈕,點擊跳轉到SelectScene:2)SelectScene :選擇關卡:包含已經(jīng)解鎖的“繽紛珊瑚島”,未解鎖的“沉沒古跡”、“夢幻藍礁”,還有一關卡暫未開放的,以及返回按鈕;3)GameScene : 有一個炮塔,對準游動的海龜發(fā)射炮彈,并可以實時跟蹤。</p><p>
5、; 關鍵字: cocos2d-x引擎 LogoScene SelectScene GameScene</p><p><b> 目錄</b></p><p> 需求分析 ——————————————————————————————— 3</p><p> 1.1、設計目的 —————————————————————
6、———————— 3</p><p> 1.2、設計要求 ————————————————————————————— 3</p><p> 二、概要設計 ——————————————————————————————— 4 </p><p> 2.1、項目的組成框架 ————————————————————————— 4</p><p&
7、gt; 2.2、項目的流程 ——————————————————————————— 4</p><p> 詳細設計 ——————————————————————————————— 5</p><p> 3.1、宏文件和資源文件 ———————————————————————— 5 </p><p> 3.2、第一個場景 LogoScene ————
8、—————————————————— 6</p><p> 3.3、第一個場景 SelectScene ————————————————————— 7</p><p> 3.4、第一個場景 GameScene —————————————————————— 7</p><p> 3.5、第一個場景 GameScene ————————————————
9、—————— 7</p><p> 四、調(diào)試與測試 ————————————————————————————— 8</p><p> 4.1、調(diào)試中的問題和解決方法 ————————————————————— 8</p><p> 4.2、運行結果 ———————————————————————————— 8</p><p
10、> 源程序清單和運行結果 ————————————————————————— 9</p><p> 5.1、附錄一 ————————————————————————————— 9</p><p> 5.2、附錄二 ————————————————————————————— 26</p><p><b> 一、需求分析</b>
11、</p><p><b> 1.1設計目的</b></p><p> “捕魚達人”的手游開發(fā)課程設計是一個綜合性的設計性環(huán)節(jié),旨在通過手機游戲開發(fā)的實踐訓練,進一步掌握設計開發(fā)軟件的方法與技術,學會數(shù)據(jù)的組織方法,提高軟件的開發(fā)實際應用能力,培養(yǎng)創(chuàng)造性的工程設計能力和分析、解決問題的能力,鞏固學生已學知識,使學生熟悉軟件企業(yè)軟件開發(fā)過程,提高學生對知識的融會貫通能
12、力及動手能力。培養(yǎng)學生運用所學知識的基礎理論、基本知識和基本技能,分析解決實際問題能力的一個重要環(huán)節(jié)。它與課堂教學環(huán)節(jié)彼此配合,相輔相成,在某種程度上是課堂學習的繼續(xù)、深化和檢驗。它的實踐性和綜合性是其它教學環(huán)節(jié)所不能代替的。課程設計能使學生受到必需的綜合訓練,在不同程度上提高各種能力。</p><p> 通過課程設計,使學生熟練掌握C++語言課程中所學的理論知識,通過綜合C++語言的基本知識來解決實際問題,加
13、強學生分析和解決問題的能力。</p><p> “捕魚達人”游戲是通過三個場景的建立,通過進入LogoScene ,點擊“開始游戲”字樣的按鈕,點擊跳轉到SelectScene,選擇關卡進入已經(jīng)解鎖的“繽紛珊瑚島”進入GameScene : 有一個炮塔,對準游動的海龜發(fā)射炮彈,并可以實時跟蹤。</p><p><b> 1.2、設計要求</b></p>
14、<p> 框架:3個場景,LogoScene、StartScene、GameScene流程:1)LogoScene :LogoScene :包含“開始游戲”、“退出游戲”以及“網(wǎng)絡連接”。點擊“開始游戲”字樣的按鈕,點擊跳轉到SelectScene:</p><p> 2)StratScene :選擇關卡:包含已經(jīng)解鎖的“繽紛珊瑚島”,未解鎖的“沉沒古”、“夢幻藍礁”,還有一關卡暫未開放的,以
15、及返回按鈕;</p><p> 3)GameScene : 有一個炮塔,對準游動的海龜發(fā)射炮彈,并可以實時跟蹤。</p><p><b> 二、概要設計</b></p><p> 2.1、項目的組成框架,如圖(一):</p><p> 圖(一)項目框架結構圖</p><p> 2.2、項
16、目的流程,如圖(二)所示:</p><p> 圖(二)項目的流程圖</p><p><b> 三、詳細設計</b></p><p> 3.1、宏文件和資源文件</p><p> 這一步我們準好準備工作,分別寫好游戲所需的宏文件和資源文件,為接下來的任務做好鋪墊。</p><p><b
17、> macro.h</b></p><p> resource.h</p><p> ----------------------------------------------------------------------</p><p> #ifndef __MACRO_H__</p><p> #defin
18、e __MACRO_H__</p><p> #define SCREEN_X 960 //屏幕大小,對應著main.cpp</p><p> #define SCREEN_Y 640</p><p><b> enum{</b></p><p> KZBACKGROUND = 0,//背景<
19、/p><p> KZFLOATBACKGROUND,//浮動背景 </p><p> KZNORMALSPRITE,//普通精靈</p><p> KZTIPSPRITE,//頂端精靈</p><p> KZMENU,//菜單</p><p> KZNORMALDI
20、ALOG,//普通對話框</p><p> KZTIPDIALOG,//頂端對話框</p><p><b> };</b></p><p> #endif // __MACRO_H__</p><p> 目的:使用宏定義是為了在加載精靈到addchild中時,層優(yōu)先級可以一目了然</p&
21、gt;<p> ---------------------------------------------------------------------------------</p><p> #ifndef __RESOURCE_H__</p><p> #define __RESOURCE_H__</p><p> //logoscen
22、e</p><p> static const char* pPath_ls_BG_pic = "images/logoscene_bg.png"; </p><p> static const char* pPath_ls_logo_pic = "images/logoscene_logo.png"; </p><p&g
23、t; static const char* pPath_ls_start_word = "images/logoscene_start_word.png"; </p><p> static const char* pPath_ls_start1_button = "images/logoscene_start1_button.png"; </p>&
24、lt;p> static const char* pPath_ls_start2_button = "images/logoscene_start2_button.png";</p><p> static const char* pPath_ls_exit1_button = "images/logoscene_exit1_button.png";</p&
25、gt;<p> static const char* pPath_ls_exit2_button = "images/logoscene_exit2_button.png";</p><p> static const char* pPath_ls_net = "images/logoscene_net.png";</p><p>
26、 static const char* pPath_ls_net_word = "images/logoscene_net_word.png";</p><p> //selectscene</p><p> static const char* pPath_ss_earth = "images/selectscene_earth.png";&
27、lt;/p><p> static const char* pPath_ss_rotate = "images/selectscene_rotate.png";</p><p> static const char* pPath_ss_guji = "images/selectscene_guji.png";</p><p>
28、 static const char* pPath_ss_shanhu = "images/selectscene_shanhu.png";</p><p> static const char* pPath_ss_lanjiao = "images/selectscene_lanjiao.png";</p><p> static const
29、 char* pPath_ss_xiaochouyu = "images/selectscene_xiaochouyu.png";</p><p> static const char* pPath_ss_lock = "images/selectscene_lock.png";</p><p> static const char* pPath
30、_ss_guji_word = "images/selectscene_guji_word.png";</p><p> static const char* pPath_ss_shanhu_word = "images/selectscene_shanhu_word.png";</p><p> static const char* pPath
31、_ss_lanjiao_word = "images/selectscene_lanjiao_word.png";</p><p> static const char* pPath_ss_xiaochouyu_word = "images/selectscene_xiaochouyu_word.png";</p><p> static con
32、st char* pPath_ss_back1_button = "images/selectscene_back1.png";</p><p> static const char* pPath_ss_back2_button = "images/selectscene_back1.png";</p><p> //loadscene</
33、p><p> static const char* pPath_lds_logo = "images/loadscene_logo.png";</p><p> static const char* pPath_lds_loading1 = "images/loadscene_loading1.png";</p><p>
34、static const char* pPath_lds_loading2 = "images/loadscene_loading2.png";</p><p> #endif // __RESOURCE_H__</p><p> 說明:這是今天所要使用的資源文件,全部放置在buyudaren2\Resources\images中</p><p&
35、gt; 目的是為了方便加載如CCSprite::create( )中直接放圖片所對應的字符串。</p><p> 3.2、第一個場景 LogoScene</p><p> 此場景為游戲主界面,在已經(jīng)寫好函數(shù)框架中添加和效果,在init()中寫如下程序:</p><p> //1.添加logo圖片</p><p> CCSprite*
36、 logoPic = CCSprite::create("logo.png");</p><p> logoPic->setPosition(ccp(240,160));</p><p> addChild(logoPic);</p><p> //2.logo動作</p><p> CCActionInte
37、rval* logoAct1 = CCFadeIn::create(1.5f);</p><p> CCActionInterval* logoAct2 = CCFadeOut::create(1.5f);</p><p> logoPic->runAction(CCSequence::create(logoAct1,logoAct2,NULL));</p><
38、;p> ?。?)進入下一個場景</p><p> a.要在LogoScene.h中添加</p><p> void nextScene(float);</p><p> b.在LogoScene.cpp中定義這個函數(shù)</p><p> void LogoScene::nextScene( float )</p>&
39、lt;p><b> {</b></p><p> CCScene* nS = StartScene::scene();</p><p> CCDirector::sharedDirector()->replaceScene(nS);</p><p><b> }</b></p><p
40、> (2)然后添加頭文件</p><p> #include "StartScene.h"</p><p> ?。?)所得的程序見5.1附錄一:7、LogoScene.h和8、LogoScene.cpp</p><p> 3.3、第二個場景 SelectScene</p><p> 所得的程序見5.1、附錄一
41、:9、SelectScene.h和10、SelectScene.cpp</p><p> 3.4、第三個場景 GameScene</p><p> 所得的程序見5.1、附錄一:5、GameScene.h和6、GameScene.cpp</p><p><b> 3.5、附加程序:</b></p><p> 所得
42、的程序見5.1、附錄一:11.main.h、12.main.cpp、 </p><p> 1.AppDelegate.h、2.AppDelegate.cpp </p><p><b> 四、調(diào)試與測試</b></p><p> 4.1、調(diào)試中的問題與解決方案:</p><p> (1)無法顯示結果,錯誤提示:“L
43、INK : fatal error LNK1104: 無法打開文件‘libcocos2d.lib’”。</p><p><b> 解決方法:</b></p><p> a.在虛擬機的e盤里面,有個 #cocos2d-source#v1 從這里進去,然后把我們的項目添加進去;</p><p> b.在里面用helloworld 是否有 這兩
44、項,如無添加即可。</p><p> (2)運行可以出來,可是出現(xiàn)的很多都連在一起,并不分散,顯得畫面的質感很差。</p><p><b> 解決方法:</b></p><p> 在GameScene中,找到倒數(shù)第三行,及這段程序:</p><p> CCMoveTo::create(rand()%3+7ccp(
45、-winSize.width*0.1,winSize.height*(rand()%50*0.01 + 0.25)));</p><p> 修改“rand()%3”為“rand()%10”,即減慢隨機出魚的速度。</p><p> (3)運行時可以得出結果,可是只有最后一個界面。</p><p><b> 解決方法:</b></p&
46、gt;<p> 在2.AppDelegate.cpp中添加#include "LogoScene.h",并且修改“CCScene *pScene =ScreenScene::scene();”為“CCScene *pScene = LogoScene::scene();”</p><p><b> 4.2、運行結果:</b></p><
47、;p> 得到的最終界面詳見5.2、附錄二。</p><p> 五、源程序清單和運行結果</p><p><b> 5.1、附錄一:</b></p><p> 1.AppDelegate.h</p><p> #ifndef __APP_DELEGATE_H__</p><p>
48、#define __APP_DELEGATE_H__</p><p> #include "cocos2d.h"</p><p><b> /**</b></p><p> @brief The cocos2d Application.</p><p> The reason for i
49、mplement as private inheritance is to hide some interface call by CCDirector.</p><p><b> */</b></p><p> class AppDelegate : private cocos2d::CCApplication</p><p><
50、b> {</b></p><p><b> public:</b></p><p> AppDelegate();</p><p> virtual ~AppDelegate();</p><p><b> /**</b></p><p> @b
51、rief Implement CCDirector and CCScene init code here.</p><p> @return true Initialize success, app continue.</p><p> @return false Initialize failed, app terminate.</p><p>
52、;<b> */</b></p><p> virtual bool applicationDidFinishLaunching();</p><p><b> /**</b></p><p> @brief The function be called when the application enter ba
53、ckground</p><p> @param the pointer of the application</p><p><b> */</b></p><p> virtual void applicationDidEnterBackground();</p><p><b> /**<
54、/b></p><p> @brief The function be called when the application enter foreground</p><p> @param the pointer of the application</p><p><b> */</b></p><p&
55、gt; virtual void applicationWillEnterForeground();</p><p><b> };</b></p><p> #endif // __APP_DELEGATE_H__</p><p> 2.AppDelegate.cpp</p><p> #include &
56、quot;cocos2d.h"</p><p> #include "CCEGLView.h"</p><p> #include "AppDelegate.h"</p><p> #include "SimpleAudioEngine.h"</p><p> #i
57、nclude "LogoScene.h"</p><p> #include "macro.h"</p><p> using namespace CocosDenshion;</p><p> USING_NS_CC;</p><p> AppDelegate::AppDelegate()&l
58、t;/p><p><b> {</b></p><p><b> }</b></p><p> AppDelegate::~AppDelegate()</p><p><b> {</b></p><p> SimpleAudioEngine::e
59、nd();</p><p><b> }</b></p><p> bool AppDelegate::applicationDidFinishLaunching()</p><p><b> {</b></p><p> // initialize director</p>
60、<p> CCDirector *pDirector = CCDirector::sharedDirector();</p><p> pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());</p><p> // turn on display FPS</p><p> pDirec
61、tor->setDisplayStats(true);</p><p> // set FPS. the default value is 1.0/60 if you don't call this</p><p> pDirector->setAnimationInterval(1.0 / 60);</p><p> // create
62、a scene. it's an autorelease object</p><p> CCScene *pScene = LogoScene::scene();</p><p><b> // run</b></p><p> pDirector->runWithScene(pScene);</p><
63、;p> return true;</p><p><b> }</b></p><p> // This function will be called when the app is inactive. When comes a phone call,it's be invoked too</p><p> void A
64、ppDelegate::applicationDidEnterBackground()</p><p><b> {</b></p><p> CCDirector::sharedDirector()->stopAnimation();</p><p> SimpleAudioEngine::sharedEngine()->p
65、auseBackgroundMusic();</p><p><b> }</b></p><p> // this function will be called when the app is active again</p><p> void AppDelegate::applicationWillEnterForeground(
66、)</p><p><b> {</b></p><p> CCDirector::sharedDirector()->startAnimation();</p><p> SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();</p><p&
67、gt;<b> }</b></p><p><b> 3.macro.h</b></p><p> #ifndef __MACRO_H__</p><p> #define __MACRO_H__</p><p> //對應main.cpp中,設置屏幕坐標</p><p
68、> #define SCREEN_X 960</p><p> #define SCREEN_Y 640</p><p> //對應AppDelegate.cpp中,設置第一啟動場景</p><p> #include "LogoScene.h"</p><p> #include "Select
69、Scene.h"</p><p> #include "GameScene.h"</p><p> #define CURRENT_SCREEN GameScene</p><p> #include "SimpleAudioEngine.h"</p><p><b> en
70、um{</b></p><p> KZBACKGROUND = 0,//背景</p><p> KZFLOATBACKGROUND,//浮動背景 </p><p> KZNORMALSPRITE,//普通精靈</p><p> KZTIPSPRITE,//頂端精靈</p>
71、;<p> KZMENU,//菜單</p><p> KZNORMALDIALOG,//普通對話框</p><p> KZTIPDIALOG,//頂端對話框</p><p><b> };</b></p><p> #endif // __MACRO_H__<
72、;/p><p> 4.resource.h</p><p> #ifndef __MAIN_H__</p><p> #define __MAIN_H__</p><p> #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows h
73、eaders</p><p> // Windows Header Files:</p><p> #include <windows.h></p><p> #include <tchar.h></p><p> // C RunTime Header Files</p><p>
74、#include "CCStdC.h"</p><p> #endif // __WINMAIN_H__</p><p> 5.GameScene.h</p><p> #ifndef __GAMESCENE_H__</p><p> #define __GAMESCENE_H__</p>&l
75、t;p> #include "cocos2d.h"</p><p> #include "resource.h"</p><p> #include "macro.h"</p><p> USING_NS_CC;</p><p> class GameScene :
76、public CCLayer</p><p><b> {</b></p><p><b> public:</b></p><p> GameScene();</p><p> ~GameScene();</p><p> virtual bool init();
77、</p><p> static CCScene* scene();</p><p> CREATE_FUNC(GameScene);</p><p> /////////////////////////////////////</p><p> void initData();</p><p> void
78、 shoot(float);</p><p> void spriteMoveFinished(CCNode*);</p><p> void updateTest(float);</p><p> void crash(CCSprite*,CCSprite*);</p><p> void addFish(float);</p
79、><p> //////////////////////////////</p><p> virtual void registerWithTouchDispatcher(); </p><p> virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); </p><p>
80、; virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent); </p><p> virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent); </p><p><b> private:</b></p><p>
81、 CCSize winSize; //屏幕尺寸</p><p> CCSprite* tower;</p><p> CCSprite* bullet;</p><p> CCArray* bulletArr;</p><p> CCSprite* fish;</p><p> CCArray* fish
82、Arr;</p><p> float k;//斜率</p><p> float diffRotate; //角度差</p><p><b> };</b></p><p> #endif // __GAMESCENE_H__</p><p> 6.GameScene.cpp&
83、lt;/p><p> #include "GameScene.h"</p><p> GameScene::GameScene()</p><p><b> {</b></p><p> bulletArr = NULL;</p><p><b> }
84、</b></p><p> GameScene::~GameScene()</p><p><b> {</b></p><p> if(bulletArr){</p><p> bulletArr->release();</p><p> bulletArr = NU
85、LL;</p><p><b> }</b></p><p><b> }</b></p><p> bool GameScene::init()</p><p><b> {</b></p><p> srand(time(0));</
86、p><p> bulletArr = CCArray::create();</p><p> bulletArr->retain();</p><p> initData();</p><p> schedule(schedule_selector(GameScene::addFish),rand()%3);</p>
87、<p> return true;</p><p><b> }</b></p><p> CCScene* GameScene::scene()</p><p><b> {</b></p><p> CCScene* myScene = CCScene::create();&
88、lt;/p><p> GameScene* myLayer = GameScene::create();</p><p> myScene->addChild(myLayer);</p><p> return myScene;</p><p><b> }</b></p><p>
89、void GameScene::initData()</p><p><b> {</b></p><p><b> //獲取屏幕尺寸</b></p><p> winSize = CCDirector::sharedDirector()->getWinSize();</p><p>&
90、lt;b> //添加背景圖片</b></p><p> CCSprite* bg = CCSprite::create(pPath_gs_bg);</p><p> bg->setPosition(ccp(winSize.width*0.5,winSize.height*0.5));</p><p> addChild(bg,KZBA
91、CKGROUND);</p><p><b> //添加炮塔圖片</b></p><p> tower = CCSprite::create(pPath_gs_tower1);</p><p> tower->setPosition(ccp(winSize.width*0.5,winSize.height*0.05));</p
92、><p> addChild(tower,KZTIPSPRITE);</p><p><b> //設置為可觸摸</b></p><p> setTouchEnabled(true); </p><p><b> }</b></p><p> void Gam
93、eScene::shoot(float dt)</p><p><b> {</b></p><p><b> //發(fā)射</b></p><p> CCActionInterval* bAct = CCMoveBy::create(3.0f,ccp(winSize.height/k ,winSize.height))
94、; </p><p> bullet->runAction(CCSequence::create(</p><p><b> bAct,</b></p><p> CCCallFuncN::create(this, callfuncN_selector(GameScene::spriteMoveFinished)), <
95、/p><p><b> NULL));</b></p><p> //射出的子彈飛出屏幕后被父節(jié)點銷毀,避免無效精靈數(shù)</p><p><b> }</b></p><p> void GameScene::spriteMoveFinished(CCNode *sender )</p>
96、;<p><b> {</b></p><p> CCSprite *sprite = (CCSprite*)sender;</p><p> this->removeChild(sprite, true);</p><p><b> }</b></p><p> //
97、////////////////////////////////////////////////////////////////////////</p><p> void GameScene::registerWithTouchDispatcher()</p><p><b> {</b></p><p> CCDirector::sh
98、aredDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true); </p><p><b> }</b></p><p> bool GameScene::ccTouchBegan( CCTouch *pTouch, CCEvent *pEvent )</p>
99、<p><b> {</b></p><p> CCLOG("%f,%f",pTouch->getLocation().x,pTouch->getLocation().y); </p><p><b> /*</b></p><p> CCLOG 調(diào)試日志,在main
100、.cpp的#define USE_WIN32_CONSOLE 這一行,把它的注釋刪掉即開啟調(diào)試框</p><p> 兩個%f是為了查看我們這里鼠標點擊后的坐標點,用%f是精度問題</p><p><b> */</b></p><p> //計算觸點坐標和炮塔坐標的差值</p><p> float x = pT
101、ouch->getLocation().x - tower->getPosition().x;</p><p> float y = pTouch->getLocation().y - tower->getPosition().y;</p><p><b> //計算斜率</b></p><p><b>
102、 k = y/x;</b></p><p> //計算炮塔旋轉角度</p><p> diffRotate = atan2(x,y)*180/3.14;</p><p> //設置炮塔的旋轉位置,對準觸點</p><p> tower->setRotation(diffRotate);</p><
103、;p><b> //添加子彈圖片</b></p><p> bullet = CCSprite::create(pPath_gs_bullet1);</p><p> bullet->setAnchorPoint(ccp(0.5,0));</p><p> bullet->setPosition(ccp(winSize
104、.width*0.5,winSize.height*0.05));</p><p> addChild(bullet,KZNORMALSPRITE);</p><p><b> //設置子彈方向</b></p><p> bullet->setRotation(diffRotate);</p><p> /
105、/單個炮彈放入炮彈數(shù)組中</p><p> bulletArr->addObject(bullet);</p><p><b> //炮彈發(fā)射</b></p><p> schedule(schedule_selector(GameScene::shoot),0.1f);</p><p><b>
106、 //碰撞檢測</b></p><p> schedule(schedule_selector(GameScene::updateTest),0.1f);</p><p> return true;</p><p><b> }</b></p><p> void GameScene::ccTouch
107、Moved( CCTouch *pTouch, CCEvent *pEvent )</p><p><b> {</b></p><p><b> }</b></p><p> void GameScene::ccTouchEnded( CCTouch *pTouch, CCEvent *pEvent )</p
108、><p><b> {</b></p><p><b> }</b></p><p> //////////////////////////////////////////////////////////////////////////</p><p> void GameScene::upda
109、teTest( float )</p><p><b> {</b></p><p> crash(bullet,fish);</p><p><b> }</b></p><p> void GameScene::crash( CCSprite* sp1,CCSprite* sp2)<
110、;/p><p><b> {</b></p><p> //CCRect rect1 = sp1->getTextureRect(); //getTextureRect 獲取這張圖的寬高等信息</p><p> //CCRect rect2 = sp1->getTextureRect();</p><p>
111、 //CCPoint sp1_ori = ccpSub(sp1->getPosition(),ccp(sp1->getContentSize().width/2,sp1->getContentSize().height/2)); </p><p> //CCPoint sp2_ori = ccpSub(sp2->getPosition(),ccp(sp2->getContentS
112、ize().width/2,sp2->getContentSize().height/2)); </p><p> //rect1.origin = sp1_ori;//得到圖片的錨點</p><p> //rect2.origin = sp2_ori;</p><p> //if (rect1.intersectsRect(rect2)) //如果
113、錨點相碰,則判定其相碰</p><p><b> //{</b></p><p> //removeChild(sp2,true);</p><p> //unschedule(schedule_selector(GameScene::updateTest));</p><p><b> //}&
114、lt;/b></p><p><b> }</b></p><p> //////////////////////////////////////////////////////////////////////////</p><p> void GameScene::addFish( float )</p><
115、p><b> {</b></p><p> //char* str;</p><p> int n = rand()%18+1;</p><p> srand(time(0));</p><p> //sprintf(str,"gamescene_fish%d.png",n);
116、 //隨機出魚</p><p> CCSprite* fish = CCSprite::create(pPath_gs_fish16);</p><p> fish->setPosition(ccp(winSize.width*1.1,winSize.height*(rand()%50*0.01 + 0.25))); //保證魚出現(xiàn)的位置在屏幕高度的%-75%之間</p&g
117、t;<p> addChild(fish,KZNORMALSPRITE);</p><p> CCActionInterval* fishAct = CCMoveTo::create(rand()%10+7,ccp(-winSize.width*0.1,winSize.height*(rand()%50*0.01 + 0.25)));</p><p> fish->
118、;runAction(fishAct);</p><p><b> }</b></p><p> 7.LogoScene.h</p><p> #ifndef __LOGOSCENE_H__</p><p> #define __LOGOSCENE_H__</p><p> #inclu
119、de "cocos2d.h"</p><p> #include "resource.h"</p><p> #include "macro.h"</p><p> USING_NS_CC;</p><p> class LogoScene : public CCLayer&
120、lt;/p><p><b> {</b></p><p><b> public:</b></p><p> virtual bool init();</p><p> static CCScene* scene();</p><p> CREATE_FUNC(Logo
121、Scene);</p><p> //////////////////////////////</p><p> virtual void registerWithTouchDispatcher(); </p><p> virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); </p&
122、gt;<p> virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent); </p><p> virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent); </p><p> //////////////////////////////<
123、/p><p> void initData();</p><p> void nextScene(CCObject*);</p><p> void exitScene(CCObject*);</p><p><b> private:</b></p><p> CCSize winSize
124、; //屏幕尺寸</p><p> CCSprite* BG;</p><p><b> };</b></p><p> #endif // __LOGOSCENE_H__</p><p> 8.LogoScene.cpp</p><p> #include "LogoSce
125、ne.h"</p><p> #include "SelectScene.h"</p><p> bool LogoScene::init()</p><p><b> {</b></p><p> initData();</p><p> return t
126、rue;</p><p><b> }</b></p><p> CCScene* LogoScene::scene()</p><p><b> {</b></p><p> CCScene* myScene = CCScene::create();</p><p>
127、; LogoScene* myLayer = LogoScene::create();</p><p> myScene->addChild(myLayer);</p><p> return myScene;</p><p><b> }</b></p><p> ///////////////////
128、///////////////////////////////////////////////////////</p><p> void LogoScene::initData()</p><p><b> {</b></p><p><b> //獲取屏幕尺寸</b></p><p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《捕魚達人》成功數(shù)據(jù)背后市場趨勢
- 基于Cocos2d-x引擎捕魚達人多人游戲功能的設計與實現(xiàn).pdf
- 課程設計鏈表的交叉合并課程設計
- fpga課程設計課程設計報告
- 【課程設計】c語言課程設計
- java課程設計----課程設計報告
- 課程設計--unix程序設計課程設計
- 課程設計-工藝裝備課程設計
- 課程設計-sit空調(diào)工程課程設計
- 供熱工程課程設計---采暖課程設計
- 課程設計—火車售票系統(tǒng)課程設計
- 課程設計
- 最優(yōu)捕魚題庫
- 課程設計
- 礦井通風與除塵課程設計課程設計
- 控制儀表與裝置課程設計 課程設計
- 課程設計ⅰ
- 課程設計
- 《c語言課程設計》課程設計--數(shù)據(jù)的加密與解密
- 課程設計-基于單片機的遙控窗簾課程設計
評論
0/150
提交評論