VN System improved.
This commit is contained in:
@ -4,9 +4,7 @@
|
||||
// https://opensource.org/licenses/MIT
|
||||
|
||||
#include "DawnGame.hpp"
|
||||
#include "asset/assets/TextureAsset.hpp"
|
||||
#include "asset/assets/TrueTypeAsset.hpp"
|
||||
#include "visualnovel/ui/VisualNovelTextbox.hpp"
|
||||
#include "scenes/TestScene.hpp"
|
||||
|
||||
using namespace Dawn;
|
||||
|
||||
@ -24,30 +22,7 @@ int32_t DawnGame::init() {
|
||||
this->assetManager.init();
|
||||
this->renderManager.init();
|
||||
|
||||
this->scene = new Scene(this);
|
||||
|
||||
auto cameraObject = this->scene->createSceneItem();
|
||||
auto camera = cameraObject->addComponent<Camera>();
|
||||
camera->transform->lookAt(glm::vec3(50, 50, 50), glm::vec3(0, 0, 0));
|
||||
|
||||
auto canvas = UICanvas::createCanvas(this->scene);
|
||||
|
||||
assetFont = this->assetManager.load<TrueTypeAsset>("truetype_ark");
|
||||
assetTexture = this->assetManager.load<TextureAsset>("texture_test");
|
||||
while(!assetFont->loaded || !assetTexture->loaded) {
|
||||
this->assetManager.update();
|
||||
}
|
||||
|
||||
auto textbox = canvas->addElement<VisualNovelTextbox>();
|
||||
textbox->setBorder(&assetTexture->texture, glm::vec2(16, 16));
|
||||
textbox->setFont(&assetFont->font);
|
||||
textbox->setText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus leo odio, egestas nec imperdiet ac, placerat eget quam. Nam tellus justo, aliquam sed porta quis, ullamcorper in libero. Proin auctor eget elit nec rutrum. Vestibulum tincidunt sem vel nisi sagittis, sed imperdiet eros aliquet. Fusce a ultrices augue, at auctor lacus. Sed lobortis, ante vitae vehicula egestas, lorem turpis cursus dui, sit amet egestas mauris ligula non ipsum. Pellentesque scelerisque posuere lorem sit amet tempor. Praesent ac hendrerit mi. Nulla mollis diam vitae vestibulum aliquam. Nullam metus justo, viverra sed risus eu, tincidunt sodales lacus. Quisque efficitur accumsan posuere. Aliquam posuere volutpat diam quis lacinia. Nullam blandit nulla vestibulum mi placerat varius. Proin egestas lacus nec pellentesque iaculis. Vestibulum ex metus, congue in eleifend et, scelerisque a nulla. Pellentesque cursus lectus sed arcu efficitur tincidunt. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nulla a felis non velit fermentum ullamcorper.", 40);
|
||||
textbox->setTransform(
|
||||
UI_COMPONENT_ALIGN_STRETCH, UI_COMPONENT_ALIGN_END,
|
||||
glm::vec4(0, 0, 0, 0),
|
||||
0.0f
|
||||
);
|
||||
textbox
|
||||
this->scene = TestScene::create(this);
|
||||
|
||||
return DAWN_GAME_INIT_RESULT_SUCCESS;
|
||||
}
|
||||
|
40
src/dawnpokergame/scenes/TestScene.hpp
Normal file
40
src/dawnpokergame/scenes/TestScene.hpp
Normal file
@ -0,0 +1,40 @@
|
||||
// Copyright (c) 2022 Dominic Masters
|
||||
//
|
||||
// This software is released under the MIT License.
|
||||
// https://opensource.org/licenses/MIT
|
||||
|
||||
#pragma once
|
||||
#include "scene/Scene.hpp"
|
||||
#include "game/DawnGame.hpp"
|
||||
#include "scene/components/Components.hpp"
|
||||
#include "ui/PokerGameTextbox.hpp"
|
||||
#include "visualnovel/VisualNovelManager.hpp"
|
||||
#include "visualnovel/events/VisualNovelTextboxEvent.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class TestScene {
|
||||
public:
|
||||
static Scene * create(DawnGame *game) {
|
||||
Scene *scene = new Scene(game);
|
||||
|
||||
// Camera
|
||||
auto camera = Camera::create(scene);
|
||||
camera->transform->lookAt(glm::vec3(50, 50, 50), glm::vec3(0, 0, 0));
|
||||
|
||||
// UI
|
||||
auto canvas = UICanvas::createCanvas(scene);
|
||||
auto textbox = PokerGameTextbox::create(canvas);
|
||||
|
||||
// VN Manager
|
||||
auto item = scene->createSceneItem();
|
||||
auto vnManager = item->addComponent<VisualNovelManager>();
|
||||
|
||||
vnManager
|
||||
->setEvent(new VisualNovelTextboxEvent(vnManager, "Bruh event"))
|
||||
->then(new VisualNovelTextboxEvent(vnManager, "Bruh event 2"))
|
||||
;
|
||||
|
||||
return scene;
|
||||
}
|
||||
};
|
||||
}
|
@ -4,7 +4,7 @@
|
||||
# https://opensource.org/licenses/MIT
|
||||
|
||||
# Sources
|
||||
target_sources(${DAWN_TARGET_NAME}
|
||||
PRIVATE
|
||||
PokerGameTextbox.cpp
|
||||
)
|
||||
# target_sources(${DAWN_TARGET_NAME}
|
||||
# PRIVATE
|
||||
# PokerGameTextbox.cpp
|
||||
# )
|
@ -1,12 +0,0 @@
|
||||
// Copyright (c) 2022 Dominic Masters
|
||||
//
|
||||
// This software is released under the MIT License.
|
||||
// https://opensource.org/licenses/MIT
|
||||
|
||||
#include "PokerGameTextbox.hpp"
|
||||
|
||||
using namespace Dawn;
|
||||
|
||||
std::shared_ptr<VisualNovelTextbox> PokerGameTextbox::makeTextbox() {
|
||||
return nullptr;
|
||||
}
|
@ -5,10 +5,28 @@
|
||||
|
||||
#pragma once
|
||||
#include "visualnovel/ui/VisualNovelTextbox.hpp"
|
||||
#include "asset/assets/TextureAsset.hpp"
|
||||
#include "asset/assets/TrueTypeAsset.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class PokerGameTextbox {
|
||||
public:
|
||||
static std::shared_ptr<VisualNovelTextbox> makeTextbox();
|
||||
static VisualNovelTextbox * create(UICanvas *canvas) {
|
||||
auto textbox = canvas->addElement<VisualNovelTextbox>();
|
||||
|
||||
auto assetFont = canvas->getGame()->assetManager.load<TrueTypeAsset>("truetype_ark");
|
||||
auto assetTexture = canvas->getGame()->assetManager.load<TextureAsset>("texture_test");
|
||||
|
||||
textbox->setBorder(&assetTexture->texture, glm::vec2(16, 16));
|
||||
textbox->setFont(&assetFont->font);
|
||||
textbox->setFontSize(40);
|
||||
textbox->setLabelPadding(glm::vec2(10, 8));
|
||||
textbox->setTransform(
|
||||
UI_COMPONENT_ALIGN_STRETCH, UI_COMPONENT_ALIGN_END,
|
||||
glm::vec4(0, 238, 0, 0),
|
||||
0.0f
|
||||
);
|
||||
return textbox;
|
||||
}
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user