g_GameMain.DeleteSprite( pTarSprite, true ); } }
17、当我方战机的HP值小于0是,游戏结束。增加IsGameLost方法。
bool CGameMain::IsGameLost() {
return ( m_pMyFighter ? m_pMyFighter->IsDead() : false ); }
18、在GameMainLoop中的switch语句中的case2中调用
if( !IsGameLost() ) {
GameRun( fDeltaTime ); }
19、在CBullet中添加IsMyBullet 的处理函数。
bool CBullet::IsMyBullet() {
m_iType = GetType(); if (m_iType == 0) {
return true; }
return false; }
实验六 读写游戏记录
【实验内容】
1、读取游戏最高分记录; 2、写入游戏最高分记录;
【实验思路】
用流方式读写文件。
【实验指导】
1、在CGameMain中添加表示最高分数的私有成员变量m_iMaxScore,并在构造函数中
初始化为0。
2、在CGameMain类的GameInit方法中读取游戏记录。
fstream ScoreFile(\ if( ScoreFile.is_open() ) {
ScoreFile >> m_iMaxScore; ScoreFile.close(); }
//更新最大积分
g_MaxScoreText->SetTextValue( m_iMaxScore );
20
上海锐格软件有限公司
注意需要包含头文件,并声明命名空间:
#include %using namespace std;
3、在CGameMain类的GameEnd方法中写入记录。
if( m_iMaxScore < GetControlSprite()->GetScore() ) {
m_iMaxScore=GetControlSprite()->GetScore(); // 写文件
fstream ScoreFile(\if( ScoreFile.is_open() ) {
ScoreFile << m_iMaxScore; ScoreFile.close(); } }
SetGameState(0);
4、至此,本游戏全部结束。
21