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);  //これで描写
}

参考

ScoreLayerクラス