Ejemplo n.º 1
0
void World::initResource()
{
	// skybox
	skybox.init("SkyBox", Const::SKYBOX_SIZE);
	// ring
	ring.init("Ring", Const::RING_SCALE);
	// particles
	Particles::loadResource();
	initPlanets();
	initShips();
	initBullets();
}
Ejemplo n.º 2
0
WorldTestUnitAi :: WorldTestUnitAi ()
		: m_orrery(),
		  mp_explosion_manager(new ExplosionManager()),
		  m_ring_particle_count(RING_PARTICLE_COUNT_DEFAULT),
		  m_target(ID_TARGET,
		           Vector3::ZERO, Vector3::ZERO,
		           g_ship_list, SHIP_SCALE,
		           1.0f, 0,
		           TARGET_SPEED_MAX, TARGET_ACCELERATION, TARGET_ROTATION_RATE),
		  m_target_disappear_time(0.0),
		  m_target_shot_count(0),
		  m_target_collision_count(0),
		  m_agent(ID_AGENT,
		          Vector3::ZERO, Vector3::ZERO,
		          g_ship_list, SHIP_SCALE,
		          1.0f, 0,
		          AGENT_SPEED_MAX, AGENT_ACCELERATION, AGENT_ROTATION_RATE),
		  m_agent_collision_last(PhysicsObjectId::ID_NOTHING),
		  m_agent_collision_count(0),
		  m_agent_ai_time_cumulative(0.0f),
		  m_agent_bullet_count(0),
		  m_next_bullet(0),
		  m_next_simple_marker(0)
{
	assert(isModelsLoaded());

	static const Vector3 EPICYCLE1_AXIS = Vector3( 1.0, 4.0,  0.0).getNormalized();
	static const Vector3 EPICYCLE2_AXIS = Vector3( 0.0, 3.0,  1.0).getNormalized();
	static const Vector3 EPICYCLE5_AXIS = Vector3(-1.0, 0.0, -1.0).getNormalized();

	// main circle
	m_orrery.addEpicycle(Vector3( 0.0,  1.0,  0.0), 3000.0,  0.025, Vector3(0.75, 0.75, 0.75));
	// variantions in main
	m_orrery.addEpicycle(EPICYCLE1_AXIS,             750.0,  0.15,  Vector3(0.75, 0.25, 0.75));
	m_orrery.addEpicycle(EPICYCLE2_AXIS,             600.0,  0.2,   Vector3(0.25, 0.25, 0.75));
	// smaller dodging
	m_orrery.addEpicycle(Vector3(-1.0,  0.0,  0.0),  125.0,  0.5,   Vector3(0.25, 0.75, 0.75));
	m_orrery.addEpicycle(Vector3( 0.0,  0.0, -1.0),  100.0,  0.8,   Vector3(0.25, 0.75, 0.25));
	m_orrery.addEpicycle(EPICYCLE5_AXIS,              75.0,  1.0,   Vector3(0.75, 0.75, 0.25));
	m_orrery.addEpicycle(Vector3( 0.0, -1.0,  0.0),   50.0,  1.25,  Vector3(0.75, 0.25, 0.25));

	assert(mp_explosion_manager != NULL);
	mp_explosion_manager->init("Explode1.bmp", 15);

	initBullets();

	reset();

	assert(invariant());
}