void ColorChange::setup() { INFO("Creating a ColorChange ..."); if(colorMask & BLUE) color = "FlatBlue"; else if(colorMask & GREEN) color = "FlatGreen"; else if(colorMask & RED) color = "FlatRed"; else if(colorMask & GREY) color = "FlatGrey"; colorChange = ObjectPtr(new Object( LoadManager::getMesh("cube.obj"), MaterialManager::getMaterial(color))); RenderEngine::getRenderElement("regular")->addObject(colorChange); colorChange->scale(glm::vec3(.5, .5, .5)); colorChange->translate(position); setCollisionID(16); setCollideWithID(2); setCanCollide(true); setBoundingBox(BoundingBox(glm::vec3(.5f,.5f,.5f), glm::vec3(-.5f,-.5f,-.5f))); getBoundingBox()->setPosition(position); }
void EnemyPatroller::die() { setCanCollide(false); dying = true; freeze(); setCurrentAnimation("die"); fireSound->playSound(); }
void CollectibleArmor::collide(Actor& otherActor) { if (otherActor.isPlayer()) { setCanCollide(false); hidden = true; ((Player&)otherActor).armor += 1; } }
void CollectibleWeaponUpgrade::collide(Actor& otherActor) { if (otherActor.isPlayer()) { soundCache["gmae.ogg"]->playSound(); setCanCollide(false); hidden = true; ((Player&)otherActor).upgradeWeapon(); } }
void CollectiblePill::collide(Actor& otherActor) { if (otherActor.isPlayer()) { fireSound = soundCache["energyblip.ogg"]; fireSound->playSound(); setCanCollide(false); hidden = true; // give player 5 energy, but only up to max energy + 100 if(((Player&)otherActor).energy < ((Player&)otherActor).energy_max + 100) { ((Player&)otherActor).energy = min(((Player&)otherActor).energy_max + 100, ((Player&)otherActor).energy + 5.0f); } } }
ParticleEmitter::ParticleEmitter(float x, float y) :Actor(x, y, 32.0f, 32.0f) { emissionRate = 5.f; maxAge = 3.f; if (!image.LoadFromFile("images/smoke.png")) printf("failed to load images/smoke.png\n"); sprite.SetImage(image); sprite.SetCenter(16, 16); maxParticles = int(maxAge*emissionRate); timeLeft = 0; nextIdx = 0; setVelocityFunc(no_gravity); setCanCollide(false); }
void Collectible::reset() { setCanCollide(true); hidden = false; }