freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于cocos2d-x的跨平臺(tái)游戲的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(參考版)

2025-05-24 15:34本頁面
  

【正文】 淄 博職業(yè)學(xué)院信息工程系畢業(yè)設(shè)計(jì) 22 參考文獻(xiàn) [1] 李華明 《 iOS 游戲編程之從零開始 Cocos2dx 與 cocos2d 引擎游戲開 發(fā)》 清華出 版社 [2] 滿碩泉《 Cocos2Dx 權(quán)威指南》機(jī)械工業(yè)出版社 [3] 劉劍卓《 Cocos2DX 游戲開發(fā)技術(shù)精解》人民郵電出版社 [4] 仙外仙 . [5] 紅孩兒 [6]鐘迪龍 《 Cocos2dx 游戲開發(fā)之旅》 電子工業(yè)出版社 。但最終我還是把他吃透,造出現(xiàn)在的畢業(yè)設(shè)計(jì)。在制作 項(xiàng)目 的過程中,我感覺我的編程能力,溝通協(xié)調(diào)能力各方面的能力都有了很大的提高。在這個(gè)過程中,我們遇到了很多困難,例如對(duì) 數(shù)據(jù)結(jié)構(gòu) 的不熟悉,分?jǐn)?shù)增加, 音效、圖片資源的添加, 編寫的錯(cuò)誤等等。經(jīng)過多次測試和仔細(xì)修改,游戲終于完成了。在研究的工作過程中遇到困難我就請教老師,并和同學(xué)互相交流討論,還請教了在職的游戲和軟件開發(fā)的人員。然后我將收集到的資料仔細(xì)整理分類?;叵脒@段日子的經(jīng)歷和感受,我感慨萬千,在這次畢業(yè)設(shè)計(jì)的過程中,我擁有了無數(shù)難忘的回憶和收獲。從最初的茫然,到慢慢的進(jìn)入狀態(tài),再到對(duì)思路逐漸的清晰,整個(gè)過程難以用語言來表達(dá)。 pObjectautorelease()亦可使用引擎的內(nèi)存管理功能,前提是 className直接或間接繼承自 CCObject類。 最后,對(duì)于手動(dòng)操作而言 new 操作和 delete 操作成對(duì)出現(xiàn)就行,類數(shù)據(jù)成員則在析構(gòu)函數(shù)中 delete,以免提前釋放了,造成內(nèi)存操作錯(cuò)誤。推薦使用 autorelease()來管理對(duì)內(nèi)存的釋放。當(dāng)你加入以 后,基本不需要對(duì)該對(duì)象的指針進(jìn)行釋放之類的操作,當(dāng)然是沒進(jìn)行pObjectretain()(需要再執(zhí)行 pObjectrelease())操作。在每一幀結(jié)束的時(shí)候調(diào)用 pop 對(duì)池中的對(duì)象指針執(zhí)行 退出自動(dòng)釋放池,并且根據(jù)引用計(jì)數(shù)來實(shí)現(xiàn)自動(dòng)釋放。附錄: new 的動(dòng)態(tài)內(nèi)存,只要在程序結(jié)束之前 delete 就 行,這樣在程序結(jié)束之前就可 以把申請到的堆內(nèi)存返還給系統(tǒng),但是在實(shí)際的編程過程中,一般為了及時(shí)釋放不用的空間提高內(nèi)存的使用率而在不需要的位置調(diào)用 delete 來釋放,以免造成內(nèi)存占用過高和程序結(jié)束之前忘掉,從而造成的內(nèi)存溢出。 pExitItemsetPosition(ccp(_SCREEN_WIDTH_/2,_SCREEN_HEIGHT_/2))。 觸摸事件; 游戲結(jié)束場景 游戲最后結(jié)束需要保存分?jǐn)?shù)并退出,退出界面如圖 : 淄 博職業(yè)學(xué)院信息工程系畢業(yè)設(shè)計(jì) 19 圖 //退出按鈕 CCMenuItemImage *pExitItem=CCMenuItemImage::create( , , this, menu_selector(CWXBeginSceneLayer::menuExitCallback))。 virtual void ccTouchMoved (cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)。 CCRect rect_HeroForCrash = CCRectMake(x, y, width, height)。 float width = * 。 float x = + * 。我這里采取最簡單的處理方法,就是通過節(jié)點(diǎn)的boundingbox 獲取到一個(gè) rect,然后對(duì)這個(gè) rect 加工一下 , 這樣子可以獲取節(jié)點(diǎn) boundingbox 里面的某一部分來作為碰撞的檢測部分 。 hero 是直接加到 herolayer 上的,父節(jié)點(diǎn)同樣 是鋪滿屏幕的,所以他們的父節(jié)點(diǎn)的左下角的坐標(biāo)都一樣的,這就是通過 boundingbox 檢測他們是否碰撞的前提。所以子彈調(diào)用 boundingbox 獲得的矩形是以屏幕左下角為原點(diǎn)的。//執(zhí)行移除 } bulletsToDeleterelease()。//release CCARRAY_FOREACH(bulletsToDelete,bt)//遍歷所有此幀中碰撞的子彈 { CCSprite* bullet = (CCSprite*)bt。 thisenemyLayerbomb(enemy3)。 label1setString(str1)。 sprintf(str1, %d,(int)thism_totalScore)。//把待刪除敵機(jī)放入 CCArray thism_totalScore += enemy3getScore()。 bulletsToDeleteaddObject(bullet)。 bulletsToDeleteaddObject(bullet)。 CCARRAY_FOREACH(thisenemyLayerm_enemys,et)//遍歷所有敵機(jī) { Enemy* enemy3 = (Enemy*)et。 } return。 if (thisheroLayergetHeroLifes() == 0) { thisscheduleOnce(schedule_selector(GameScene::gameOverCallback), )。 lbLifesetString(life)。 sprintf(life, %d, thisheroLayergetHeroLifes())。 if (thism_totalScore tempHightScore) { GameScene::saveHightestScore(thism_totalScore)。 SimpleAudioEngine::sharedEngine()pauseBackgroundMusic()。 enemyLayerbomb(enemy)。 淄 博職業(yè)學(xué)院信息工程系畢業(yè)設(shè)計(jì) 16 thisheroLayersetHeroLifes(thisheroLayergetHeroLifes() 1)。 } // CCPoint rect1 = thisheroLayergetHero()getPosition()。 Enemy* enemy = (Enemy*)et。 CCRect rect_HeroForCrash = CCRectMake(x, y, width, height)。 float width = * 。 float x = + * 。//創(chuàng)建一個(gè) CCArray,用以存放待刪除的敵機(jī),也就是此子彈擊中的敵機(jī) enemyToDeleteretain()。//必須調(diào)用 retain, CCArray內(nèi)部調(diào)用了 autoRelease CCObject* bt,*et。同時(shí)發(fā)送消息消除敵機(jī),將發(fā)生了碰撞的敵機(jī)進(jìn)行回收,把碰撞的子彈和敵機(jī)存入 CCArray 中,移除碰撞的子彈和敵機(jī) void GameScene::detectionCrash() { CCArray* bulletsToDelete = CCArray::create()。Info,sizeof(Info))。 = CCPointMake(rand()%(int)(_SCREEN_WIDTH_ ) + *, )。 = m_fSpeed。 = m_nHp。 EnemyForCreateMsg Info。 return false。 return true。 } //判斷是否創(chuàng)建敵人 void CWXEnemyManager::EnemyManagerLoop() { if (IsCreate()) { Create()。 淄 博職業(yè)學(xué)院信息工程系畢業(yè)設(shè)計(jì) 14 CCLog(Fun EnemyManager::Init Error!)。 return true。 m_pTexture = pTexture。 m_nCD = nCD。 m_nHp = nHp。 } void BulletLayer::StopShoot() { thisunschedule(schedule_selector(BulletLayer::AddBullet))。 bulletrunAction(sequence)。 CCFiniteTimeAction* actionDone=CCCallFuncN::create(this,callfuncN_selector(BulletLayer::bulletMoveFinished))。//320pi
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1