jubeon::storages::Resourceクラス - PastFantasy1640/jubeon GitHub Wiki
Resourceクラスについて
そのまま、リソースクラス。
使い方
ファイルから画像を読み込む場合
Resource test = Resource::setf("ファイル名",TEX);
Resource test2 = Resource::setf("ファイル名",TEX);
//これを実行しても、読み込まれるリソースはひとつだけ。
//重いリソースなら、ロード画面とかでロードしよう。
test.load();
//テクスチャが欲しいときは
sf::Texture t = test.gett();
Resource::setKey("テスト1のリソース",test);
Resource test3 = Resource::setk("テスト1のリソース");
具体的な使い方
LayerBaseクラスを継承したTestLayerクラスにて
class TestLayer : public jubeon::graphics::LayerBase{
private:
sf::Sprite xxxxx_sp; //Spriteを用意しておく。
public:
virtual void Init() override;
//void loadResources();
virtual void Draw() override;
virtual void Exit() override;
};
void TestLayer::Init(){
jubeon::storages::Resource::setf("ファイル名", jubeon::storages::Resource::TEX).setKey("TestLayer.xxxxx");
//リソース文字は自由に決められるが、基本的には、"クラス名.名前"の形にしてください。重複は厳禁です。
//重くないリソースの場合は、ここでgettを呼び出して、ロードとスプライトセットを一緒に行ってください。
this->xxxxx_sp.setTexture(*storages::Resource::setk("TestLayer.xxxxx").gett());
}
//もしもそのリソースがものすごく重いもので、読み込みに時間がかかる場合は、
//自前で関数をひとつ実装して、Loading中に別スレッドで動かしてください。
/*
void TestLayer::loadResources(){
storages::Resource::setk("TestLayer.xxxxx").gett(); //リソースが重い場合はここで読み込み。ブロック関数。
}
*/
void TestLayer::Draw(){
this->clearBuffer();
this->draw(this->xxxxx_sp); //これで描写
}