#define OLC_PGE_APPLICATION #include "olcPixelGameEngine.h" #include "PGEX_SMX.h" using namespace olc; class SMX_PGE : public olc::PixelGameEngine { PGEX_SMX smx; bool paused = false; int mode = 0; vf2d playerPos = { 0,0 }; public: SMX_PGE() { sAppName = "SMX PGE"; } public: bool OnUserCreate() override { // Called once at the start, so create things here return true; } bool OnUserUpdate(float fElapsedTime) override { smx.GetPanel(RIGHT, 0).bHeld; if (GetKey(RIGHT).bPressed) { mode = (mode + 1) % 3; } switch (mode) { case 0: { if (GetKey(SPACE).bPressed) { paused = !paused; } // called once per frame if (!paused) { for (int x = 0; x < ScreenWidth(); x++) for (int y = 0; y < ScreenHeight(); y++) Draw(x, y, olc::Pixel(rand() % 255, rand() % 255, rand() % 255)); } }break; case 1: { Clear(DARK_CYAN); DrawRect({ 1,1 }, { 9,18 }, RED); }break; case 2: { Clear(VERY_DARK_BLUE); FillCircle(playerPos, 3,VERY_DARK_GREY); DrawCircle(playerPos, 3); if (GetKey(W).bHeld) { playerPos.y -= 5*fElapsedTime; } if (GetKey(A).bHeld) { playerPos.x -= 5 * fElapsedTime; } if (GetKey(S).bHeld) { playerPos.y += 5 * fElapsedTime; } if (GetKey(D).bHeld) { playerPos.x += 5 * fElapsedTime; } }break; } return true; } }; int main() { SMX_PGE demo; if (demo.Construct(12, 21, 50, 50)) demo.Start(); return 0; }