|
|
|
@ -16,7 +16,7 @@ bool Meteos::OnUserCreate() |
|
|
|
|
randBlockPos=std::uniform_int_distribution<>(0, 9); |
|
|
|
|
coinFlip=std::uniform_int_distribution<>(0, 1); |
|
|
|
|
|
|
|
|
|
gameBoard=Board({10,14},12.f,-20.f,3.0f,{3,0,0,0,0,0,0,0,0,0},SPRITES["blocks_test.png"]); |
|
|
|
|
gameBoard=Board({10,14},20.f,100.f,-20.f,1.0f,{3,3,2,3,2,0,0,0,0,0},SPRITES["blocks_test.png"]); |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
@ -25,8 +25,8 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
{ |
|
|
|
|
fElapsedTime=std::min(fElapsedTime,1/60.f); |
|
|
|
|
lastBlockSpawn+=fElapsedTime; |
|
|
|
|
if (lastBlockSpawn>=3.0f){ |
|
|
|
|
lastBlockSpawn-=3.0f; |
|
|
|
|
if (lastBlockSpawn>=gameBoard.spawnRate){ |
|
|
|
|
lastBlockSpawn-=gameBoard.spawnRate; |
|
|
|
|
gameBoard.spawnBlock(randBlockPos(gen)); |
|
|
|
|
} |
|
|
|
|
Clear(Pixel(32,32,255)); |
|
|
|
@ -42,6 +42,9 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
for (int i=0;i<gameBoard.getBlockClumps().size();i++){ |
|
|
|
|
BlockClump&c=gameBoard.getBlockClumps()[i]; |
|
|
|
|
c.vspeed+=gameBoard.gravity*fElapsedTime; |
|
|
|
|
if (c.vspeed>gameBoard.maxGravity){ |
|
|
|
|
c.vspeed=gameBoard.maxGravity; |
|
|
|
|
} |
|
|
|
|
for (int j=0;j<gameBoard.getBlockClumps().size();j++) { |
|
|
|
|
if (i==j) continue; |
|
|
|
|
BlockClump&c2=gameBoard.getBlockClumps()[j]; |
|
|
|
@ -82,14 +85,14 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
for (int k=0;k<gameBoard.getBlocks(col).size();k++){ |
|
|
|
|
Block&b2=gameBoard.getBlocks(col)[k]; |
|
|
|
|
if (c.getBlockPosition(b).y+12>=b2.pos.y&&c.getBlockPosition(b).y<=b2.pos.y+12){ |
|
|
|
|
c.y=b2.pos.y-12; |
|
|
|
|
c.y-=c.getBlockPosition(b).y+12-b2.pos.y; |
|
|
|
|
c.vspeed=0; |
|
|
|
|
gameBoard.convertClump(i--); |
|
|
|
|
goto nextClump; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (c.getBlockPosition(b).y>=gameBoard.yBottom) { |
|
|
|
|
c.y=gameBoard.yBottom; |
|
|
|
|
c.y-=c.getBlockPosition(b).y-gameBoard.yBottom; |
|
|
|
|
c.vspeed=0; |
|
|
|
|
gameBoard.convertClump(i--); |
|
|
|
|
goto nextClump; |
|
|
|
@ -171,11 +174,13 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
for (Block*b2:matchedBlocksX) { |
|
|
|
|
b2->col=BlockColor::LAUNCHED; |
|
|
|
|
} |
|
|
|
|
c.vspeed=gameBoard.launchSpd; |
|
|
|
|
} |
|
|
|
|
if (matchedBlocksY.size()>2) { |
|
|
|
|
for (Block*b2:matchedBlocksY) { |
|
|
|
|
b2->col=BlockColor::LAUNCHED; |
|
|
|
|
} |
|
|
|
|
c.vspeed=gameBoard.launchSpd; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|