性能优化
This commit is contained in:
parent
cc300aeb7c
commit
6c921079ac
|
|
@ -69,7 +69,7 @@ void e2d::Game::start()
|
||||||
|
|
||||||
if (_config.isVSyncEnabled() || _frameInterval < interval)
|
if (_config.isVSyncEnabled() || _frameInterval < interval)
|
||||||
{
|
{
|
||||||
_last += _frameInterval;
|
_last = _now;
|
||||||
__update();
|
__update();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -47,8 +47,7 @@ void e2d::CollisionManager::__updateCollider(Collider* collider)
|
||||||
{
|
{
|
||||||
if (Game::getInstance()->isPaused() ||
|
if (Game::getInstance()->isPaused() ||
|
||||||
!Game::getInstance()->getConfig().isCollisionEnabled() ||
|
!Game::getInstance()->getConfig().isCollisionEnabled() ||
|
||||||
SceneManager::getInstance()->isTransitioning() ||
|
SceneManager::getInstance()->isTransitioning())
|
||||||
!collider->isCollisionNotify())
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (size_t i = 0; i < _colliders.size(); i++)
|
for (size_t i = 0; i < _colliders.size(); i++)
|
||||||
|
|
|
||||||
|
|
@ -175,8 +175,10 @@ void e2d::Button::setClickFunc(const Function& func)
|
||||||
_func = func;
|
_func = func;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Button::_fixedUpdate()
|
void e2d::Button::_update()
|
||||||
{
|
{
|
||||||
|
Node::_update();
|
||||||
|
|
||||||
if (SceneManager::getInstance()->isTransitioning())
|
if (SceneManager::getInstance()->isTransitioning())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -122,14 +122,18 @@ void e2d::Node::_updateSelf()
|
||||||
if (_needTransform)
|
if (_needTransform)
|
||||||
{
|
{
|
||||||
updateTransform();
|
updateTransform();
|
||||||
CollisionManager::getInstance()->__updateCollider(&_collider);
|
if (_collider.isEnabled() &&
|
||||||
|
_collider.isCollisionNotify() &&
|
||||||
|
_collider.getShape() != Collider::Shape::None)
|
||||||
|
{
|
||||||
|
CollisionManager::getInstance()->__updateCollider(&_collider);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_autoUpdate && !Game::getInstance()->isPaused())
|
if (_autoUpdate && !Game::getInstance()->isPaused())
|
||||||
{
|
{
|
||||||
this->onUpdate();
|
this->onUpdate();
|
||||||
}
|
}
|
||||||
this->_fixedUpdate();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Node::_render()
|
void e2d::Node::_render()
|
||||||
|
|
|
||||||
|
|
@ -408,33 +408,30 @@ protected:
|
||||||
E2D_DISABLE_COPY(Node);
|
E2D_DISABLE_COPY(Node);
|
||||||
|
|
||||||
// 更新节点
|
// 更新节点
|
||||||
void _update();
|
virtual void _update();
|
||||||
|
|
||||||
// 更新自身
|
// 更新自身
|
||||||
void _updateSelf();
|
virtual void _updateSelf();
|
||||||
|
|
||||||
// 渲染节点
|
// 渲染节点
|
||||||
void _render();
|
virtual void _render();
|
||||||
|
|
||||||
// 渲染节点轮廓
|
// 渲染节点轮廓
|
||||||
void _renderOutline();
|
virtual void _renderOutline();
|
||||||
|
|
||||||
// 渲染碰撞体轮廓
|
// 渲染碰撞体轮廓
|
||||||
void _renderCollider();
|
virtual void _renderCollider();
|
||||||
|
|
||||||
// 设置节点所在场景
|
// 设置节点所在场景
|
||||||
void _setParentScene(
|
virtual void _setParentScene(
|
||||||
Scene * scene
|
Scene * scene
|
||||||
);
|
);
|
||||||
|
|
||||||
// 子节点排序
|
// 子节点排序
|
||||||
void _sortChildren();
|
virtual void _sortChildren();
|
||||||
|
|
||||||
// 更新节点透明度
|
// 更新节点透明度
|
||||||
void _updateOpacity();
|
virtual void _updateOpacity();
|
||||||
|
|
||||||
// 提供给子类的更新函数
|
|
||||||
virtual void _fixedUpdate() {}
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
String _name;
|
String _name;
|
||||||
|
|
@ -821,15 +818,15 @@ protected:
|
||||||
// 按钮状态枚举
|
// 按钮状态枚举
|
||||||
enum class ButtonState { Normal, Mouseover, Selected };
|
enum class ButtonState { Normal, Mouseover, Selected };
|
||||||
|
|
||||||
|
// 更新节点
|
||||||
|
virtual void _update() override;
|
||||||
|
|
||||||
// 设置按钮状态
|
// 设置按钮状态
|
||||||
virtual void _setState(ButtonState state);
|
virtual void _setState(ButtonState state);
|
||||||
|
|
||||||
// 刷新按钮显示
|
// 刷新按钮显示
|
||||||
virtual void _updateVisible();
|
virtual void _updateVisible();
|
||||||
|
|
||||||
// 更新按钮状态
|
|
||||||
virtual void _fixedUpdate() override;
|
|
||||||
|
|
||||||
// 执行按钮函数对象
|
// 执行按钮函数对象
|
||||||
virtual void _runCallback();
|
virtual void _runCallback();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue