当前位置: 首页>>代码示例>>C++>>正文


C++ GameObject::Add方法代码示例

本文整理汇总了C++中GameObject::Add方法的典型用法代码示例。如果您正苦于以下问题:C++ GameObject::Add方法的具体用法?C++ GameObject::Add怎么用?C++ GameObject::Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GameObject的用法示例。


在下文中一共展示了GameObject::Add方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Init

void DepthOfField::Init()
{
	// Initialization
	
		// Initialize Scene
		Scene = new SceneGraph();
		
		// Initialize Renderer
		Renderer = new ForwardRenderer(Width,Height);
		Renderer->SetBackground(Vec4(1,0,0,1));
		// Projection
		projection.Perspective(70.f,(f32)Width/(f32)Height,1.f,1000.f);
		
		// Create Camera
		Camera = new GameObject();
		Camera->SetPosition(Vec3(0,2,20));
		
		// Add a Directional Light
		Light = new GameObject();
		dLight = new DirectionalLight(Vec4(1, 1, 1, 1), Vec3(-1, -1, 0));
		Light->Add(dLight);

		Scene->Add(Light);

		// Create Game Object
		modelMesh = new Model("../../../../examples/DepthOfField/assets/suzanne.p3dm", false, ShaderUsage::Diffuse);
		
		for (uint32 i = 0; i < 10; i++)
		{
			GameObject* Monkey = new GameObject();
			Monkey->SetPosition(Vec3(-23.f + i * 3.f, 0, -15.f + i * 3.f));
			RenderingComponent* rMonkey = new RenderingComponent(modelMesh);
			Monkey->Add(rMonkey);
			Scene->Add(Monkey);

			go.push_back(Monkey);
			rc.push_back(rMonkey);
		}

		// Add Camera to Scene
		Scene->Add(Camera);

		Camera->LookAt(Vec3::ZERO);

		fullResBlur = new Texture();
		fullResBlur->CreateEmptyTexture(TextureType::Texture, TextureDataType::RGBA16F, Width, Height);
		fullResBlur->SetRepeat(TextureRepeat::ClampToEdge, TextureRepeat::ClampToEdge, TextureRepeat::ClampToEdge);
		lowResBlur = new Texture();
		lowResBlur->CreateEmptyTexture(TextureType::Texture, TextureDataType::RGBA16F, (int32)(Width*.25f), (int32)(Height*.25f));
		lowResBlur->SetRepeat(TextureRepeat::ClampToEdge, TextureRepeat::ClampToEdge, TextureRepeat::ClampToEdge);

		EffectManager = new PostEffectsManager(Width, Height);

		blurX = new BlurXEffect(RTT::Color, Width, Height);
		blurY = new BlurYEffect(RTT::LastRTT, Width, Height);
		fullResBlur = blurY->GetTexture();
		resize = new ResizeEffect(RTT::Color, (uint32)(Width*.25f), (uint32)(Height*.25f));
		blurXlow = new BlurXEffect(RTT::LastRTT, (uint32)(Width*.25f), (uint32)(Height*.25f));
		blurYlow = new BlurYEffect(RTT::LastRTT, (uint32)(Width*.25f), (uint32)(Height*.25f));
		lowResBlur = blurYlow->GetTexture();
		depthOfField = new DepthOfFieldEffect(lowResBlur, fullResBlur, Width, Height);

		EffectManager->AddEffect(blurX);
		EffectManager->AddEffect(blurY);
		EffectManager->AddEffect(resize);
		EffectManager->AddEffect(blurXlow);
		EffectManager->AddEffect(blurYlow);
		EffectManager->AddEffect(depthOfField);
}
开发者ID:Fuatnow,项目名称:Pyros3D,代码行数:69,代码来源:DepthOfField.cpp

示例2: Init

void SimplePhysics::Init()
{
    // Initialization
    
    // Initialize Scene
    Scene = new SceneGraph();

    // Initialize Renderer
    Renderer = new ForwardRenderer(Width,Height);

    // Projection
    projection.Perspective(70.f,(f32)Width/(f32)Height,1.f,500.f);

    // Create Camera
    Camera = new GameObject();
    Camera->SetPosition(Vec3(0,20.0,300));

    // Add Camera to Scene
    Scene->Add(Camera);

    // Physics
    physics = new Physics();
    physics->InitPhysics();

    // Add a Directional Light
    Light = new GameObject();
    dLight = new DirectionalLight(Vec4(1,1,1,1),Vec3(-1,-1,0));
    dLight->EnableCastShadows(1024,1024,projection,1,500,1);
    dLight->SetShadowBias(1.f,3.f);
    Light->Add(dLight);

    // Add Light to Scene
    Scene->Add(Light);

    // Create Materials
    Diffuse = new GenericShaderMaterial(ShaderUsage::Color | ShaderUsage::Diffuse | ShaderUsage::DirectionalShadow);
    Diffuse->SetColor(Vec4(0.8f,0.8f,0.8f,1.f));

    // Set Selected Mesh PTR NULL
    SelectedMesh = NULL;

    // Create Cubes
    srand( (unsigned int)time( NULL ) );

    // Create Geometry
    cubeHandle = new Cube(5,5,5);

    // Create 100 Cubes
#if !defined(GLES2)
    for (uint32 i=0;i<1000;i++)
#else
    for (uint32 i=0;i<100;i++)
#endif
    {
        // Create GameObject
        GameObject* Cube = new GameObject();
        // Add Cube to GameObjects List
        Cubes.push_back(Cube);
        // Create Rendering Component using Geometry Previously Created with AssetManager
        RenderingComponent* rCube = new RenderingComponent(cubeHandle, Diffuse);
        // Add Rendering Component to Rendering Components List
        rCubes.push_back(rCube);
        // Add Rendering Component to GameObject
        Cube->Add(rCube);
        // Create Physics Component
        IPhysicsComponent* pCube = (IPhysicsComponent*)physics->CreateBox(5,5,5,10);
        // Add Physics Component to Physics List
        pCubes.push_back(pCube);
        // Add Physics Component to GameObject
        Cube->Add(pCube);
        // Add GameObject to Scene
        Scene->Add(Cube);
        // Set Random Position to the GameObject
        Cube->SetPosition(Vec3((f32)(rand() % 100) -50.f, (f32)(rand() % 100)-50.f, (f32)(rand() % 100) -50.f));
    }

    // Create Floor
    Floor = new GameObject();
    // Create Geometry
    floorHandle = new Cube(100,3,100);

    // Create Floor Geometry
    rFloor = new RenderingComponent(floorHandle,Diffuse);

    // Create Floor Physics
    pFloor = (IPhysicsComponent*)physics->CreateBox(100,3,100,0);
    // Add Physics Component to GameObject
    Floor->Add(pFloor);
    
    // Add Rendering Component To GameObject
    Floor->Add(rFloor);

    // Add Floor to Scene
    Scene->Add(Floor);

    // Translate Floor
    Floor->SetPosition(Vec3(0,-100,0));
    
}
开发者ID:Fuatnow,项目名称:Pyros3D,代码行数:99,代码来源:SimplePhysics.cpp


注:本文中的GameObject::Add方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。