#define OLC_PGE_APPLICATION #include "pixelGameEngine.h" using namespace olc; struct Object{ Decal*spr; vf2d pos; Object(){} Object(Decal*spr,vf2d pos) :spr(spr),pos(pos){} }; class Example : public PixelGameEngine { public: Example() { sAppName = "Example"; } public: Object player; std::array enemyList; std::array bulletList; Decal*spaceship_spr; Decal*enemy_spr; Decal*bullet_spr; float shotCooldown=0; bool OnUserCreate() override { // Called once at the start, so create things here spaceship_spr = new Decal(new Sprite("space_ship.png")); enemy_spr = new Decal(new Sprite("space_alien.png")); bullet_spr = new Decal(new Sprite("bullet.png")); for (int i=0;i<8;i++){ enemyList[i]=new Object(enemy_spr,{(float)(rand()%224),16}); } for (int i=0;ipos.x+8>=obj->pos.x&&bullet->pos.x+8<=obj->pos.x+16&& bullet->pos.y>=obj->pos.y&&bullet->pos.y<=obj->pos.y+16){ obj->pos={-999,-999}; } } DrawDecal(obj->pos,obj->spr); } for (int i=0;ipos.y<-32&&addBullet){ addBullet=false; obj->pos=player.pos; } obj->pos.y-=160*fElapsedTime; DrawDecal(obj->pos,obj->spr); } DrawStringDecal({0,0},std::to_string(bulletList.size())); return true; } }; int main() { Example demo; if (demo.Construct(256, 240, 4, 4)) demo.Start(); return 0; }