⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamestateplay.hpp

📁 超级玛丽
💻 HPP
📖 第 1 页 / 共 3 页
字号:
		mTunnel_4[i] = new Tunnel(this);
	
	for (i=0;i<MAX_GANGPLANK;i++)
		mGangplank[i] = new Gangplank(this);

	for (i=0;i<MAX_GANGPLANK;i++)
		mGangplank_1[i] = new Gangplank(this);

	for (i=0;i<MAX_GANGPLANK;i++)
		mGangplank_2[i] = new Gangplank(this);

	for (i=0;i<MAX_BAD_FLOWER;i++)
		mBadFlowers[i] = new BadFlower(this);
	
	
	//mEngine->EnableVSync(true);


	//mBlock->SetPosition(mX, mY);

}


void GameStatePlay::Start()
{
	mTurtleCount = 0;
	mBadMushCount = 0;
	mStaticCoinsCount = 0;
	mBadFlowersCount = 0;
	mTunnelCount = 0;
	mTunnel_1Count = 0;
	mTunnel_2Count = 0;
	mTunnel_3Count = 0;
	mTunnel_4Count = 0;
	mGangplankCount = 0;
	mGangplankCount_1 = 0;
	mGangplankCount_2 = 0;

	mEngine->PlayMusic(mMusic);
	
}


void GameStatePlay::End()
{
	
}

JTexture* GameStatePlay::GetTexture(int id)
{
	return mTexture;
}


void GameStatePlay::Destroy()
{
	int i;

	if (mBgTex)
		mEngine->FreeTexture(mBgTex);
	//life = mMario->GetCurLife();
	//coincount = mMario->GetCoinCount();
	//mSql->SaveState("1","100",string(life),string(coincount));

	SAFE_DELETE(mMountains);
	SAFE_DELETE(mCloud);

	if (mTexture)
		mEngine->FreeTexture(mTexture);

	if (mTexture_2)
		mEngine->FreeTexture(mTexture_2);

	for (i=0;i<MAX_TILES;i++)
		SAFE_DELETE(mTiles[i]);
		
	SAFE_DELETE(mMario);
	for (int i=0;i<MAX_BADFISH;i++)
		SAFE_DELETE(mBadFish[i]);
	SAFE_DELETE(scrollerCloud);
	SAFE_DELETE(scrollerMount);

	if (mMusic)
		mEngine->FreeMusic(mMusic);

	if (mTileTex)
		mEngine->FreeTexture(mTileTex);

	SAFE_DELETE(mTileMap);

	if (mRainbowTex)
		mEngine->FreeTexture(mRainbowTex);

	SAFE_DELETE(mRainbow);
	if (mStabTex)
		mEngine->FreeTexture(mStabTex);

	SAFE_DELETE(mStab);
	SAFE_DELETE(mBlock);
	SAFE_DELETE(mCoin);
	
	for (i=0;i<MAX_TURTLE;i++)
		SAFE_DELETE(mTurtle[i]);

	for (i=0;i<MAX_MUSH;i++)
		SAFE_DELETE(mBadMush[i]);

	for (i=0;i<MAX_STATIC_COIN;i++)
		SAFE_DELETE(mStaticCoins[i]);

	for (i=0;i<MAX_TUNNEL;i++)
		SAFE_DELETE(mTunnel[i]);

	for (i=0;i<MAX_TUNNEL;i++)
		SAFE_DELETE(mTunnel_1[i]);

	for (i=0;i<MAX_TUNNEL;i++)
		SAFE_DELETE(mTunnel_2[i]);

	for (i=0;i<MAX_TUNNEL;i++)
		SAFE_DELETE(mTunnel_3[i]);

	for (i=0;i<MAX_TUNNEL;i++)
		SAFE_DELETE(mTunnel_4[i]);


	for (i=0;i<MAX_GANGPLANK;i++)
		SAFE_DELETE(mGangplank[i]);

	for (i=0;i<MAX_GANGPLANK;i++)
		SAFE_DELETE(mGangplank_1[i]);

	for (i=0;i<MAX_GANGPLANK;i++)
		SAFE_DELETE(mGangplank_2[i]);

	for (i=0;i<MAX_BAD_FLOWER;i++)
		SAFE_DELETE(mBadFlowers[i]);

	SAFE_DELETE(mMushroom);

	for (i=0;i<MAX_SFX;i++)
		if (mSfx[i])
			mEngine->FreeSample(mSfx[i]);
}


