這是使用蓋莫游戲引擎(2.1.1)設計的天空頂小例
天空頂比較類似天空面
具體代碼和圖片如下:
#include <GEngine/Gaimo.hpp>
using namespace std;
using namespace core;
int Main()
{
//! 初始化引擎設備并得到設備指針
RefPtr<Device> device = InitDevice("天空頂測試");
//! 得到引擎場景指針
RefPtr<SceneManager> scenemanager = device->GetSceneManager();
//! 得到引擎資源指針
RefPtr<ResourceManager> resourcemanager = device->GetResourceManager();
//! 獲取圖形管理器指針
RefPtr<ImageManager> imagemanager = resourcemanager->GetImageManager();
//! 得到視頻驅(qū)動器指針
RefPtr<VideoDriver> videodriver = device->GetVideoDriver();
//! 得到天空圖形和紋理
RefPtr<Image> image = imagemanager->CreateObject("sky","..\\image\\sky\\top.jpg");
RefPtr<Texture> texture = resourcemanager->GetTextureManager()->CreateTexture("sky",image);
//! 得到天空盒指針
SkyDomeDesc desc;
desc.texture = texture;
RefPtr<Renderable> sky = scenemanager->CreateSkyDome(desc);
//! 獲取攝像機指針
RefPtr<Camera> camera = scenemanager->GetCameraManager()->CreateCamera("camera",
Vector3f(),
Vector3f(100,60,0));
camera->SetViewPort(Recti(0,0,640,480));
camera->SetPerspective(45.0f,640.0f/480.0f,0.1f,600.0f);
//! 獲取霧指針
RefPtr<Fog> fog = resourcemanager->GetFog("..\\script//fog.lua","fog");
fog->Render();
BEGIN_LOOP(device)
videodriver->SetClearBuffer(ENGINE_CLEAR_COLOR | ENGINE_CLEAR_DEPTH);
camera->Render();
sky->Render();
END_LOOP(device)
return 0;
}