std::shared_ptr<Sprite> Canvas::createSprite(std::shared_ptr<TextureAtlas> textureAtlas, std::string spriteName, glm::vec2 pos) { auto sprite = addComponent<Sprite>(); sprite->setTextureAtlas(textureAtlas); sprite->setSpriteName(spriteName); return sprite; }
// Set our default damage, position and velocity Projectile::Projectile() { setDamage(1); switch (rand() % 10) { case 0: setPos(Vector2(-10, 0)); break; case 1: setPos(Vector2(-20, 0)); break; case 2: setPos(Vector2(-10, -10)); break; case 3: setPos(Vector2(10, 10)); break; case 4: setPos(Vector2(10, -10)); break; case 5: setPos(Vector2(10, -20)); break; case 6: setPos(Vector2(20, -10)); break; case 7: setPos(Vector2(-10, 20)); break; case 8: setPos(Vector2(-20, 10)); break; case 9: setPos(Vector2(-10, 30)); break; default: setPos(Vector2(-30, 10)); break; break; } setVel(Vector2(0, 0)); setDim(Vector2(16, 16)); accRate = 8; attackSpeed = 12; maxSpeed = 10; attackTimer = 2; timerSet = false; dest = Vector2(0, 0); attacking = false; setSpriteName("Projectile"); if (!loaded) { loadTexture(getSpriteName(), "../textures/projectile.png", 1, 1); loaded = true; } }