void GameStatePlay::Update()
{

//	if (mEngine->GetButtonClick(PSP_CTRL_TRIANGLE))	// do a screen shot when TRIANGLE is pressed
//	{
//		char s[80];
//		sprintf(s, "ms0:/screenshot.png");
//		mEngine->ScreenShot(s);
//	}


	HGE *sEngine = NULL;
	sEngine = hgeCreate(HGE_VERSION);
	//if (mEngine->GetButtonState(HGEK_CTRL))		// exit when the CROSS is pressed
	if(sEngine->Input_GetKeyState(HGEK_ESCAPE)==true)
	{   sEngine->Release();
		mEngine->End();
		return;
	}
	

	if(sEngine->Input_GetKeyState(HGEK_F1)== true)
	{
		mEngine->PlaySample(mSfx[3]);
		mMenu->SetActive();
		return;
	}
//
	if (mEngine->GetButtonClick(PSP_CTRL_CROSS))		// exit when the CROSS is pressed
	{
		mEngine->End();
		return;
	}

	float dt = mEngine->GetDelta();	// get number of milliseconds passed since last frame
	
	mMario->Update(dt);

	mTileMap->Update(dt);

	if (mMario->md == true)
	{
		mEngine->FreeMusic(mMusic);
		mApp->SetNextState(GAME_STATE_OVER);
		mMario->md = false;
		mEngine->PlaySample(mSfx[SFX_SHOUT]);
	}
	if (bmap_3)
	{
		if (mMario->GetY() > mTileMap->mMapY + 480 )
		{
			mEngine->FreeMusic(mMusic);
			mApp->SetNextState(GAME_STATE_OVER);
			VIRTUAL_WIDTH	= 5120.0f;
			VIRTUAL_HEIGHT = 480.0f;
			mEngine->PlaySample(mSfx[SFX_SHOUT]);
		}
		if (mMario->GetY() <= mTileMap->mMapY + 84 && mMario->mFlashTime == 0)
		{
			mMario->mFlashTime = 500;
			mMario->Blood();
			if (mMario->GetCurLife() <= 0)
			{
				mEngine->FreeMusic(mMusic);
				mApp->SetNextState(GAME_STATE_OVER);
				VIRTUAL_WIDTH	= 5120.0f;
				VIRTUAL_HEIGHT = 480.0f;
			}
		}
	}

	if((((mMario->GetX()+10)-mMushroom->GetX())<=20.0f)&&((mMario->GetY()-mMushroom->GetY()))<=60.0f&&((mMushroom->GetX()-mMario->GetX()+10)<=60.0f)&&(mMushroom->GetY()-mMario->GetY()<=20.0f) && haveMushroom == true)
	{
		mMushroom->Dead();
		haveMushroom = false;
		maxLifeCount = 60;
		mMario->BloodP();
	}

	for (int i=0;i<MAX_STATIC_COIN;i++)
		if((((mMario->GetX()+10)-(mStaticCoins[i]->GetX()-15.0f))<=20.0f)&&((mMario->GetY()-(mStaticCoins[i]->GetY()-15.0f)))<=90.0f&&(((mStaticCoins[i]->GetX()-15.0f)-mMario->GetX()+10)<=60.0f)&&((mStaticCoins[i]->GetY()-15.0f)-mMario->GetY()<=30.0f) && mStaticCoins[i] ->sc == true)
		{
			mMario->SetCoinCount(mMario->GetCoinCount()+1);
			mStaticCoins[i]->SetEat();
		}

	for (int i=0;i<MAX_TUNNEL;i++)
		if((((mMario->GetX()+10)-(mTunnel[i]->GetX()-15.0f))<=20.0f)&&((mMario->GetY()-(mTunnel[i]->GetY()-15.0f)))<=70.0f&&(((mTunnel[i]->GetX()-15.0f)-mMario->GetX()+10)<=60.0f)&&((mTunnel[i]->GetY()-15.0f)-mMario->GetY()<=5.0f))
		{
			if (mEngine->GetAnalogY() > 192)
			{
				mEngine->PlaySample(mSfx[SFX_SHRINK]);

				
			mTileMap->Load("Res/map_1.dat", "Res/mario_1.ent");
		
			mBlock = new JumpingBlock(this);
	
			mCoin = new JumpingCoin(this);

			for (i=0;i<MAX_TURTLE;i++)
				mTurtle[i] = new Turtle(this);

			for (i=0;i<MAX_MUSH;i++)
				mBadMush[i] = new BadMush(this);

			mMushroom = new Mushroom(this);

			for (i=0;i<MAX_BADFISH;i++)
			{
				mBadFish[i] = new BadFish(this);
				mBadFish[i]->SetPosition(1000*i%768/2,600*i%338 + 100);
				mBadFish[i]->mXVelocity = -0.02f * i - 0.1f;
			}

			for (i=0;i<MAX_STATIC_COIN;i++)
				mStaticCoins[i] = new StaticCoin(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_1[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_2[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_3[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_4[i] = new Tunnel(this);

			for (i=0;i<MAX_GANGPLANK;i++)
				mGangplank[i] = new Gangplank(this);

			for (i=0;i<MAX_GANGPLANK;i++)
				mGangplank_1[i] = new Gangplank(this);

			for (i=0;i<MAX_GANGPLANK;i++)
				mGangplank_2[i] = new Gangplank(this);
	
			for (i=0;i<MAX_BAD_FLOWER;i++)
				mBadFlowers[i] = new BadFlower(this);

			VIRTUAL_WIDTH = 640.0f;
			mTileMap->GetPositionMap(0.0f,0.0f);
			mMario->SetPosition(80.0f,447.0f);
			DEFAULT_GRAVITY = 0.0001f;
			BIGM_INITIAL_JUMP_VEL=-0.265f;
			DEFAULT_WALK_SPEED=0.3f;
			
			mmm=true;
			time = 0.0f;

			}
		}
		if(mmm)
		{	
			time += dt;
			for(int i=0;i<MAX_BADFISH;i++)
			{
				if(time >= 19900)
				{
					if( ((int)(time)%4==0 || (int)(time)%4==3 ))
						mBadFish[i]->mCurrAnimation->SetAlpha(255.0f);
					else
						mBadFish[i]->mCurrAnimation->SetAlpha(64.0f);
				}
				mBadFish[i]->Update(dt);
			}
			
		}
		;
	for (int i=0;i<MAX_TUNNEL;i++)
		if((((mMario->GetX()+10)-(mTunnel_2[i]->GetX()-15.0f))<=70.0f)&&((mMario->GetY()-(mTunnel_2[i]->GetY()-15.0f)))<=60.0f&&(((mTunnel_2[i]->GetX()-15.0f)-mMario->GetX()+10)<=70.0f)&&((mTunnel_2[i]->GetY()-15.0f)-mMario->GetY()<-15.0f) && time >= 20000)
		{
			
				
			if (mEngine->GetAnalogX() > 192)
			{
				mEngine->PlaySample(mSfx[SFX_SHRINK]);

				
			VIRTUAL_WIDTH	= 5120.0f;
			VIRTUAL_HEIGHT = 480.0f;
			mTileMap->GetPositionMap(1374.0f,0.0f);
			mMario->SetPosition(1568.0f,287.0f);
			BIGM_INITIAL_JUMP_VEL	=-0.57f;
			DEFAULT_GRAVITY = 0.001f;
			DEFAULT_WALK_SPEED =	0.15f;

			

			mTileMap->Load("Res/map.dat", "Res/mario.ent");
		
			mBlock = new JumpingBlock(this);
	
			mCoin = new JumpingCoin(this);

			for (i=0;i<MAX_TURTLE;i++)
				mTurtle[i] = new Turtle(this);

			for (i=0;i<MAX_MUSH;i++)
				mBadMush[i] = new BadMush(this);

			mMushroom = new Mushroom(this);


			for (i=0;i<MAX_STATIC_COIN;i++)
				mStaticCoins[i] = new StaticCoin(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_1[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_2[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_3[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_4[i] = new Tunnel(this);

			for (i=0;i<MAX_GANGPLANK;i++)
				mGangplank[i] = new Gangplank(this);

			for (i=0;i<MAX_GANGPLANK;i++)
				mGangplank_1[i] = new Gangplank(this);

			for (i=0;i<MAX_GANGPLANK;i++)
				mGangplank_2[i] = new Gangplank(this);
	
			for (i=0;i<MAX_BAD_FLOWER;i++)
				mBadFlowers[i] = new BadFlower(this);

			mmm = false;

			}
			
		}

	for (int i=0;i<MAX_TUNNEL;i++)
		if((((mMario->GetX()+10)-(mTunnel_3[i]->GetX()-15.0f))<=70.0f)&&((mMario->GetY()-(mTunnel_3[i]->GetY()-15.0f)))<=60.0f&&(((mTunnel_3[i]->GetX()-15.0f)-mMario->GetX()+10)<=70.0f)&&((mTunnel_3[i]->GetY()-15.0f)-mMario->GetY()<=-15.0f))
		{
			if (mEngine->GetAnalogX() > 192)
			{
				mEngine->PlaySample(mSfx[SFX_SHRINK]);
				
			mTileMap->Load("Res/map.dat", "Res/mario.ent");
		
			mBlock = new JumpingBlock(this);
	
			mCoin = new JumpingCoin(this);

			for (i=0;i<MAX_TURTLE;i++)
				mTurtle[i] = new Turtle(this);

			for (i=0;i<MAX_MUSH;i++)
				mBadMush[i] = new BadMush(this);

			mMushroom = new Mushroom(this);


			for (i=0;i<MAX_STATIC_COIN;i++)
				mStaticCoins[i] = new StaticCoin(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_1[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_2[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_3[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_4[i] = new Tunnel(this);

			for (i=0;i<MAX_GANGPLANK;i++)
				mGangplank[i] = new Gangplank(this);

			for (i=0;i<MAX_GANGPLANK;i++)
				mGangplank_1[i] = new Gangplank(this);

			for (i=0;i<MAX_GANGPLANK;i++)
				mGangplank_2[i] = new Gangplank(this);
	
			for (i=0;i<MAX_BAD_FLOWER;i++)
				mBadFlowers[i] = new BadFlower(this);

			VIRTUAL_WIDTH	= 5120.0f;
			VIRTUAL_HEIGHT = 480.0f;
			mTileMap->GetPositionMap(2222.0f,0.0f);
			mMario->SetPosition(2432.0f,255.0f);

			bmap_3 = false;

			}
		}

	for (int i=0;i<MAX_TUNNEL;i++)
		if((((mMario->GetX()+10)-(mTunnel_1[i]->GetX()-15.0f))<=20.0f)&&((mMario->GetY()-(mTunnel_1[i]->GetY()-15.0f)))<=70.0f&&(((mTunnel_1[i]->GetX()-15.0f)-mMario->GetX()+10)<=60.0f)&&((mTunnel_1[i]->GetY()-15.0f)-mMario->GetY()<=5.0f))
		{
			if (mEngine->GetAnalogY() > 192)
			{

				mEngine->PlaySample(mSfx[SFX_SHRINK]);

			mTileMap->Load("Res/map_3.dat", "Res/mario_3.ent");
		
			mBlock = new JumpingBlock(this);
	
			mCoin = new JumpingCoin(this);

			for (i=0;i<MAX_TURTLE;i++)
				mTurtle[i] = new Turtle(this);

			for (i=0;i<MAX_MUSH;i++)
				mBadMush[i] = new BadMush(this);

			mMushroom = new Mushroom(this);


			for (i=0;i<MAX_STATIC_COIN;i++)
				mStaticCoins[i] = new StaticCoin(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_1[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_2[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_3[i] = new Tunnel(this);

			for (i=0;i<MAX_TUNNEL;i++)
				mTunnel_4[i] = new Tunnel(this);

			for (i=0;i<MAX_GANGPLANK;i++)
				mGangplank[i] = new Gangplank(this);

			for (i=0;i<MAX_GANGPLANK;i++)
				mGangplank_1[i] = new Gangplank(this);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -