本文整理汇总了C++中GameObject::CreateObject方法的典型用法代码示例。如果您正苦于以下问题:C++ GameObject::CreateObject方法的具体用法?C++ GameObject::CreateObject怎么用?C++ GameObject::CreateObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameObject
的用法示例。
在下文中一共展示了GameObject::CreateObject方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateNewWorld
void Project::CreateNewWorld(const std::string &worldPath) {
GameWorld world;
GameObject* root = world.CreateRoot();
GameObject* cube = root->CreateObject();
cube->AddComponent<Transform>();
cube->AddComponent<Mesh>()->GetMesh<Vertex>().AddCube(0, 1);
cube->AddComponent<Renderable>();
std::ofstream file;
file.open(worldPath);
root->ToJson(file);
file.close();
}
示例2: Initialize
void Initialize() {
root = world.CreateRoot();
root->CreateSystem<RenderSystem>();
root->CreateSystem<FontTextureSystem>();
root->CreateSystem<FirstPersonMoverSystem>();
root->CreateSystem<LabelMeshSystem>();
root->CreateSystem<ColorSystem>();
GameObject* camera = root->CreateObject();
camera->AddComponent<Camera>();
camera->AddComponent<Transform>()->Position = {0,0,5};
camera->AddComponent<FirstPersonMover>();
GameObject* font = root->CreateObject();
bool succes = font->AddComponent<Font>()->LoadTTF("/Library/Fonts/Times New Roman.ttf");//"/Users/Jeppe/Library/Fonts/NuevaStd-Bold_ttf.ttf");
if (!succes) {
std::cout << "Font could not be loaded"<<std::endl;
}
//font->GetComponent<Font>()->CharacterSetEverySize = 2;
font->AddComponent<TextureComponent>();
font->AddComponent<Renderable>()->BlendMode = BlendModeType::Alpha;
font->AddComponent<Mesh>()->GetMesh<Vertex>().AddQuad(0, 40, Colour::White());
//font->AddComponent<Transform>()->Position = {0,0,1};
{
label = root->CreateObject();
label->AddComponent<Transform>();
label->AddComponent<Sizeable>()->Size = {64,64};
label->AddComponent<Renderable>()->BlendMode = BlendModeType::Alpha;
label->AddComponent<TextureComponent>(font);
label->AddComponent<Mesh>();
label->AddComponent<Font>(font);
label->AddComponent<Label>()->Text = "Testing";
label->GetComponent<Label>()->FontSize = 12;
label->GetComponent<Label>()->WordWrap = false;
label->GetComponent<Label>()->HAlignment = Font::HAlignment::Center;
label->GetComponent<Label>()->VAlignment = Font::VAlignment::Middle;
label->AddComponent<Colorable>()->Color = Colour::Black();
}
{
label2 = root->CreateObject();
label2->AddComponent<Transform>()->Position = {0,12};
label2->AddComponent<Sizeable>()->Size = {120,64};
label2->AddComponent<Renderable>()->BlendMode = BlendModeType::Alpha;
label2->AddComponent<TextureComponent>(font);
//label2->AddComponent<Mesh>();
label2->AddComponent<Font>(font);
//label2->AddComponent<Label>()->Text = "Cubism, is a new puzzle game from Jeppe Nielsen";
//label2->GetComponent<Label>()->FontSize = 64;
//label2->GetComponent<Label>()->WordWrap = true;
}
{
GameObject* cube = root->CreateObject();
cube->AddComponent<Transform>()->Position = {32,32,-1};
cube->AddComponent<Mesh>()->GetMesh<Vertex>().AddCube(0, {32,32,0.02f});
cube->AddComponent<Renderable>();
}
{
GameObject* cube = root->CreateObject();
cube->AddComponent<Transform>()->Position = {1,0,0};
cube->AddComponent<Mesh>()->GetMesh<Vertex>().AddCube(0, {0.02f,6.0f,0.02f});
cube->AddComponent<Renderable>();
}
counter = 0;
timer = 2.0f;
Input.ButtonDown.Bind([font] (std::string button) {
font->GetComponent<Font>()->Clear();
//std::string path = "/Projects/PocketEngine/Games/TestFreeType/test.png";
//font->GetComponent<TextureComponent>()->Texture().SaveToPng(path, GL_RGBA);
});
}
示例3: CreateScene
void DacSceneFactory::CreateScene(GameManager & manager, GameObject & root)
{
// Game
auto gameController = make_shared<GameController>();
GameObject& bg = root.CreateObject("Background", 0, 0, "BackGround.jpg",gameController );
// Fuse
auto fuseController = make_shared<FuseController>();
fuseController->m_burnTime = TIME_LIMIT;
fuseController->m_points.push_back(Vector2d(0, 0));
fuseController->m_points.push_back(Vector2d(-12, -20));
fuseController->m_points.push_back(Vector2d(-8, -39));
fuseController->m_points.push_back(Vector2d(-51, -47));
fuseController->m_points.push_back(Vector2d(-54, -184));
fuseController->m_points.push_back(Vector2d(-87, -185));
GameObject& fuse = bg.CreateObject("Fuse", 263, 555, NULL, fuseController);
// Big Explosion
auto bigBoomController = make_shared<ParticlesController>();
bigBoomController->m_controllerLife = -1;
bigBoomController->m_assetName = "Explosion.png";
bigBoomController->m_burstSize = 0;
bigBoomController->m_velocity = 400;
bigBoomController->m_acceleration = -200;
bigBoomController->m_life = 3000;
bigBoomController->m_velocityNoise = 0.8f;
GameObject& bigBoom = bg.CreateObject("BigBoom", 129, 329, NULL, bigBoomController);
gameController->m_bigBoom = bigBoomController;
// Field
auto fieldController = make_shared<FieldController>();
fieldController->m_gameController = gameController;
fieldController->m_fuse = fuseController;
GameObject& field = bg.CreateObject("Field", 330, 107, NULL, fieldController );
gameController->m_field = fieldController;
// Score
TextRenderer* text = new TextRenderer(manager.GetRenderer());
text->SetFont(manager.LoadFont("Digital.ttf", 60), { 0xff, 0xff,0xff,0xff });
text->SetText("000000");
auto textPtr = shared_ptr<TextRenderer>(text);
GameObject& score = bg.CreateObject("Score", 20, 50, 180, 70, textPtr, NULL);
gameController->m_scoreText = textPtr;
// Timer
text = new TextRenderer(manager.GetRenderer());
text->SetFont(manager.LoadFont("Digital.ttf", 70), { 0xff, 0x55,0x00,0xff });
text->SetText("00");
auto timerText = shared_ptr<TextRenderer>(text);
GameObject& timer = bg.CreateObject("Timer", 75, 425, 180, 70, timerText, NULL);
gameController->m_timerText = timerText;
// Menu
SolidRenderer* solid = new SolidRenderer();
solid->SetColor(0, 0, 0, 220);
GameObject& menu = root.CreateObject("Menu", 0, 0, manager.SCREEN_WIDTH, manager.SCREEN_HEIGHT,
shared_ptr<SolidRenderer>(solid),NULL);
gameController->m_menu = menu.GetSharedPtr();
// Header text
text = new TextRenderer(manager.GetRenderer());
text->SetFont(manager.LoadFont("Digital.ttf", 90), { 0xff, 0xff,0xff,0xff });
text->SetText("Diamonds&Crystals");
GameObject& headerText = menu.CreateObject("Header", 20, 30, 0, 0, shared_ptr<TextRenderer>(text), NULL);
// Sign text
text = new TextRenderer(manager.GetRenderer());
text->SetFont(manager.LoadFont("Digital.ttf", 30), { 0xff, 0xff,0xff,0xff });
text->SetText("by Maxim Machekhin");
GameObject& signText = menu.CreateObject("Sign", 30, 120, 0, 0, shared_ptr<TextRenderer>(text), NULL);
// Best score text
text = new TextRenderer(manager.GetRenderer());
auto bestScorePtr = shared_ptr<TextRenderer>(text);
text->SetFont(manager.LoadFont("Digital.ttf", 30), { 0xff, 0xff,0xff,0xff });
text->SetText("Best score: 000000");
GameObject& bestScore = menu.CreateObject("BestScore", 120, 230, 0, 0, bestScorePtr, NULL);
gameController->m_bestScoreText = bestScorePtr;
// Button
solid = new SolidRenderer();
solid->SetColor(0xe0, 0xa0, 0x20, 0xff);
GameObject& startBtn = menu.CreateObject("StartButton", 280, 400, 200, 100,
shared_ptr<SolidRenderer>(solid), make_shared<MouseHoverController>());
gameController->m_btnStart = startBtn.GetSharedPtr();
// Button text
text = new TextRenderer(manager.GetRenderer());
text->SetFont(manager.LoadFont("Digital.ttf", 90), { 0x00, 0x00,0x00,0xff });
text->SetText("Start!");
GameObject& startBtnText = startBtn.CreateObject("StartButtonText", 8, 0, 180, 70, shared_ptr<TextRenderer>(text), NULL);
}