|
|
|
@ -98,6 +98,19 @@ void Meteos::handleInput(){ |
|
|
|
|
} |
|
|
|
|
found:; |
|
|
|
|
} |
|
|
|
|
if (gameBoard.selectedBlock.c==-1&&gameBoard.selectedBlock.col!=-1&&gameBoard.boardSize.y-mouseRow>gameBoard.getBlocks(gameBoard.selectedBlock.col).size()){ |
|
|
|
|
//Fling the block upwards.
|
|
|
|
|
BlockClump newClump; |
|
|
|
|
Block&targetBlock=gameBoard.getBlocks(gameBoard.selectedBlock.col)[gameBoard.selectedBlock.ind]; |
|
|
|
|
newClump.y=targetBlock.pos.y-1; |
|
|
|
|
newClump.launchTime=999999; |
|
|
|
|
newClump.vspeed=gameBoard.launchSpd[0]; |
|
|
|
|
newClump.flinged=true; |
|
|
|
|
newClump.addBlock(gameBoard.selectedBlock.col,targetBlock.col); |
|
|
|
|
gameBoard.addClump(newClump); |
|
|
|
|
gameBoard.removeBlock(gameBoard.selectedBlock.col,gameBoard.selectedBlock.ind); |
|
|
|
|
gameBoard.selectedBlock={-1,-1,-1}; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (GetMouse(0).bReleased){ |
|
|
|
|
gameBoard.selectedBlock={-1,-1,-1}; |
|
|
|
@ -126,6 +139,10 @@ void Meteos::updateGame(float fElapsedTime){ |
|
|
|
|
c.vspeed=gameBoard.maxGravity; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (c.flinged&&c.y<12*3){ |
|
|
|
|
c.flinged=false; |
|
|
|
|
c.launchTime=0; |
|
|
|
|
} |
|
|
|
|
for (int j=gameBoard.getBlockClumps().size()-1;j>=0;j--) { |
|
|
|
|
if (i==j) continue; |
|
|
|
|
BlockClump&c2=gameBoard.getBlockClumps()[j]; |
|
|
|
@ -192,8 +209,15 @@ void Meteos::updateGame(float fElapsedTime){ |
|
|
|
|
} |
|
|
|
|
if (overlappingBlocks){ |
|
|
|
|
std::cout<<"Block b3 "<<b3.pos<<"!"<<std::endl; |
|
|
|
|
}
|
|
|
|
|
if (!c.flinged&&!c2.flinged){ |
|
|
|
|
c.vspeed=std::min(c.vspeed,c2.vspeed); |
|
|
|
|
} |
|
|
|
|
if (c.flinged||c2.flinged){ |
|
|
|
|
c.launchTime=0; |
|
|
|
|
} |
|
|
|
|
c.vspeed=std::min(c.vspeed,c2.vspeed); |
|
|
|
|
c.flinged=false; |
|
|
|
|
c2.flinged=false; |
|
|
|
|
c.combo=std::max(c.combo,c2.combo); |
|
|
|
|
c.landTime=std::max(c.landTime,c2.landTime); |
|
|
|
|
c.sortBlocks(); |
|
|
|
|