generated from sigonasr2/CPlusPlusProjectTemplate
Combo-based launch rates and block weights
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
9974deda85
commit
0cbdb6f7da
@ -5,8 +5,8 @@ extern Meteos*game;
|
|||||||
Board::Board()
|
Board::Board()
|
||||||
:colorHandler({}){}
|
:colorHandler({}){}
|
||||||
|
|
||||||
Board::Board(vi2d boardSize,float gravity,float maxGravity,float comboGravity,float comboMaxGravity,float launchSpd,float launchTime,float landTime,float spawnRate,std::array<int,10> colorRates,Renderable&tileset)
|
Board::Board(vi2d boardSize,float blockWeight,float gravity,float maxGravity,float comboGravity,float comboMaxGravity,std::vector<float> launchSpd,float launchTime,float landTime,float spawnRate,std::array<int,10> 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()){
|
: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};
|
drawOffset={(float)game->ScreenWidth()/2-boardSize.x/2*12,(float)game->ScreenHeight()/2-boardSize.y/2*12};
|
||||||
yBottom=(boardSize.y-1)*12;
|
yBottom=(boardSize.y-1)*12;
|
||||||
for (int i=0;i<boardSize.x;i++) {
|
for (int i=0;i<boardSize.x;i++) {
|
||||||
|
5
Board.h
5
Board.h
@ -48,12 +48,13 @@ class Board{
|
|||||||
float comboGravity;
|
float comboGravity;
|
||||||
float comboMaxGravity;
|
float comboMaxGravity;
|
||||||
float spawnRate;
|
float spawnRate;
|
||||||
float launchSpd;
|
float blockWeight; //How much this dampens the launch speeds.
|
||||||
|
std::vector<float> launchSpd;
|
||||||
float launchTime; //How much time a stack rises before beginning descent.
|
float launchTime; //How much time a stack rises before beginning descent.
|
||||||
float landTime;
|
float landTime;
|
||||||
SelectedBlockData selectedBlock;
|
SelectedBlockData selectedBlock;
|
||||||
Board();
|
Board();
|
||||||
Board(vi2d boardSize,float gravity,float maxGravity,float launchedGravity,float launchedMaxGravity,float launchSpd,float launchTime,float landTime,float spawnRate,std::array<int,10> colorRates,Renderable&tileset);
|
Board(vi2d boardSize,float blockWeight,float gravity,float maxGravity,float launchedGravity,float launchedMaxGravity,std::vector<float> launchSpd,float launchTime,float landTime,float spawnRate,std::array<int,10> colorRates,Renderable&tileset);
|
||||||
void spawnBlock(int col);
|
void spawnBlock(int col);
|
||||||
void addClump(BlockClump&c);
|
void addClump(BlockClump&c);
|
||||||
std::vector<Block>&getBlocks(int col);
|
std::vector<Block>&getBlocks(int col);
|
||||||
|
Binary file not shown.
6
main.cpp
6
main.cpp
@ -24,7 +24,7 @@ bool Meteos::OnUserCreate()
|
|||||||
coinFlip=std::uniform_int_distribution<>(0, 1);
|
coinFlip=std::uniform_int_distribution<>(0, 1);
|
||||||
comboOverlayOffset=std::uniform_int_distribution<>(-16,16);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
@ -286,7 +286,7 @@ void Meteos::updateGame(float fElapsedTime){
|
|||||||
b.col=BlockColor::LAUNCHED;
|
b.col=BlockColor::LAUNCHED;
|
||||||
}
|
}
|
||||||
if (matchedBlockIDs.size()>0){
|
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.launchTime=gameBoard.launchTime;
|
||||||
c.combo++;
|
c.combo++;
|
||||||
vi2d randomOffset={comboOverlayOffset(gen),comboOverlayOffset(gen)};
|
vi2d randomOffset={comboOverlayOffset(gen),comboOverlayOffset(gen)};
|
||||||
@ -535,7 +535,7 @@ void Meteos::updateGame(float fElapsedTime){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
gameBoard.addClump(c);
|
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].launchTime=gameBoard.launchTime;
|
||||||
gameBoard.getBlockClumps()[gameBoard.getBlockClumps().size()-1].combo++;
|
gameBoard.getBlockClumps()[gameBoard.getBlockClumps().size()-1].combo++;
|
||||||
vi2d randomOffset={comboOverlayOffset(gen),comboOverlayOffset(gen)};
|
vi2d randomOffset={comboOverlayOffset(gen),comboOverlayOffset(gen)};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user