|
|
|
@ -17,6 +17,7 @@ bool Meteos::OnUserCreate() |
|
|
|
|
coinFlip=std::uniform_int_distribution<>(0, 1); |
|
|
|
|
|
|
|
|
|
gameBoard=Board({10,14},20.f,100.f,-60.f,1.0f,{3,0,0,0,0,0,0,0,0,0},SPRITES["blocks_test.png"]); |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -128,9 +129,9 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
if (i==j)continue; |
|
|
|
|
if (b.col==b2.col&&b2.col!=BlockColor::LAUNCHED&&b2.pos.x==checkX&&b2.pos.y==checkY) { |
|
|
|
|
found=true; |
|
|
|
|
std::cout<<"Found match @ ("<<checkX<<","<<checkY<<") Block ("<<b2.pos<<")"<<b2.addedToLaunchList<<std::endl; |
|
|
|
|
checkX+=12; |
|
|
|
|
tempMatchIDsX.push_back(j); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}while(found); |
|
|
|
@ -144,9 +145,9 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
if (i==j)continue; |
|
|
|
|
if (b.col==b2.col&&b2.col!=BlockColor::LAUNCHED&&b2.pos.x==checkX&&b2.pos.y==checkY) { |
|
|
|
|
found=true; |
|
|
|
|
std::cout<<"Found match @ ("<<checkX<<","<<checkY<<") Block ("<<b2.pos<<")"<<b2.addedToLaunchList<<std::endl; |
|
|
|
|
checkX-=12; |
|
|
|
|
tempMatchIDsX.push_back(j); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}while(found); |
|
|
|
@ -160,9 +161,9 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
if (i==j)continue; |
|
|
|
|
if (b.col==b2.col&&b2.col!=BlockColor::LAUNCHED&&b2.pos.x==checkX&&b2.pos.y==checkY) { |
|
|
|
|
found=true; |
|
|
|
|
std::cout<<"Found match @ ("<<checkX<<","<<checkY<<") Block ("<<b2.pos<<")"<<b2.addedToLaunchList<<std::endl; |
|
|
|
|
checkY-=12; |
|
|
|
|
tempMatchIDsY.push_back(j); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}while(found); |
|
|
|
@ -176,9 +177,9 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
if (i==j)continue; |
|
|
|
|
if (b.col==b2.col&&b2.col!=BlockColor::LAUNCHED&&b2.pos.x==checkX&&b2.pos.y==checkY) { |
|
|
|
|
found=true; |
|
|
|
|
std::cout<<"Found match @ ("<<checkX<<","<<checkY<<") Block ("<<b2.pos<<")"<<b2.addedToLaunchList<<std::endl; |
|
|
|
|
checkY+=12; |
|
|
|
|
tempMatchIDsY.push_back(j); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}while(found); |
|
|
|
@ -205,7 +206,6 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
} |
|
|
|
|
for (int i:matchedBlockIDs) { |
|
|
|
|
Block&b=c.getBlocks()[i]; |
|
|
|
|
std::cout<<"Launch Block ("<<b.pos<<")"<<b.addedToLaunchList<<std::endl; |
|
|
|
|
b.col=BlockColor::LAUNCHED; |
|
|
|
|
c.vspeed=gameBoard.launchSpd; |
|
|
|
|
} |
|
|
|
@ -234,9 +234,9 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
Block&b2=gameBoard.getBlocks(i+checkX)[k]; |
|
|
|
|
if (b.col==b2.col&&b2.col!=BlockColor::LAUNCHED&&b2.pos.x==b.pos.x+checkX*12&&b2.pos.y==checkY) { |
|
|
|
|
found=true; |
|
|
|
|
std::cout<<"Found match @ ("<<checkX*12<<","<<checkY<<") Block ("<<b2.pos<<")"<<b2.addedToLaunchList<<std::endl; |
|
|
|
|
tempMatchIDsX.push_back({i+checkX,k}); |
|
|
|
|
checkX++; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -251,9 +251,9 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
Block&b2=gameBoard.getBlocks(i+checkX)[k]; |
|
|
|
|
if (b.col==b2.col&&b2.col!=BlockColor::LAUNCHED&&b2.pos.x==b.pos.x+checkX*12&&b2.pos.y==checkY) { |
|
|
|
|
found=true; |
|
|
|
|
std::cout<<"Found match @ ("<<checkX*12<<","<<checkY<<") Block ("<<b2.pos<<")"<<b2.addedToLaunchList<<std::endl; |
|
|
|
|
tempMatchIDsX.push_back({i+checkX,k}); |
|
|
|
|
checkX--; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -268,9 +268,9 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
if (j==k)continue; |
|
|
|
|
if (b.col==b2.col&&b2.col!=BlockColor::LAUNCHED&&b2.pos.x==checkX&&b2.pos.y==checkY) { |
|
|
|
|
found=true; |
|
|
|
|
std::cout<<"Found match @ ("<<checkX<<","<<checkY<<") Block ("<<b2.pos<<")"<<b2.addedToLaunchList<<std::endl; |
|
|
|
|
checkY-=12; |
|
|
|
|
tempMatchIDsY.push_back({i,k}); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}while(found); |
|
|
|
@ -284,9 +284,9 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
if (j==k)continue; |
|
|
|
|
if (b.col==b2.col&&b2.col!=BlockColor::LAUNCHED&&b2.pos.x==checkX&&b2.pos.y==checkY) { |
|
|
|
|
found=true; |
|
|
|
|
std::cout<<"Found match @ ("<<checkX<<","<<checkY<<") Block ("<<b2.pos<<")"<<b2.addedToLaunchList<<std::endl; |
|
|
|
|
checkY+=12; |
|
|
|
|
tempMatchIDsY.push_back({i,k}); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}while(found); |
|
|
|
@ -314,13 +314,14 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
if (matchedBlockIDs.size()>0) { |
|
|
|
|
BlockClump c; |
|
|
|
|
bool firstBlock=true; |
|
|
|
|
int baseBlockPos; |
|
|
|
|
for (std::pair<int,int>&info:matchedBlockIDs) { |
|
|
|
|
Block&b=gameBoard.getBlocks(info.first)[info.second]; |
|
|
|
|
if (firstBlock) { |
|
|
|
|
c.y=b.pos.y-1; |
|
|
|
|
baseBlockPos=b.pos.y; |
|
|
|
|
c.y=baseBlockPos-1; |
|
|
|
|
firstBlock=false; |
|
|
|
|
} |
|
|
|
|
std::cout<<"Launch Block ("<<b.pos<<")"<<b.addedToLaunchList<<std::endl; |
|
|
|
|
b.col=BlockColor::LAUNCHED; |
|
|
|
|
c.vspeed=gameBoard.launchSpd; |
|
|
|
|
} |
|
|
|
@ -328,7 +329,11 @@ bool Meteos::OnUserUpdate(float fElapsedTime) |
|
|
|
|
Block&b=gameBoard.getBlocks(info.first)[info.second]; |
|
|
|
|
for (Block&b2:gameBoard.getBlocks(b.pos.x/12)) { |
|
|
|
|
if (!b2.markedForRemoval&&b2.pos.y<=b.pos.y) { |
|
|
|
|
c.addBlockOnTopOf(b.pos.x/12,b2.col); |
|
|
|
|
if (b.pos.x==b2.pos.x&&b.pos.y==b2.pos.y){ |
|
|
|
|
c.addBlockOnTopOf(b.pos.x/12,b2.col,b2.pos.y-baseBlockPos); |
|
|
|
|
} else { |
|
|
|
|
c.addBlockOnTopOf(b.pos.x/12,b2.col,0); |
|
|
|
|
} |
|
|
|
|
b2.markedForRemoval=true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|