diff --git a/Board.cpp b/Board.cpp index c8aabc5..aaa94c9 100644 --- a/Board.cpp +++ b/Board.cpp @@ -21,15 +21,15 @@ maxWarningLevel(maxWarningLevel){ BlockClump newClump; BlockClump newClump2; newClump.addBlock(2,0,BlockColor::WHITE); - newClump.addBlock(1,0,BlockColor::WHITE); - newClump.addBlock(0,0,BlockColor::WHITE); + newClump.addBlock(1,0,BlockColor::BLUE); + newClump.addBlock(0,0,BlockColor::GREEN); newClump.addBlock(2,-1,BlockColor::RED); - newClump.addBlock(3,-1,BlockColor::RED); - newClump2.addBlock(4,0,BlockColor::WHITE); - newClump2.addBlock(5,0,BlockColor::WHITE); - newClump2.addBlock(6,0,BlockColor::WHITE); + newClump.addBlock(3,-1,BlockColor::LIGHT); + newClump2.addBlock(4,0,BlockColor::DARK); + newClump2.addBlock(5,0,BlockColor::SOUL); + newClump2.addBlock(6,0,BlockColor::TIME); newClump2.addBlock(7,0,BlockColor::BLUE); - newClump2.addBlock(4,-1,BlockColor::RED); + newClump2.addBlock(4,-1,BlockColor::GREEN); newClump2.addBlock(5,-1,BlockColor::RED); newClump.y=100; newClump2.y=100; diff --git a/C++ProjectTemplate b/C++ProjectTemplate index d8583fa..2f40430 100755 Binary files a/C++ProjectTemplate and b/C++ProjectTemplate differ diff --git a/main.cpp b/main.cpp index 7b95f5f..4d46efc 100644 --- a/main.cpp +++ b/main.cpp @@ -57,13 +57,13 @@ void Meteos::handleInput(){ Block&b=gameBoard.getBlocks(mouseCol)[y]; if (b.pos.y/12==mouseRow){ SelectedBlockData newData={mouseCol,y,-1}; - if (gameBoard.selectedBlock.col!=-1&&mouseCol==gameBoard.selectedBlock.col){ + if (gameBoard.selectedBlock.col!=-1&&mouseCol==gameBoard.selectedBlock.col&&newData.col==mouseCol){ //See if these two can be swapped. Block&b1=gameBoard.getBlock(gameBoard.selectedBlock); Block&b2=gameBoard.getBlock(newData); int y1=(gameBoard.selectedBlock.c!=-1)?gameBoard.getBlockClumps()[gameBoard.selectedBlock.c].getBlockPosition(gameBoard.getBlockClumps()[gameBoard.selectedBlock.c].getBlocks()[gameBoard.selectedBlock.ind]).y:gameBoard.getBlocks(gameBoard.selectedBlock.col)[gameBoard.selectedBlock.ind].pos.y; int y2=(newData.c!=-1)?gameBoard.getBlockClumps()[newData.c].getBlockPosition(gameBoard.getBlockClumps()[newData.c].getBlocks()[newData.ind]).y:gameBoard.getBlocks(newData.col)[newData.ind].pos.y; - if (b1.pos.x==b2.pos.x&&std::abs(y1-y2)<=12){ + if (b1.pos.x==b2.pos.x&&std::abs(y1-y2)<=12&&&b1!=&b2){ //Swap the two! BlockColor tempCol=b1.col; b1.col=b2.col; @@ -78,7 +78,7 @@ void Meteos::handleInput(){ BlockClump&c=gameBoard.getBlockClumps()[i]; for (int j=0;j=mouseY){ + if (b.pos.x/12==mouseCol&&c.getBlockPosition(b).y<=mouseY&&c.getBlockPosition(b).y+12>mouseY){ SelectedBlockData newData={mouseCol,j,i}; if (gameBoard.selectedBlock.col!=-1&&mouseCol==gameBoard.selectedBlock.col){ //See if these two can be swapped. @@ -86,7 +86,7 @@ void Meteos::handleInput(){ Block&b2=gameBoard.getBlock(newData); int y1=(gameBoard.selectedBlock.c!=-1)?gameBoard.getBlockClumps()[gameBoard.selectedBlock.c].getBlockPosition(gameBoard.getBlockClumps()[gameBoard.selectedBlock.c].getBlocks()[gameBoard.selectedBlock.ind]).y:gameBoard.getBlocks(gameBoard.selectedBlock.col)[gameBoard.selectedBlock.ind].pos.y; int y2=(newData.c!=-1)?gameBoard.getBlockClumps()[newData.c].getBlockPosition(gameBoard.getBlockClumps()[newData.c].getBlocks()[newData.ind]).y:gameBoard.getBlocks(newData.col)[newData.ind].pos.y; - if (b1.pos.x==b2.pos.x&&std::abs(y1-y2)<=12){ + if (b1.pos.x==b2.pos.x&&std::abs(y1-y2)<=12&&&b1!=&b2){ //Swap the two! BlockColor tempCol=b1.col; b1.col=b2.col; @@ -98,9 +98,18 @@ void Meteos::handleInput(){ } } } - found:; } - if (gameBoard.selectedBlock.c==-1&&gameBoard.selectedBlock.col!=-1&&gameBoard.boardSize.y-mouseRow>gameBoard.getBlocks(gameBoard.selectedBlock.col).size()&&gameBoard.getBlocks(gameBoard.selectedBlock.col)[gameBoard.selectedBlock.ind].pos.y>12){ + found: + if (gameBoard.selectedBlock.c==-1&&gameBoard.selectedBlock.col!=-1&&mouseRowgameBoard.getBlocks(gameBoard.selectedBlock.col).size()&&gameBoard.getBlocks(gameBoard.selectedBlock.col)[gameBoard.selectedBlock.ind].pos.y>12){ + for (int i=0;i=gameBoard.spawnRate){ lastBlockSpawn-=gameBoard.spawnRate; - gameBoard.spawnBlock(randBlockPos(gen)); + //gameBoard.spawnBlock(randBlockPos(gen)); } } @@ -745,11 +755,9 @@ void Meteos::matchGroundedBlocks(){ assert(false); } c.addBlock(b2.pos.x/12,((int)gameBoard.getBlockClumps()[info.c].getBlockPosition(b2).y-(int)baseBlockPos.y)/12,b2.col); - std::cout<<"Added block @"<0){ DrawStringDecal(gameBoard.drawOffset+vi2d{0,-8}+vi2d{1,1},"+"+std::to_string(accumulatedScore),BLACK,{0.75,0.75}); DrawStringDecal(gameBoard.drawOffset+vi2d{0,-8},"+"+std::to_string(accumulatedScore),frameTime%5>2?Pixel{224, 184, 148}:WHITE,{0.75,0.75}); + GradientFillRectDecal(gameBoard.drawOffset+vi2d{gameBoard.boardSize.x*12+16,0}, {32,32}, BLACK, VERY_DARK_GREEN, VERY_DARK_GREEN, BLACK); + DrawRectDecal(gameBoard.drawOffset+vi2d{gameBoard.boardSize.x*12+16,0}, {32,32}, DARK_YELLOW); + DrawStringDecal(gameBoard.drawOffset+vi2d{gameBoard.boardSize.x*12+16,8},std::to_string(blocksInAttackQueue),{66, 125, 92}); } }