block spawning and drawing

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
sigonasr2 2022-11-18 01:39:36 -07:00
parent 0a5ebfd622
commit cf17d444b0
5 changed files with 11 additions and 1 deletions

View File

@ -4,6 +4,7 @@
class Block{ class Block{
public: public:
float vspeed;
vf2d pos; vf2d pos;
Block(vf2d pos) Block(vf2d pos)
:pos(pos){} :pos(pos){}

View File

@ -6,4 +6,5 @@ extern Meteos*game;
Board::Board(vi2d boardSize,float gravity) Board::Board(vi2d boardSize,float gravity)
:boardSize(boardSize),gravity(gravity){ :boardSize(boardSize),gravity(gravity){
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;
} }

View File

@ -4,6 +4,7 @@
class Board{ class Board{
public: public:
float yBottom;
vf2d drawOffset; vf2d drawOffset;
vi2d boardSize; vi2d boardSize;
float gravity; float gravity;

Binary file not shown.

View File

@ -13,7 +13,7 @@ bool Meteos::OnUserCreate()
gen=std::mt19937(rd()); //Standard mersenne_twister_engine seeded with rd() gen=std::mt19937(rd()); //Standard mersenne_twister_engine seeded with rd()
randBlockPos=std::uniform_int_distribution<>(0, 9); randBlockPos=std::uniform_int_distribution<>(0, 9);
gameBoard=Board({10,14},0.1f); gameBoard=Board({10,14},6.f);
return true; return true;
} }
@ -35,6 +35,13 @@ bool Meteos::OnUserUpdate(float fElapsedTime)
} }
} }
for (Block&b:blocks) { for (Block&b:blocks) {
if (b.pos.y<gameBoard.yBottom) {
b.vspeed+=gameBoard.gravity*fElapsedTime;
b.pos.y+=b.vspeed*fElapsedTime;
} else {
b.vspeed=0;
b.pos.y=gameBoard.yBottom;
}
FillRectDecal(b.pos+gameBoard.drawOffset,{12,12},GREEN); FillRectDecal(b.pos+gameBoard.drawOffset,{12,12},GREEN);
} }
return true; return true;