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

正文內(nèi)容

10c課程設(shè)計貪吃魚(編輯修改稿)

2025-07-22 04:59 本頁面
 

【文章內(nèi)容簡介】 新游戲界面中HP的值。在OnSpriteColSprite中,我可以知道碰撞雙方的名稱,但我們還需要根據(jù)名稱獲得具體的小魚的對象,以便獲得小魚的等級和HP值等屬性,因此我們每創(chuàng)建一只小魚,就把這只小魚增加到鏈表中管理起來。這樣我們就增加了一個FishList鏈表?!緦嶒炛笇?dǎo)】 首先為MyFish設(shè)置碰撞屬性。MyFish產(chǎn)生碰撞,敵方小魚接受碰撞。這個在控制面板中已經(jīng)設(shè)置好了,如果想自己設(shè)置么可以添加如下代碼,將控制面板中碰撞屬性取消,在構(gòu)造函數(shù)中設(shè)置碰撞屬性。SetSpriteCollisionActive(true,false)。 其次為敵方小魚設(shè)置碰撞屬性。敵方小魚接受碰撞,這個屬性和1一樣,也在界面中設(shè)置好了,如果想要自行設(shè)置,可以取消界面中的設(shè)置,然后在CNormalFish類的構(gòu)造函數(shù)中增加如下代碼。SetSpriteCollisionActive(false,true)。 為CMyFish和CNormalFish增加等級和HP值的屬性,和設(shè)置、獲得這兩個屬性的方法,最后改造構(gòu)造函數(shù)。int m_iHp。int m_iLevel。CMyFish:: CMyFish ( const char *szName, const int iHp, const int iLevel )。CNormalFish::CNormalFish( const char *szName)。 //普通魚的HP和level隨機生成 ,并在CGameMain類中添加一個頭節(jié)點m_pFishHeader。struct FishList{CNormalFish *pPtr。FishList *pNext。 // 指向鏈表的下一個FishList *pPrev。 // 指向鏈表的上一個}。 在CGameMain類中添加AddFish方法實現(xiàn)將小魚添加到鏈表中,參數(shù)為生成的敵方小魚的指針。void CGameMain::AddFish( CNormalFish *pSprite ){if( NULL == pSprite ) return。FishList *pFish = new FishList。pFishpPtr = pSprite。pFishpNext = NULL。pFishpPrev = NULL。// 插入鏈表中if( NULL == m_pFishHeader ) m_pFishHeader = pFish。else{ FishList *pTemp = m_pFishHeader。 while( NULL != pTemppNext ) pTemp = pTemppNext。 pFishpPrev = pTemp。 pTemppNext = pFish。}} 同時在碰撞時,我們需要根據(jù)小魚的名稱獲得小魚的對象,因此添加GetFishFromName方法。CNormalFish* CGameMain::GetFishFromName( const char *szName ){FishList *pFish = NULL。for( pFish = m_pFishHeader。 NULL != pFish。 pFish = pFishpNext ){ if( strcmp( szName, pFishpPtrGetName()) == 0 ) return pFishpPtr。}return NULL。} 在CGameMain類的GameRun方法中,將創(chuàng)建的小魚對象的指針添加到鏈表中。 玩家的小魚根據(jù)HP值分為14不同的等級,初始HP的值為10,等級為1。當(dāng)HP大于20時且等級為1時,玩家升為2級;當(dāng)HP值大于100時且等級為2時,玩家升為3級;當(dāng)HP值大于1000時且等級為3時,玩家升為4級。每升1級,魚的大小也變大25%。在CNormalFish類中添加碰撞處理函數(shù):void OnColControlFish(CMyFish *pControlFish)。定義如下:void CNormalFish::OnColControlFish(CMyFish *pControlFish){ ...}在上述函數(shù)中添加以下代碼:if (pControlFish == NULL){ return。}else{ if( m_pMyFishGetLevel() = GetLevel() ) { pControlFishSetHp(pControlFish GetHp()+GetHp())。 if(m_pMyFish GetHp() = 1000 amp。amp。 m_pMyFish GetLevel() == 3 ) { m_pMyFish SetLevel( 4 )。 m_pMyFish SetSpriteScale( )。 // 模型變大 } else if(m_pMyFish GetHp() = 100 amp。amp。 m_pMyFish GetLevel() == 2 ) { m_pMyFish SetLevel( 3 )。 m_pMyFish SetSpriteScale( )。 // 模型變大 } else if(m_pMyFish GetHp() = 20 amp。amp。 m_pMyFish GetLevel() == 1 ) { m_pMyFish SetLevel( 2 )。 m_pMyFish SetSpriteScale( )。 // 模型變大 } } else { pControlFishSetHp(0)。 }} 接著我們在CGameMain類中聲明函數(shù)OnSpriteColSprite處理碰撞。OnSpriteColSprite函數(shù)的第一個參數(shù)是碰撞的產(chǎn)生方的名稱,第二個參數(shù)是碰撞接受方的名稱。由上面兩個步驟,我們知道碰撞產(chǎn)生方是玩家控制的小魚的名稱,接受方是敵方小魚的名稱。而碰撞方是直接被刪除。同時更新玩家控制小魚的HP。if( 2 != GetGameState() || NULL == m_pMyFish)return。 else if( strcmp( m_pMyFishGetName(), szSrcName ) == 0 ){if( !strstr( szTarName, putongyu ) ) return。 CNormalFish *pFish = GetFishFromName( szTarName )。if( NULL != pFish ){ pFish OnColControlFish(m_pMyFish)。 DeleteFishFromName(szTarName)。 } } DeleteFishFromName將碰撞后的小魚從鏈表中刪除。void CGameMain::DeleteFishFromName( const char *szName ){FishList *pFish = NULL。for( pFish = m_pFishHeader。 NULL != pFish。 pFish = pFishpNext ){ if( strcmp( szName, pFishpPtrGetNam
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1