性能优化
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