void PmpComponentManager::negotiateRole()
{
    LOG4CPLUS_TRACE_METHOD(mLogger, __PRETTY_FUNCTION__ );

    genRandomNumber();
    mInteractionProtocol->sessionProtocol()->sendNegotiateNumber(mRoleNubmer);
}
KDL::JntArray KDLArmKinematicsPlugin::getRandomConfiguration()
{
  KDL::JntArray jnt_array;
  jnt_array.resize(dimension_);
  for(unsigned int i=0; i < dimension_; i++)
    jnt_array(i) = genRandomNumber(joint_min_(i),joint_max_(i));
  return jnt_array;
}
void SideScroller::Update(float elapsed) {
	if (state == STATE_TITLE)
	{
		return;
	}
	else if (state == STATE_GAME)
	{
		if (enemySpawnTimer > 0.8f && enemies.size() < 50) {
			Enemy* tempEnemy = new PewRunner(tex);
			tempEnemy->y = player->y + 4.0f;
			tempEnemy->x = player->x + 10.0f;
			tempEnemy->setScale(2.5f);
			if (genRandomNumber(0.0f, 1.0f) > 0.93f) {
				//Grant him knighthood
				tempEnemy->hp += 30;
				Weapon* weapon = new Weapon(tex);
				weapon->changeWeapon(SWORD);
				tempEnemy->equip(weapon);
				entities.push_back(weapon);
			}

			tempEnemy->setWalkLeft(0.8f);

			enemies.push_back(tempEnemy);
			entities.push_back(tempEnemy);
			
			enemySpawnTimer = genRandomNumber(0.0f, 0.75f);
		}

		for (size_t i = 0; i < entities.size(); i++) {
			entities[i]->Update(elapsed);
		}

		for (size_t i = 0; i < projectiles.size(); i++) {
			projectiles[i]->Update(elapsed);
		}

		enemySpawnTimer += elapsed;
	}
}
Exemple #4
0
Asteroids::Asteroids() {
	Init();
	srand(time(NULL));
	done = false;
	lastFrameTicks = 0.0f;
	timeLeftOver = 0.0f;

	gravity_x = 0.0f;
	gravity_y = 0.0f;

	bulletIndex = 0;
	shootTimer = 0.1f;

	spriteSheetTexture = LoadTexture("sheet.png");
	bulletSprite = SheetSprite(spriteSheetTexture, 425.0f / 1024.0f, 468.0f / 1024.0f, 93.0f / 1024.0f, 84.0f / 1024.0f);

	SheetSprite playerSprite = SheetSprite(spriteSheetTexture, 425.0f / 1024.0f, 468.0f / 1024.0f, 93.0f / 1024.0f, 84.0f / 1024.0f);
	player = new Player();
	player->sprite = playerSprite;
	player->scale_x = 1.0f;
	player->scale_y = 1.0f;
	player->x = 0.0f;
	player->y = 0.0f;
	player->friction_x = 3.0f;
	player->friction_y = 3.0f;
	entities.push_back(player);

	SheetSprite asteroidSprite = SheetSprite(spriteSheetTexture, 224.0f / 1024.0f, 664.0f / 1024.0f, 101.0f / 1024.0f, 84.0f / 1024.0f);
	for (int i = 0; i < 20; i++) {
		Entity* asteroid = new Entity();
		asteroid->sprite = asteroidSprite;
		float scale = genRandomNumber(0.7f, 1.5f);
		asteroid->scale_x = scale;
		asteroid->scale_y = scale;
		asteroid->x = genRandomNumber(-1.33f, 1.33f);
		asteroid->y = genRandomNumber(-1.0f, 1.0f);
		asteroid->rotation = genRandomNumber(-90.0f, 90.0f);
		asteroid->velocity_x = genRandomNumber(-0.15f, 0.15f);
		asteroid->velocity_y = genRandomNumber(-0.15f, 0.15f);
		entities.push_back(asteroid);
	}

	ParticleEmitter demoParticles(300);
	demoParticles.maxLifetime = 1.0f;
	demoParticles.position = Vector(0.0f, 0.5f, 0.0f);
	demoParticles.velocity = Vector(0.8f, 0.5f, 0.0f);
	demoParticles.velocityDeviation = Vector(0.5f, 1.5f, 0.0f);
	particleEmitters.push_back(demoParticles);
	


	gunshot = Mix_LoadWAV("gunshot.wav");
	music = Mix_LoadMUS("music.wav");
	if (Mix_PlayMusic(music, -1) < 0) {
		cout << "Error";
	}

}
Exemple #5
0
void Asteroids::FixedUpdate(float fixedElapsed) {

	player->scale_y = mapValue(fabs(player->velocity_y), 0.0, 5.0, 1.0, 1.6);
	player->scale_x = mapValue(fabs(player->velocity_y), 5.0, 0.0, 0.8, 1.0);

	for (size_t i = 0; i < entities.size(); i++) {
		entities[i]->FixedUpdate();

		
		

		if (!entities[i]->isStatic) {
			entities[i]->velocity_x += gravity_x * FIXED_TIMESTEP;
			entities[i]->velocity_y += gravity_y * FIXED_TIMESTEP;
		}


		entities[i]->velocity_x = lerp(entities[i]->velocity_x, 0.0f, FIXED_TIMESTEP * entities[i]->friction_x);
		entities[i]->velocity_y = lerp(entities[i]->velocity_y, 0.0f, FIXED_TIMESTEP * entities[i]->friction_y);

		entities[i]->velocity_x += entities[i]->acceleration_x * FIXED_TIMESTEP;
		entities[i]->velocity_y += entities[i]->acceleration_y * FIXED_TIMESTEP;

		if (!entities[i]->isStatic) {
			for (size_t j = 0; j < entities.size(); j++) {
				if (checkCollision(entities[i], entities[j])) {
					Vector distance = Vector(entities[i]->x - entities[j]->x, entities[i]->y - entities[j]->y, 0.0f);
					float distLength = distance.length();
					distance.normalize();

					entities[i]->x += distance.x * 0.0001f / pow(distLength, 2);
					entities[i]->y += distance.y * 0.0001f / pow(distLength, 2);

					entities[j]->x -= distance.x * 0.0001f / pow(distLength, 2);
					entities[j]->y -= distance.y * 0.0001f / pow(distLength, 2);
				}
			}
			
		}

		entities[i]->y += entities[i]->velocity_y * -cos(entities[i]->rotation) * FIXED_TIMESTEP;
		entities[i]->x += entities[i]->velocity_x * sin(entities[i]->rotation) * FIXED_TIMESTEP;
		

	}

	for (int i = 1; i < entities.size(); i++) {
		//enemy gets hit
		for (int k = 0; k < MAX_BULLETS; k++) {
			if (bullets[k].visible && checkCollision(entities[i], &bullets[k]) ) {
				bullets[k].visible = false;

				ParticleEmitter demoParticles(300);
				demoParticles.maxLifetime = 1.0f;
				demoParticles.position = Vector(entities[i]->x, entities[i]->y, 0.0f);
				demoParticles.velocity = Vector(sin(player->rotation)*bullets[k].velocity_x/2, -cos(player->rotation)*bullets[k].velocity_y/2, 0.0f);
				demoParticles.velocityDeviation = Vector(0.5f, 1.5f, 0.0f);
				particleEmitters.push_back(demoParticles);
				particleEmitters.back().trigger();

				if (entities[i]->scale_x < 1.0f) {
					delete entities[i];
					entities.erase(entities.begin() + i);
					break;
				}
				else {
					entities[i]->scale_x = entities[i]->scale_x * 0.67;
					entities[i]->scale_y = entities[i]->scale_y * 0.67;
					entities[i]->rotation = genRandomNumber(-90.0f, 90.0f);
				}
					
			
			}
		}
	}
}