コード例 #1
0
void BossTimeOut::Fallingstone()
{
	FallingStone* stone = FallingStone::create();
	stone->setTag(20150924);
	stone->setPosition(randPos());
	UIController::getInstance()->getPhysicsLayer()->addChild(stone);

	StartTiming();
}
コード例 #2
0
Ogre::Vector3 RandomPosition::getRandPosition(int area)
{
	Ogre::Vector3 randPos(0, tankOnGround, 0);
	
	setX(area, randPos);
	setZ(area, randPos);
			
	return randPos;
}
コード例 #3
0
cocos2d::Vec2 BossTimeOut::randPos()
{
	int randNum = cocos2d::random(0,20);
	if (randNum == m_curRandPos)
	{
		randPos();
	}
	m_curRandPos = randNum;
	auto ws = Director::getInstance()->getWinSize();
	return Vec2(ws.width/20 * randNum + rand_minus1_1() * 10, ws.height + 70);
}
コード例 #4
0
void SteamDeathEffect::update(float dTime)
{
	if (GET_GAME_MANAGER()->getMicroSecondTime() - m_StartTime < 2000)
	{
		auto player = GET_STAGE_MANAGER()->getPlayer();

		int randNum = 20 - (GET_GAME_MANAGER()->getMicroSecondTime() - m_StartTime) / 100;
		int createNum = 1 + (GET_GAME_MANAGER()->getMicroSecondTime() - m_StartTime) / 400;

		if (rand() % randNum == 0)
		{

			for (int i = 0; i < createNum; i++)
			{
				float xPos = rand() % 20;

				if (player->getInfo().m_UpperDir == DIR_RIGHT)
				{
					xPos -= 30;
				}
				else
				{
					xPos += 10;
				}

				cocos2d::Point randPos(xPos, static_cast<float>(player->getInfo().m_Size.height / 2 - rand() % 10));

				GET_EFFECT_MANAGER()->createEffect(ET_SMOKE, player->getPosition() + randPos)->enter();
			}
		}
	}
	else if (GET_GAME_MANAGER()->getMicroSecondTime() - m_StartTime < 4000)
	{
		if (!m_MakeParalysis)
		{
			auto effect = GET_EFFECT_MANAGER()->createEffect(ET_PARALYSIS, getPosition());

			effect->setChasingPlayer(true);
			effect->enter();

			m_MakeParalysis = true;
		}
	}
	else
	{
		m_IsDead = true;
	}
}
コード例 #5
0
ファイル: BossTimeOut.cpp プロジェクト: Chonger8888/project
void BossTimeOut::Fallingstone()
{
	//³å´Ì²»µôÂä
	bool isSpeedUp = GameData::getInstance()->getisSpeedUp();
	if (isSpeedUp)
	{
		unschedule(schedule_selector(BossTimeOut::speedUp));
		return;
	}

	FallingStone* stone = FallingStone::create();
	stone->setPosition(randPos());
	UIController::getInstance()->getPhysicsLayer()->addChild(stone);

	StartTiming();
}
コード例 #6
0
void ParticleInstance::emitNewParticles(float p_DeltaTime)
{
	DirectX::XMFLOAT3 tempPos = DirectX::XMFLOAT3(m_SysPosition.x, m_SysPosition.y, m_SysPosition.z);
	DirectX::XMFLOAT4 tempColor = m_SysBaseColor;
	
	m_AccumulatedTime += p_DeltaTime;

	const float timePerParticle = 1.f / m_ParticleEffectDef->particlesPerSec;
	//check if new particles are to be emitted or not
	while (m_AccumulatedTime > timePerParticle)
	{
		

		m_AccumulatedTime -= timePerParticle;

		if (m_ParticleList.size() >= m_ParticleEffectDef->maxParticles)
		{
			break;
		}

		//Velocity
		std::uniform_real_distribution<float> velDistributionX(-m_ParticleEffectDef->velocityDeviation.x, m_ParticleEffectDef->velocityDeviation.x);
		std::uniform_real_distribution<float> velDistributionY(-m_ParticleEffectDef->velocityDeviation.y, m_ParticleEffectDef->velocityDeviation.y);
		std::uniform_real_distribution<float> velDistributionZ(-m_ParticleEffectDef->velocityDeviation.z, m_ParticleEffectDef->velocityDeviation.z);
		DirectX::XMFLOAT3 randVel(
			m_ParticleEffectDef->velocitybase.x + velDistributionX(m_RandomEngine),		
			m_ParticleEffectDef->velocitybase.y + velDistributionY(m_RandomEngine),
			m_ParticleEffectDef->velocitybase.z + velDistributionZ(m_RandomEngine));

		DirectX::XMMATRIX tempRotationM = DirectX::XMMatrixRotationRollPitchYaw(m_SysRotation.y, 
																				m_SysRotation.x, 
																				m_SysRotation.z);
		DirectX::XMVECTOR tempVEC = DirectX::XMLoadFloat3(&randVel);

		tempVEC = DirectX::XMVector3Transform(tempVEC, tempRotationM);

		DirectX::XMStoreFloat3(&randVel, tempVEC);

		//Position
		std::uniform_real_distribution<float> posDistribution(-m_ParticleEffectDef->particlePositionDeviation, m_ParticleEffectDef->particlePositionDeviation);
		DirectX::XMFLOAT3 randPos(
			tempPos.x + posDistribution(m_RandomEngine),
			tempPos.y + posDistribution(m_RandomEngine),
			tempPos.z + posDistribution(m_RandomEngine));

		//Life
		std::uniform_real_distribution<float> lifeDistribution(-m_ParticleEffectDef->maxLifeDeviation, m_ParticleEffectDef->maxLifeDeviation);
		float randMaxLife = m_ParticleEffectDef->maxLife + lifeDistribution(m_RandomEngine);

		//Color
		std::uniform_real_distribution<float> oneToOneDistribution(-1.f, 1.f);
		DirectX::XMFLOAT4 randColorOffset(
			tempColor.x + oneToOneDistribution(m_RandomEngine) * m_ParticleEffectDef->particleColorDeviation.x,
			tempColor.y + oneToOneDistribution(m_RandomEngine) * m_ParticleEffectDef->particleColorDeviation.y,
			tempColor.z + oneToOneDistribution(m_RandomEngine) * m_ParticleEffectDef->particleColorDeviation.z,
			tempColor.w + oneToOneDistribution(m_RandomEngine) * m_ParticleEffectDef->particleColorDeviation.w);

		//Put all the new data for the new particle into one container
		Particle tempParticle(randPos, randVel, randColorOffset, m_ParticleEffectDef->size, 0.f, randMaxLife);

		//Add the new particle to the others in the same system
		m_ParticleList.push_back(tempParticle);
	}
}
コード例 #7
0
ファイル: MxyVBOTree.cpp プロジェクト: jackball2008/ACW
//[-1,1]
static float randf(){
	return randPos() * 2.0f - 1.0f;
}