Adding bitmap fonts

This commit is contained in:
2023-03-14 18:55:10 -07:00
parent f5c5d1f49d
commit 9c9c64228a
17 changed files with 328 additions and 20 deletions

View File

@ -14,4 +14,7 @@ target_include_directories(${DAWN_TARGET_NAME}
# Subdirs
add_subdirectory(game)
add_subdirectory(save)
add_subdirectory(save)
# Assets
tool_bitmapfont(testbitmap bmfont.png 16 16)

View File

@ -6,24 +6,56 @@
#pragma once
#include "scene/Scene.hpp"
#include "prefabs/SimpleSpinningCubePrefab.hpp"
#include "scene/components/ui/UILabel.hpp"
#include "scene/components/ui/UIImage.hpp"
#include "display/font/BitmapFont.hpp"
namespace Dawn {
class HelloWorldScene : public Scene {
protected:
Camera *camera;
SimpleSpinningCubePrefab *cube;
UICanvas *canvas;
UILabel *label;
UIImage *image;
BitmapFont font;
void stage() override {
camera = Camera::create(this);
camera->transform->lookAt(glm::vec3(0, 0, 8), glm::vec3(0, 0, 0));
cube = SimpleSpinningCubePrefab::create(this);
canvas = UICanvas::create(this);
auto imageItem = this->createSceneItem();
image = imageItem->addComponent<UIImage>();
image->color = COLOR_BLACK;
imageItem->transform.setParent(canvas->transform);
auto labelItem = this->createSceneItem();
label = labelItem->addComponent<UILabel>();
labelItem->transform.setParent(canvas->transform);
auto assMan = &this->game->assetManager;
auto texture = assMan->get<TextureAsset>("testbitmap_texture");
auto tileset = assMan->get<TilesetAsset>("testbitmap_tileset");
this->font.texture = &texture->texture;
this->font.tileset = &tileset->tileset;
label->text = "Hello World, how are you today? I hope you are doing well. I really like the fact I can ramble in my text for once.";
label->font = &font;
label->maxWidth = 275;
image->alignment = glm::vec4(0, 0, label->getContentWidth(), label->getContentHeight());
}
std::vector<Asset*> getRequiredAssets() override {
auto assMan = &this->game->assetManager;
std::vector<Asset*> assets;
vectorAppend(&assets, SimpleSpinningCubePrefab::getRequiredAssets(assMan));
assets.push_back(assMan->get<TextureAsset>("testbitmap_texture"));
assets.push_back(assMan->get<TilesetAsset>("testbitmap_tileset"));
return assets;
}