generated from sigonasr2/CPlusPlusProjectTemplate
Draw basic board and setup classes
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
e77690f7e0
commit
0a5ebfd622
11
Block.h
Normal file
11
Block.h
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#ifndef BLOCK_H
|
||||||
|
#define BLOCK_H
|
||||||
|
#include "pixelGameEngine.h"
|
||||||
|
|
||||||
|
class Block{
|
||||||
|
public:
|
||||||
|
vf2d pos;
|
||||||
|
Block(vf2d pos)
|
||||||
|
:pos(pos){}
|
||||||
|
};
|
||||||
|
#endif
|
9
Board.cpp
Normal file
9
Board.cpp
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#include "Board.h"
|
||||||
|
#include "Meteos.h"
|
||||||
|
|
||||||
|
extern Meteos*game;
|
||||||
|
|
||||||
|
Board::Board(vi2d boardSize,float gravity)
|
||||||
|
:boardSize(boardSize),gravity(gravity){
|
||||||
|
drawOffset={(float)game->ScreenWidth()/2-boardSize.x/2*12,(float)game->ScreenHeight()/2-boardSize.y/2*12};
|
||||||
|
}
|
13
Board.h
Normal file
13
Board.h
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#ifndef BOARD_H
|
||||||
|
#define BOARD_H
|
||||||
|
#include "pixelGameEngine.h"
|
||||||
|
|
||||||
|
class Board{
|
||||||
|
public:
|
||||||
|
vf2d drawOffset;
|
||||||
|
vi2d boardSize;
|
||||||
|
float gravity;
|
||||||
|
Board(){}
|
||||||
|
Board(vi2d boardSize,float gravity);
|
||||||
|
};
|
||||||
|
#endif
|
Binary file not shown.
21
Meteos.h
Normal file
21
Meteos.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#ifndef METEOS_H
|
||||||
|
#define METEOS_H
|
||||||
|
#include "pixelGameEngine.h"
|
||||||
|
#include "Block.h"
|
||||||
|
#include "Board.h"
|
||||||
|
#include <random>
|
||||||
|
|
||||||
|
class Meteos : public olc::PixelGameEngine{
|
||||||
|
public:
|
||||||
|
Meteos(){
|
||||||
|
sAppName="Meteos";
|
||||||
|
}
|
||||||
|
std::vector<Block> blocks;
|
||||||
|
float lastBlockSpawn=0.0f;
|
||||||
|
std::uniform_int_distribution<> randBlockPos;
|
||||||
|
std::mt19937 gen;
|
||||||
|
Board gameBoard;
|
||||||
|
bool OnUserCreate()override;
|
||||||
|
bool OnUserUpdate(float fElapsedTime)override;
|
||||||
|
};
|
||||||
|
#endif
|
46
main.cpp
46
main.cpp
@ -1,31 +1,49 @@
|
|||||||
#define OLC_PGE_APPLICATION
|
#define OLC_PGE_APPLICATION
|
||||||
#include "pixelGameEngine.h"
|
#include "pixelGameEngine.h"
|
||||||
|
#include "Meteos.h"
|
||||||
|
#include <random>
|
||||||
|
|
||||||
class Meteos : public olc::PixelGameEngine
|
Meteos*game;
|
||||||
{
|
|
||||||
public:
|
|
||||||
Meteos()
|
|
||||||
{
|
|
||||||
sAppName = "Meteos";
|
|
||||||
}
|
|
||||||
|
|
||||||
bool OnUserCreate() override
|
bool Meteos::OnUserCreate()
|
||||||
{
|
{
|
||||||
|
game=this;
|
||||||
|
|
||||||
|
std::random_device rd; //Will be used to obtain a seed for the random number engine
|
||||||
|
gen=std::mt19937(rd()); //Standard mersenne_twister_engine seeded with rd()
|
||||||
|
randBlockPos=std::uniform_int_distribution<>(0, 9);
|
||||||
|
|
||||||
|
gameBoard=Board({10,14},0.1f);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool OnUserUpdate(float fElapsedTime) override
|
bool Meteos::OnUserUpdate(float fElapsedTime)
|
||||||
{
|
{
|
||||||
|
lastBlockSpawn+=fElapsedTime;
|
||||||
|
if (lastBlockSpawn>=5.0f){
|
||||||
|
lastBlockSpawn-=5.0f;
|
||||||
|
blocks.push_back(Block({(float)randBlockPos(gen)*12,0}));
|
||||||
|
}
|
||||||
|
Clear(Pixel(32,32,255));
|
||||||
|
for (int x=-1;x<=gameBoard.boardSize.x;x++) {
|
||||||
|
for (int y=0;y<=gameBoard.boardSize.y;y++) {
|
||||||
|
if (x==-1||x==10||y==14) {
|
||||||
|
FillRectDecal({(float)(gameBoard.drawOffset.x+x*12),(float)(gameBoard.drawOffset.y+y*12)},{12,12},Pixel(0,0,0,255));
|
||||||
|
} else {
|
||||||
|
DrawRectDecal({(float)(gameBoard.drawOffset.x+x*12),(float)(gameBoard.drawOffset.y+y*12)},{12,12},Pixel(255,255,255,64));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (Block&b:blocks) {
|
||||||
|
FillRectDecal(b.pos+gameBoard.drawOffset,{12,12},GREEN);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
Meteos game;
|
Meteos instance;
|
||||||
if (game.Construct(256, 240, 4, 4))
|
if (instance.Construct(256, 240, 4, 4))
|
||||||
game.Start();
|
instance.Start();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
@ -6243,3 +6243,5 @@ namespace olc
|
|||||||
// | END OF OLC_PGE_APPLICATION |
|
// | END OF OLC_PGE_APPLICATION |
|
||||||
// O------------------------------------------------------------------------------O
|
// O------------------------------------------------------------------------------O
|
||||||
|
|
||||||
|
|
||||||
|
using namespace olc;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user