| 385 | } |
| 386 | |
| 387 | void Scene3DTestScene::createWorld3D() |
| 388 | { |
| 389 | // create skybox |
| 390 | |
| 391 | // create the second texture for cylinder |
| 392 | _textureCube = TextureCube::create("MeshRendererTest/skybox/left.jpg", "MeshRendererTest/skybox/right.jpg", |
| 393 | "MeshRendererTest/skybox/top.jpg", "MeshRendererTest/skybox/bottom.jpg", |
| 394 | "MeshRendererTest/skybox/front.jpg", "MeshRendererTest/skybox/back.jpg"); |
| 395 | // set texture parameters |
| 396 | Texture2D::TexParams tRepeatParams; |
| 397 | tRepeatParams.magFilter = backend::SamplerFilter::LINEAR; |
| 398 | tRepeatParams.minFilter = backend::SamplerFilter::LINEAR; |
| 399 | tRepeatParams.sAddressMode = backend::SamplerAddressMode::MIRROR_REPEAT; |
| 400 | tRepeatParams.tAddressMode = backend::SamplerAddressMode::MIRROR_REPEAT; |
| 401 | _textureCube->setTexParameters(tRepeatParams); |
| 402 | |
| 403 | // add skybox |
| 404 | _skyBox = Skybox::create(); |
| 405 | _skyBox->setCameraMask(s_CM[LAYER_BACKGROUND]); |
| 406 | _skyBox->setTexture(_textureCube); |
| 407 | |
| 408 | // create terrain |
| 409 | Terrain::DetailMap r("TerrainTest/dirt.jpg"); |
| 410 | Terrain::DetailMap g("TerrainTest/Grass2.jpg", 10); |
| 411 | Terrain::DetailMap b("TerrainTest/road.jpg"); |
| 412 | Terrain::DetailMap a("TerrainTest/GreenSkin.jpg", 20); |
| 413 | Terrain::TerrainData data("TerrainTest/heightmap16.jpg", "TerrainTest/alphamap.png", r, g, b, a, Size(32, 32), |
| 414 | 40.0f, 2); |
| 415 | _terrain = Terrain::create(data, Terrain::CrackFixedType::SKIRT); |
| 416 | _terrain->setMaxDetailMapAmount(4); |
| 417 | _terrain->setDrawWire(false); |
| 418 | |
| 419 | _terrain->setSkirtHeightRatio(3); |
| 420 | _terrain->setLODDistance(64, 128, 192); |
| 421 | |
| 422 | // create player |
| 423 | _player = Player::create("MeshRendererTest/girl.c3b", _gameCameras[CAMERA_WORLD_3D_SCENE], _terrain); |
| 424 | _player->setScale(0.08f); |
| 425 | _player->setPositionY(_terrain->getHeight(_player->getPositionX(), _player->getPositionZ())); |
| 426 | |
| 427 | auto animation = Animation3D::create("MeshRendererTest/girl.c3b", "Take 001"); |
| 428 | if (animation) |
| 429 | { |
| 430 | auto animate = Animate3D::create(animation); |
| 431 | _player->runAction(RepeatForever::create(animate)); |
| 432 | } |
| 433 | // add a particle 3d above player |
| 434 | auto rootps = |
| 435 | PUParticleSystem3D::create("Particle3D/scripts/blackHole.pu", "Particle3D/materials/pu_mediapack_01.material"); |
| 436 | rootps->setScale(2); |
| 437 | rootps->setPosition3D(Vec3(0, 150, 0)); |
| 438 | auto moveby = MoveBy::create(2.0f, Vec2(50.0f, 0.0f)); |
| 439 | auto moveby1 = MoveBy::create(2.0f, Vec2(-50.0f, 0.0f)); |
| 440 | rootps->runAction(RepeatForever::create(ax::Sequence::create(moveby, moveby1, nullptr))); |
| 441 | rootps->startParticleSystem(); |
| 442 | |
| 443 | _player->addChild(rootps, 0); |
| 444 |
nothing calls this directly
no test coverage detected