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

正文內(nèi)容

10c課程設(shè)計(jì)貪吃魚(yú)-資料下載頁(yè)

2025-06-25 04:59本頁(yè)面
  

【正文】 if( HP = 0 ) { pControlFishSetHp(0)。 pControlFishSetLevel(1)。 pControlFishSetSpriteScale()。 }else if (HP = 20) { pControlFishSetLevel(1)。 pControlFishSetSpriteScale()。 }else if (HP = 100) { pControlFishSetLevel(2)。 pControlFishSetSpriteScale()。 }else if (HP = 10000) { pControlFishSetLevel(3)。 pControlFishSetSpriteScale()。 } }}在GameRun,生成特殊的魚(yú),并將它添加到鏈表中去。 char szNameSpecial[128]。 在 if( m_fCreateNormalTime = )中添加以下: sprintf( szNameSpecial, specialyu_%d, m_iCreatedFishCount )。 CSpecialFish *specialfish = new CSpecialFish(szNameSpecial)。 AddFish(specialfish)。在CGameMain類(lèi)的OnSpriteColSprite方法中完善碰撞檢測(cè),將代碼添加到if( strcmp( m_pMyFishGetName(), szSrcName ) == 0 )判斷里面。 // 找到該魚(yú)的對(duì)象實(shí)例,調(diào)用碰撞處理函數(shù) if(strstr( szTarName, putongyu ) != NULL ) { CNormalFish* pFish=(CNormalFish*)( GetFishFromName( szTarName )pPtr)。 if( NULL != pFish ) { pFishOnColControlFish( m_pMyFish )。 } } else if ( strstr(szTarName, specialyu) != NULL) { CSpecialFish* pFish=(CSpecialFish*)(GetFishFromName( szTarName )pPtr)。 if( NULL != pFish ) { pFishOnColControlFish( m_pMyFish )。 } } // 碰撞之后,不管誰(shuí)吃誰(shuí),都將游戲里的魚(yú)刪除掉 DeleteFishFromName( szTarName )。 }實(shí)驗(yàn)五 *為小魚(yú)增加父類(lèi)【實(shí)驗(yàn)內(nèi)容】為CNormalFish、CSpecialFish、CMyFish增加父類(lèi)CGameSprite?!緦?shí)驗(yàn)思路】 由于CNormalFish、CSpecialFish和CMyFish有許多共同屬性和方法,因此把他們的共性提取出來(lái),使用這些共性為他們創(chuàng)建一個(gè)父類(lèi)CGameSprite。增加父類(lèi)是為了方便以后再有這方面的類(lèi)需要?jiǎng)?chuàng)建的時(shí)候,就可以直接繼承于CGameSprite這個(gè)類(lèi)【實(shí)驗(yàn)指導(dǎo)】 通過(guò)類(lèi)向?qū)砑覥GameSprite類(lèi),其繼續(xù)于CSprite類(lèi)。在類(lèi)定義前,通過(guò)類(lèi)聲明,聲明CMyFish類(lèi)。class CMyFish;class CGameSprite : public CSprite{public: // 結(jié)合該變量的應(yīng)用,考慮為什么要用靜態(tài)成員變量?普通成員變量和靜態(tài)成員變量的生命周期有什么不同? static int m_iCreatedFishCount。public: CGameSprite( const char *szName ) : CSprite( szName ) {} ~CGameSprite() { } // Get // 獲取精靈生命值 int GetLevel() { return m_iLevel。 } // 獲取精靈級(jí)別 int GetHp() { return m_iHp。 } // Set void SetLevel( const int iLevel ) { m_iLevel = iLevel。 } void SetHp( const int iHp ) { m_iHp = iHp。 } // 當(dāng)游動(dòng)的魚(yú)碰撞到玩家控制的魚(yú)的時(shí)候調(diào)用到。 // pControlFish即為玩家控制的魚(yú)的指針 // 思考:這里為什么使用虛函數(shù) virtual void OnColControlFish( CMyFish *pMyFish ) { } virtual void OnMove(bool bKeyDown,int iKey){}protected: int m_iHp。 // Health Point 生命值 int m_iLevel。 // 等級(jí)(玩家控制的那條魚(yú)可以升級(jí)降級(jí),其它的魚(yú)是初始 // 的時(shí)候就給了固定的等級(jí)值)}。 修改CNormalFish、CSpecialFish、CMyFish三個(gè)類(lèi)的相關(guān)代碼,使其繼承于CGameSprite類(lèi),并且將一部分私有成員變量去除,并將沒(méi)有virtual前綴的相同的成員函數(shù)刪除; 修改FishList的結(jié)構(gòu),將CSprite * pPtr改為以下:CGameSprite *pPtr。 修改CGameMain類(lèi)GetFishFromName方法代碼。CGameSprite* 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。} 修改AddFish的參數(shù)。將CSprite * pSprite 改成CGameSprite * pSprite; 修改CGameMain類(lèi)OnSpriteColSprite方法。 將上一個(gè)實(shí)驗(yàn)中的 CNormalFish *pFish = (CNormalFish *)(GetFishFromName( szTarName )pPtr)。 CSpecialFish *pSpecialFish =(CSpecialFish *)(GetFishFromName( szTarName )pPtr)。 改成: CNormalFish *pFish = (CNormalFish *)(GetFishFromName( szTarName ))。 CSpecialFish *pSpecialFish =(CSpecialFish *)(GetFishFromName( szTarName ))。 至此,游戲就結(jié)束了,你可以開(kāi)始玩自己做的游戲了。15
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1