示例#1
0
void TTFB_Audience::setHappy(int _level) {
	if(currentState != _level){
		if(_level < 3){
			setPrimaryTexture(TTFB_ResourceManager::scenario->getTextureSampler(prefix + "_CrowdHappy" + std::to_string(_level))->textureSampler);
		}else {
			setPrimaryTexture(TTFB_ResourceManager::scenario->getTextureSampler(prefix + "_CrowdHappy3")->textureSampler);
		}
		currentState = _level;
	}
}
示例#2
0
void TTFB_Audience::setBored(int _level) {
	if(currentState != -_level){
		if(_level < 4){
			setPrimaryTexture(TTFB_ResourceManager::scenario->getTextureSampler(prefix + "_CrowdBored" + std::to_string(_level))->textureSampler);
		}else {
			setPrimaryTexture(TTFB_ResourceManager::scenario->getTextureSampler(prefix + "_CrowdBored4")->textureSampler);
		}
		currentState = -_level;
	}
}
MY_DemonBoss::MY_DemonBoss(Shader* _shader) :
	Sprite(_shader),
	spawnSpewerTimer(0),
	spawnSpewerTimerLength(sweet::NumberUtils::randomFloat(SPEWER_TIMER_MIN, SPEWER_TIMER_MAX)),
	hits(0),
	active(true),
	isDead(false)
{
	spriteSheet = new SpriteSheet(MY_ResourceManager::globalAssets->getTexture("spritesheet_boss")->texture);
	setPrimaryTexture(MY_ResourceManager::globalAssets->getTexture("boss")->texture);
	
	auto anim = new SpriteSheetAnimation(0.4f);
	anim->pushFramesInRange(0, 1, 1024, 1024, spriteSheet->texture->width, spriteSheet->texture->height);
	spriteSheet->addAnimation("idle", anim);

	anim = new SpriteSheetAnimation(0.1f);
	anim->pushFramesInRange(2, 3, 1024, 1024, spriteSheet->texture->width, spriteSheet->texture->height);
	spriteSheet->addAnimation("attack", anim);

	anim = new SpriteSheetAnimation(1.0f);
	anim->pushFramesInRange(4, 5, 1024, 1024, spriteSheet->texture->width, spriteSheet->texture->height);
	spriteSheet->addAnimation("die", anim);

	setSpriteSheet(spriteSheet, "idle");

	for(auto & v : mesh->vertices){
		v.y += 0.5f;
	}
	mesh->dirty = true;
	mesh->setScaleMode(GL_NEAREST);

	meshTransform->scale(glm::vec3(DEMON_SCALE)*1.5f);
	
	animationTimeout = new Timeout(0.5f, [this](sweet::Event * _event){
		setCurrentAnimation("idle");
	});
	childTransform->addChild(animationTimeout, false);
	spewerTimeout = new Timeout(1.f, [this](sweet::Event * _event){
		if(!isDead){
			enableSpewers();
			setCurrentAnimation("attack");
			animationTimeout->restart();
			int x =  sweet::NumberUtils::randomInt(1, 3);
			MY_ResourceManager::globalAssets->getAudio("DEMON_HISS_" + std::to_string(x))->sound->play();
		}
	});

	spewerTimeout->start();
	childTransform->addChild(spewerTimeout, false);

	/*eventManager.addEventListener("spiritCollision", [this](sweet::Event * _event){
		// Take damage and stuff here
		ST_LOG_INFO("COLLIDE");
	});*/
}
示例#4
0
TTFB_Audience::TTFB_Audience(std::string _prefix, Shader * _shader) :
	Sprite(_shader),
	currentState(0),
	lastSoundPlayed(0.0),
	prefix(_prefix),
	playAudio(true),
	clapping(nullptr),
	snoring(nullptr)
{
	setPrimaryTexture(TTFB_ResourceManager::scenario->getTextureSampler(prefix + "_CrowdNeutral")->textureSampler);

	clapping =  TTFB_ResourceManager::scenario->getAudio("clapping1")->sound;
	clapping->setGain(0.3f);

	snoring =  TTFB_ResourceManager::scenario->getAudio("snore4")->sound;
	snoring->setGain(0.3f);
}
示例#5
0
void TTFB_Audience::setNeutral() {
	if(currentState != 0){
		setPrimaryTexture(TTFB_ResourceManager::scenario->getTextureSampler(prefix + "_CrowdNeutral")->textureSampler);
		currentState = 0;
	}
}