refactor: 将纹理加载逻辑从update方法移至初始化方法
将纹理加载和设置操作从每帧执行的update方法移动到createImageSprite初始化方法中,避免每帧重复加载资源,提高运行效率。
This commit is contained in:
parent
3c0743eb64
commit
31e856f397
|
|
@ -14,18 +14,6 @@ public:
|
||||||
|
|
||||||
void update(float dt) override {
|
void update(float dt) override {
|
||||||
Scene::update(dt);
|
Scene::update(dt);
|
||||||
auto *rhiModule = RHIModule::get();
|
|
||||||
if (!rhiModule || !rhiModule->getDevice()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
auto assets = getAssets();
|
|
||||||
if (!assets || !spriteRenderer_) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
auto texture = assets->load<Texture>("assets/test.png");
|
|
||||||
if (texture.isValid()) {
|
|
||||||
spriteRenderer_->setTexture(texture);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
@ -41,6 +29,9 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
void createImageSprite() {
|
void createImageSprite() {
|
||||||
|
auto assets = getAssets();
|
||||||
|
auto texture = assets->load<Texture>("assets/test.png");
|
||||||
|
|
||||||
auto spriteNode = makePtr<Node>();
|
auto spriteNode = makePtr<Node>();
|
||||||
spriteNode->setName("ImageSprite");
|
spriteNode->setName("ImageSprite");
|
||||||
spriteNode->setPosition(640.0f, 360.0f);
|
spriteNode->setPosition(640.0f, 360.0f);
|
||||||
|
|
@ -48,6 +39,9 @@ private:
|
||||||
spriteRenderer_ = makePtr<SpriteRenderer>();
|
spriteRenderer_ = makePtr<SpriteRenderer>();
|
||||||
spriteNode->addComponent(spriteRenderer_);
|
spriteNode->addComponent(spriteRenderer_);
|
||||||
addChild(spriteNode);
|
addChild(spriteNode);
|
||||||
|
if (texture.isValid()) {
|
||||||
|
spriteRenderer_->setTexture(texture);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Ptr<SpriteRenderer> spriteRenderer_;
|
Ptr<SpriteRenderer> spriteRenderer_;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue