📄 gamestateplay.hpp
字号:
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;
VIRTUAL_HEIGHT = 4800.0f;
mTileMap->GetPositionMap(0.0f,0.0f);
mMario->SetPosition(80.0f, 255.0f);
bmap_3 = true;
}
}
for (int i=0;i<MAX_TUNNEL;i++)
if((((mMario->GetX()+10)-(mTunnel_4[i]->GetX()-15.0f))<=20.0f)&&((mMario->GetY()-(mTunnel_4[i]->GetY()-15.0f)))<=70.0f&&(((mTunnel_4[i]->GetX()-15.0f)-mMario->GetX()+10)<=60.0f)&&((mTunnel_4[i]->GetY()-15.0f)-mMario->GetY()<=5.0f))
{
if (mEngine->GetAnalogY() > 192)
{
mEngine->PlaySample(mSfx[SFX_SHRINK]);
mEngine->Run("../bin2/mario.exe");
/*coin = mMario->GetCoinCount();
life = mMario->GetCurLife();
mTileMap->Load("Res/map_2.dat", "Res/mario_2.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 = 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;*/
}
}
if ((life == life +10 && mMario->GetCoinCount() == coin + 20)|| life == life +20 || mMario->GetCoinCount() == coin + 40)
mEngine->PlaySample(mSfx[SFX_SHRINK]);
for (int i=0;i<MAX_BADFISH;i++)
if((((mMario->GetX()+10)-mBadFish[i]->GetX())<=32.0f)&&((mBadFish[i]->GetX()-mMario->GetX()+10)<=32.0f)&&(mBadFish[i]->GetY()-mMario->GetY()<=64.0f)&&(mBadFish[i]->GetY()-mMario->GetY()>=-64.0f) && mmm == true && mMario->mFlashTime == 0)
{
mMario->Blood();
mMario->mFlashTime = 500;
if (mMario->GetCurLife() <= 0)
{
mEngine->FreeMusic(mMusic);
mApp->SetNextState(GAME_STATE_OVER);
DEFAULT_GRAVITY = 0.001f;
BIGM_INITIAL_JUMP_VEL=-0.57f;
DEFAULT_WALK_SPEED=0.15f;
VIRTUAL_WIDTH = 5120.0f;
VIRTUAL_HEIGHT = 480.0f;
}
}
for (int i=0;i<MAX_TURTLE;i++)
if((((mMario->GetX()+10)-mTurtle[i]->GetX())<=20.0f)&&((mTurtle[i]->GetX()-mMario->GetX()+10)<=60.0f)&&(mTurtle[i]->GetY()-mMario->GetY()< 50.0f)&&(mTurtle[i]->GetY()-mMario->GetY()>40.0f))
{
if (mEngine->GetAnalogY() < 64){}
else
{
mMario->mYVelocity = -0.8f * mMario->mYVelocity;
mTurtle[i]->Dead();
mTurtle[i] ->tur = false;
}
}
for (int i=0;i<MAX_TURTLE;i++)
if((((mMario->GetX()+10)-mTurtle[i]->GetX())<=20.0f)&&((mMario->GetY()-mTurtle[i]->GetY())<=0.0f) &&((mTurtle[i]->GetX()-mMario->GetX()+10)<=60.0f)&&(mTurtle[i]->GetY()-mMario->GetY()<=40.0f )&& mTurtle[i] ->tur == true && mMario->mFlashTime == 0)
{
mMario->Blood();
mMario->mFlashTime = 500;
if (mMario->GetCurLife() <= 0)
{
mEngine->FreeMusic(mMusic);
mApp->SetNextState(GAME_STATE_OVER);
}
}
for (int i=0;i<MAX_MUSH;i++)
if((((mMario->GetX()+10)-mBadMush[i]->GetX())<=20.0f)&&((mBadMush[i]->GetX()-mMario->GetX()+10)<=60.0f)&&(mBadMush[i]->GetY()-mMario->GetY()<=40.0f)&&(mBadMush[i]->GetY()-mMario->GetY()>30.0f))
{
if (mEngine->GetAnalogY() < 64){}
else
{
mMario->mYVelocity = -0.8f * mMario->mYVelocity;
mBadMush[i]->Dead();
mBadMush[i]->mush = false;
}
}
for (int i=0;i<MAX_MUSH;i++)
if((((mMario->GetX()+10)-mBadMush[i]->GetX())<=20.0f)&&((mMario->GetY()-mBadMush[i]->GetY())<=0.0f) &&((mBadMush[i]->GetX()-mMario->GetX()+10)<=60.0f)&&(mBadMush[i]->GetY()-mMario->GetY()<=30.0f )&& mBadMush[i] ->mush == true && mMario->mFlashTime == 0)
{
mMario->Blood();
mMario->mFlashTime = 500;
if (mMario->GetCurLife() <= 0)
{
mEngine->FreeMusic(mMusic);
mApp->SetNextState(GAME_STATE_OVER);
}
}
for (int i=0;i<MAX_BAD_FLOWER;i++)
if((((mMario->GetX()+10)-mBadFlowers[i]->GetX())<=20.0f)&&((mMario->GetY()-mBadFlowers[i]->GetY())<=0.0f) &&((mBadFlowers[i]->GetX()-mMario->GetX()+10)<=75.0f)&&(mBadFlowers[i]->GetY()-mMario->GetY()<=70.0f ) && mMario->mFlashTime == 0)
{
mMario->Blood();
mMario->mFlashTime = 500;
if (mMario->GetCurLife() <= 0)
{
mEngine->FreeMusic(mMusic);
mApp->SetNextState(GAME_STATE_OVER);
}
}
for(int i=0; i<MAX_GANGPLANK; i++)
{
if((((mMario->GetX()+10)-mGangplank_1[i]->GetX())<=10.0f)&&((mGangplank_1[i]->GetX()-mMario->GetX()+10)<=80.0f)&&(mGangplank_1[i]->GetY()-mMario->GetY()<=20.0f)&&(mGangplank_1[i]->GetY()-mMario->GetY()>=-20.0f))
{
mMario->RightGlide();
}
}
for(int i=0; i<MAX_GANGPLANK; i++)
{
if((((mMario->GetX()+10)-mGangplank_2[i]->GetX())<=10.0f)&&((mGangplank_2[i]->GetX()-mMario->GetX()+10)<=80.0f)&&(mGangplank_2[i]->GetY()-mMario->GetY()<=20.0f)&&(mGangplank_2[i]->GetY()-mMario->GetY()>=-20.0f))
{
mMario->LeftGlide();
}
}
if (mBlock && mBlock->IsActive())
mBlock->Update(dt);
if (mCoin && mCoin->IsActive())
mCoin->Update(dt);
if (mMushroom && mMushroom->IsActive())
mMushroom->Update(dt);
int i;
for (i=0;i<MAX_TURTLE;i++)
if (mTurtle[i] && mTurtle[i]->IsActive())
mTurtle[i]->Update(dt);
for (i=0;i<MAX_MUSH;i++)
if (mBadMush[i] && mBadMush[i]->IsActive())
mBadMush[i]->Update(dt);
mMenu->UpdateMenu();
int frame = -1;
JSprite* sprite;
for (i=0;i<MAX_STATIC_COIN;i++)
{
if (mStaticCoins[i] && mStaticCoins[i]->IsActive())
{
mStaticCoins[i]->Update(dt);
sprite = mStaticCoins[i]->GetSprite();
if (frame == -1)
frame = sprite->GetAnimationFrame(); // sync all the animation of all coins
else
sprite->SetAnimationFrame(frame);
}
}
for (i=0;i<MAX_BAD_FLOWER;i++)
if (mBadFlowers[i] && mBadFlowers[i]->IsActive())
mBadFlowers[i]->Update(dt);
//mEngine->printf("FPS:%6.2f", mEngine->GetFPS());
}
void GameStatePlay::Render()
{
PIXEL_TYPE colors[] =
{
ARGB(255,0,0,0),
ARGB(255,0,0,0),
//ARGB(255,0,0,255),
//ARGB(255,0,0,255),
ARGB(255,0,0,0),
ARGB(255,0,0,0)
};
float mapX, mapY;
mTileMap->GetPosition(&mapX, &mapY);
mEngine->FillRect(0, 0.0f-mapY, SCREEN_WIDTH_F, VIRTUAL_HEIGHT, colors); // clear background to black
//mEngine->EnableTextureFilter(false);
//mEngine->EnableTextureFilter(false);
float x = (mapX+200.0f)*0.02f;
int n = (int) x;
n = (n / 512);
x -= (n*512);
float y = 0.0f-mapY;
//scrollerCloud->Render(x, y);
x = mapX;
y = mapY;
for (int i = 0; i < VIRTUAL_WIDTH / 768.0f; i++)
{
for (int j = 0; j < VIRTUAL_HEIGHT / 480.0f; j++)
{
mEngine->RenderQuad(mRainbow,(float)i*768.0f -x, (float)j*480.0f -y);
}
}
mMario->Render();
if(mmm)
{
for (int i=0;i<MAX_BADFISH;i++)
mBadFish[i]->Render();
}
if (mMushroom)
mMushroom->Render();
if (mBlock && mBlock->IsActive())
mBlock->Render();
if (mCoin && mCoin->IsActive())
mCoin->Render();
int i;
for (i=0;i<MAX_TURTLE;i++)
if (mTurtle[i] && mTurtle[i]->IsActive())
mTurtle[i]->Render();
for (i=0;i<MAX_MUSH;i++)
if (mBadMush[i] && mBadMush[i]->IsActive())
mBadMush[i]->Render();
for (i=0;i<MAX_STATIC_COIN;i++)
if (mStaticCoins[i] && mStaticCoins[i]->IsActive())
mStaticCoins[i]->Render();
for (i=0;i<MAX_TUNNEL;i++)
if (mTunnel[i] && mTunnel[i]->IsActive())
mTunnel[i]->Render();
for (i=0;i<MAX_TUNNEL;i++)
if (mTunnel_1[i] && mTunnel_1[i]->IsActive())
mTunnel_1[i]->Render();
for (i=0;i<MAX_TUNNEL;i++)
if (mTunnel_2[i] && mTunnel_2[i]->IsActive())
mTunnel_2[i]->Render();
for (i=0;i<MAX_TUNNEL;i++)
if (mTunnel_3[i] && mTunnel_3[i]->IsActive())
mTunnel_3[i]->Render();
for (i=0;i<MAX_TUNNEL;i++)
if (mTunnel_4[i] && mTunnel_4[i]->IsActive())
mTunnel_4[i]->Render();
for (i=0;i<MAX_GANGPLANK;i++)
if (mGangplank[i] && mGangplank[i]->IsActive())
mGangplank[i]->Render();
for (i=0;i<MAX_GANGPLANK;i++)
if (mGangplank_1[i] && mGangplank_1[i]->IsActive())
mGangplank_1[i]->Render();
for (i=0;i<MAX_GANGPLANK;i++)
if (mGangplank_2[i] && mGangplank_2[i]->IsActive())
mGangplank_2[i]->Render();
for (i=0;i<MAX_BAD_FLOWER;i++)
if (mBadFlowers[i] && mBadFlowers[i]->IsActive())
mBadFlowers[i]->Render();
mTileMap->Render(0,0);
if(bmap_3)
for (int i = 0; i < 18; i++)
mEngine->RenderQuad(mStab,(float)i*32.0f + 32.0f, 0);
if(mMario->GetCoinCount()>=20 && mMario->GetCurLife() < maxLifeCount)
{
mMario->SetCoinCount(mMario->GetCoinCount()-20);
mMario->SetCurLife(mMario->GetCurLife()+10);
}
this->mMenu->RenderCoin(mMario->GetCoinCount());
this->mMenu->RenderBlood(maxLifeCount,mMario->GetCurLife());
this->mMenu->RenderMenu();
}
void GameStatePlay::SpawnStaticCoin(int col, int row)
{
mStaticCoins[mStaticCoinsCount++]->Spawn(col, row);
if (mStaticCoinsCount >= MAX_STATIC_COIN)
mStaticCoinsCount = 0;
}
void GameStatePlay::SpawnTunnel(int col, int row)
{
mTunnel[mTunnelCount++]->Spawn(col, row);
if (mTunnelCount >= MAX_TUNNEL)
mTunnelCount = 0;
}
void GameStatePlay::SpawnTunnel_1(int col, int row)
{
mTunnel_1[mTunnel_1Count++]->Spawn(col, row);
if (mTunnel_1Count >= MAX_TUNNEL)
mTunnel_1Count = 0;
}
void GameStatePlay::SpawnTunnel_2(int col, int row)
{
mTunnel_2[mTunnel_2Count++]->Spawn(col, row);
if (mTunnel_2Count >= MAX_TUNNEL)
mTunnel_2Count = 0;
}
void GameStatePlay::SpawnTunnel_3(int col, int row)
{
mTunnel_3[mTunnel_3Count++]->Spawn(col, row);
if (mTunnel_3Count >= MAX_TUNNEL)
mTunnel_3Count = 0;
}
void GameStatePlay::SpawnTunnel_4(int col, int row)
{
mTunnel_4[mTunnel_4Count++]->Spawn(col, row);
if (mTunnel_4Count >= MAX_TUNNEL)
mTunnel_4Count = 0;
}
void GameStatePlay::SpawnGangplank(int col, int row)
{
mGangplank[mGangplankCount++]->Spawn(col, row);
if (mGangplankCount >= MAX_GANGPLANK)
mGangplankCount = 0;
}
void GameStatePlay::SpawnGangplank_1(int col, int row)
{
mGangplank_1[mGangplankCount_1++]->Spawn(col, row);
if (mGangplankCount_1 >= MAX_GANGPLANK)
mGangplankCount_1 = 0;
}
void GameStatePlay::SpawnGangplank_2(int col, int row)
{
mGangplank_2[mGangplankCount_2++]->Spawn(col, row);
if (mGangplankCount_2 >= MAX_GANGPLANK)
mGangplankCount_2 = 0;
}
void GameStatePlay::SpawnBadFlower(int col, int row)
{
mBadFlowers[mBadFlowersCount++]->Spawn(col, row);
if (mBadFlowersCount >= MAX_BAD_FLOWER)
mBadFlowersCount = 0;
}
void GameStatePlay::SpawnTurtle(int col, int row)
{
//if (mTurtle)
{
mTurtle[mTurtleCount++]->Spawn(col, row);
}
}
void GameStatePlay::SpawnBadMush(int col, int row)
{
//if (mTurtle)
{
mBadMush[mBadMushCount++]->Spawn(col, row);
}
}
void GameStatePlay::SpawnMushroom(int col, int row)
{
mMushroom->Spawn(col, row);
haveMushroom = true;
}
bool GameStatePlay::GetHaveMushroom()
{
return haveMushroom;
}
void GameStatePlay::PlaySfx(int idx)
{
if (mSfx[idx])
mEngine->PlaySample(mSfx[idx]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -