diff --git a/Board.cpp b/Board.cpp index e89c938..56ad0c8 100644 --- a/Board.cpp +++ b/Board.cpp @@ -5,8 +5,8 @@ extern Meteos*game; Board::Board() :colorHandler({}){} -Board::Board(vi2d boardSize,float gravity,float maxGravity,float comboGravity,float comboMaxGravity,float launchSpd,float launchTime,float landTime,float spawnRate,std::array colorRates,Renderable&tileset) -:boardSize(boardSize),gravity(gravity),maxGravity(maxGravity),comboGravity(comboGravity),comboMaxGravity(comboMaxGravity),launchSpd(launchSpd),launchTime(launchTime),landTime(landTime),spawnRate(spawnRate),colorHandler(colorRates),tileset(tileset.Decal()){ +Board::Board(vi2d boardSize,float blockWeight,float gravity,float maxGravity,float comboGravity,float comboMaxGravity,std::vector launchSpd,float launchTime,float landTime,float spawnRate,std::array colorRates,Renderable&tileset) +:boardSize(boardSize),blockWeight(blockWeight),gravity(gravity),maxGravity(maxGravity),comboGravity(comboGravity),comboMaxGravity(comboMaxGravity),launchSpd(launchSpd),launchTime(launchTime),landTime(landTime),spawnRate(spawnRate),colorHandler(colorRates),tileset(tileset.Decal()){ drawOffset={(float)game->ScreenWidth()/2-boardSize.x/2*12,(float)game->ScreenHeight()/2-boardSize.y/2*12}; yBottom=(boardSize.y-1)*12; for (int i=0;i launchSpd; float launchTime; //How much time a stack rises before beginning descent. float landTime; SelectedBlockData selectedBlock; Board(); - Board(vi2d boardSize,float gravity,float maxGravity,float launchedGravity,float launchedMaxGravity,float launchSpd,float launchTime,float landTime,float spawnRate,std::array colorRates,Renderable&tileset); + Board(vi2d boardSize,float blockWeight,float gravity,float maxGravity,float launchedGravity,float launchedMaxGravity,std::vector launchSpd,float launchTime,float landTime,float spawnRate,std::array colorRates,Renderable&tileset); void spawnBlock(int col); void addClump(BlockClump&c); std::vector&getBlocks(int col); diff --git a/C++ProjectTemplate b/C++ProjectTemplate index 003a915..d824369 100755 Binary files a/C++ProjectTemplate and b/C++ProjectTemplate differ diff --git a/main.cpp b/main.cpp index b871a6e..c0337e3 100644 --- a/main.cpp +++ b/main.cpp @@ -24,7 +24,7 @@ bool Meteos::OnUserCreate() coinFlip=std::uniform_int_distribution<>(0, 1); comboOverlayOffset=std::uniform_int_distribution<>(-16,16); - gameBoard=Board({10,14},0.04f,1.2f,0.04f,0.4f,-1.f,1.7f,2.0f,1.0f,{3,3,1,2,3,0,0,0,0,0},SPRITES["blocks_test.png"]); + gameBoard=Board({10,14},0.02f,0.04f,1.2f,0.04f,0.4f,{-1.f,-1.5f,-2.f,-2.5f,-4.f},1.7f,2.0f,1.0f,{3,3,1,2,3,0,0,0,0,0},SPRITES["blocks_test.png"]); return true; } @@ -286,7 +286,7 @@ void Meteos::updateGame(float fElapsedTime){ b.col=BlockColor::LAUNCHED; } if (matchedBlockIDs.size()>0){ - c.vspeed=gameBoard.launchSpd; + c.vspeed=gameBoard.launchSpd[std::min(c.combo,(int)gameBoard.launchSpd.size()-1)]/(1+(c.getBlocks().size()*gameBoard.blockWeight)); c.launchTime=gameBoard.launchTime; c.combo++; vi2d randomOffset={comboOverlayOffset(gen),comboOverlayOffset(gen)}; @@ -535,7 +535,7 @@ void Meteos::updateGame(float fElapsedTime){ } } gameBoard.addClump(c); - gameBoard.getBlockClumps()[gameBoard.getBlockClumps().size()-1].vspeed=gameBoard.launchSpd; + gameBoard.getBlockClumps()[gameBoard.getBlockClumps().size()-1].vspeed=gameBoard.launchSpd[std::min(gameBoard.getBlockClumps()[gameBoard.getBlockClumps().size()-1].combo,(int)gameBoard.launchSpd.size()-1)]/(1+(gameBoard.getBlockClumps()[gameBoard.getBlockClumps().size()-1].getBlocks().size()*gameBoard.blockWeight)); gameBoard.getBlockClumps()[gameBoard.getBlockClumps().size()-1].launchTime=gameBoard.launchTime; gameBoard.getBlockClumps()[gameBoard.getBlockClumps().size()-1].combo++; vi2d randomOffset={comboOverlayOffset(gen),comboOverlayOffset(gen)};