#define OLC_PGE_APPLICATION #include "pixelGameEngine.h" #define OLC_SOUNDWAVE #include "soundExtension.h" using namespace std; class EarthboundBattleSim : public olc::PixelGameEngine { public: EarthboundBattleSim() { sAppName = "EarthboundBattleSim"; } public: float accumulatedTime=0; const float UPDATE_RATE=1/60.0F; char partyMemberCount=1; olc::sound::WaveEngine engine; olc::sound::Wave se1; bool OnUserCreate() override { SetPixelMode(olc::Pixel::ALPHA); //ConsoleCaptureStdOut(true); // Called once at the start, so create things here engine.InitialiseAudio(); engine.SetOutputVolume(0.1f); se1.LoadAudioWaveform("./assets/sample-9s.wav"); return true; } bool OnUserUpdate(float fElapsedTime) override { Clear(olc::BLACK); accumulatedTime+=fElapsedTime; while (accumulatedTime>=UPDATE_RATE) { accumulatedTime-=UPDATE_RATE; updateGame(); //DO NOT ADD THINGS HERE. USE updateGame()! } if (GetKey(olc::RIGHT).bPressed) { partyMemberCount=min(partyMemberCount+1,4); } if (GetKey(olc::LEFT).bPressed) { partyMemberCount=max(partyMemberCount-1,1); } drawGame(); // called once per frame return true; } void updateGame(){ } void drawBox(const olc::vi2d &pos, const olc::vi2d &size, olc::Pixel p = olc::WHITE, olc::Pixel p2 = olc::DARK_GREY, olc::Pixel p3 = olc::VERY_DARK_GREY) { FillRectDecal({pos.x+3,pos.y+3},{size.x-5,size.y-5},p); DrawRect({pos.x,pos.y},size,p2); DrawRect({pos.x+2,pos.y+2},{size.x-4,size.y-4},p3); DrawRect({pos.x+1,pos.y+1},{size.x-2,size.y-2},p); Draw({pos.x,pos.y},olc::BLACK); Draw({pos.x+size.x,pos.y+size.y},olc::BLACK); Draw({pos.x+size.x,pos.y},olc::BLACK); Draw({pos.x,pos.y+size.y},olc::BLACK); } void drawCheckerboardBox(const olc::vi2d &pos, const olc::vi2d &size, olc::Pixel p = olc::WHITE, olc::Pixel alternatingCol = olc::WHITE, const olc::vi2d &checkerboardSize = {3,3}, olc::Pixel p2 = olc::DARK_GREY, olc::Pixel p3 = olc::VERY_DARK_GREY) { drawBox(pos,size,p,p2,p3); for (int x=3;x