void BasicLevel::Update(double dt) { static double timeSinceClear = 0; //if (flock->NBoids() == 0) { spawnFlockTime -= dt; if (spawnFlockTime < 0) { spawnFlockTime = FLOCK_TIME; //timeSinceClear += dt; //if (timeSinceClear > 5) { //timeSinceClear = 0; Flock::Params flockparams; flockparams.spawn = SpawnLocation(); flockparams.swarmSize = 10; flockparams.radius = 20; flock = new Flock(flockparams); globals.gomgr->Add(flock); //} } if ((globals.player->GetPosition() - treasure->getWorldTransform().getOrigin()).Length() < 10) { globals.player->score += 256; SpawnTreasure(); } }
void BasicLevel::Start() { Terrain::Params terrainparams; terrainparams.heightMap = new R2Image("heightmap.jpg"); globals.terrain = new Terrain(terrainparams); globals.gomgr->Add(globals.terrain); Player::Params playerparams; playerparams.transform = R3identity_matrix; globals.gomgr->Add(new Player(playerparams)); Flock::Params flockparams; flockparams.spawn = SpawnLocation(); flockparams.swarmSize = 20; flockparams.radius = 20; flock = new Flock(flockparams); globals.gomgr->Add(flock); R3Material **mat = new R3Material*[4]; R3Material::Params fireParams; fireParams.lit = false; fireParams.kd = R2Pixel(0.1, .5, .8, 0); fireParams.additive = true; fireParams.textureName = "smoke_transparent.jpg"; mat[0] = new R3Material(fireParams); fireParams.kd = R2Pixel(0.1, .25, .6, 0); mat[1] = new R3Material(fireParams); fireParams.kd = R2Pixel(0.1, .25, .4, 0); mat[2] = new R3Material(fireParams); fireParams.kd = R2Pixel(0.1, .2, 0.2, 0); mat[3] = new R3Material(fireParams); R3ParticleSource *source = new R3ParticleSource(); source->shape = new R3Sphere(R3Point(0, 0, 0), 0.8); source->rate = 50; source->velocity = 2; source->angle_cutoff = .5; source->mass = 1; source->fixed = false; source->drag = 0.15; source->elasticity = 0; source->lifetime = 1.2; source->size = 1.3; source->materials = mat; treasure = new R3Node(new R3Sphere(R3null_point, 3), mat[0], R3Point(0, 10, 0)); globals.scene->root->AddChild(treasure); treasure->AttachSource(source); SpawnTreasure(); }
const FVector UGameObjectLibrary::_GetSpawnLocation(const FVector InLocation) { FVector SpawnLocation(InLocation.X, InLocation.Y, InLocation.Z + SPAWN_OFFSET_Z); return SpawnLocation; }