From e473e5ee2163b1494b8ba020e99119c0b9bbcb65 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Fri, 16 Jun 2023 18:44:07 -0700 Subject: [PATCH] Add in demo --- sample/SMXSample.cpp | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/sample/SMXSample.cpp b/sample/SMXSample.cpp index 5b381c9..b571082 100644 --- a/sample/SMXSample.cpp +++ b/sample/SMXSample.cpp @@ -6,6 +6,9 @@ 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() { @@ -25,10 +28,43 @@ public: bool OnUserUpdate(float fElapsedTime) override { - // called once per frame - 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)); + 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; } };