#define OLC_PGE_APPLICATION #include "pixelGameEngine.h" using namespace olc; class Hexes : public olc::PixelGameEngine { public: Hexes() { sAppName = "Hexes"; } public: Decal*hexImg; vf2d offset={100,100}; bool OnUserCreate() override { // Called once at the start, so create things here hexImg = new Decal(new Sprite("hexTex.png")); return true; } bool OnUserUpdate(float fElapsedTime) override { if (GetKey(UP).bHeld) { offset.y+=fElapsedTime*200; } if (GetKey(DOWN).bHeld) { offset.y-=fElapsedTime*200; } if (GetKey(LEFT).bHeld) { offset.x+=fElapsedTime*200; } if (GetKey(RIGHT).bHeld) { offset.x-=fElapsedTime*200; } // called once per frame float scale=20; for (int x=0;x<20;x++) { for (int y=0;y<20;y++) { vf2d offset2={(y&1?-0.45F*scale:0)+offset.x+x*0.9F*scale,y*scale*0.7F+offset.y}; DrawPolygonDecal(hexImg,{ {0+offset2.x,0.5F*scale+offset2.y},{-0.45F*scale+offset2.x,0.25F*scale+offset2.y},{0+offset2.x,0+offset2.y},{0.45F*scale+offset2.x,0.25F*scale+offset2.y},{0.45F*scale+offset2.x,0.75F*scale+offset2.y},{0+offset2.x,1*scale+offset2.y},{-0.45F*scale+offset2.x,0.75F*scale+offset2.y},{-0.45F*scale+offset2.x,0.25F*scale+offset2.y} },{ {1,1},{0,1},{0,0},{0,1},{0,0},{0,1},{0,0},{0,1} }); } } return true; } }; int main() { Hexes demo; if (demo.Construct(256, 240, 4, 4)) demo.Start(); return 0; }