Config增加碰撞体可视化和默认碰撞体类型的配置
This commit is contained in:
parent
5ccae4a308
commit
90d5196c4a
|
|
@ -5,6 +5,8 @@ e2d::Config::Config()
|
|||
: _gameName()
|
||||
, _nodeDefPivot()
|
||||
, _collisionEnabled(false)
|
||||
, _colliderVisiable(false)
|
||||
, _nodeDefColliderType(Collider::Type::None)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -30,6 +32,16 @@ void e2d::Config::setNodeDefaultPivot(Point pivot)
|
|||
);
|
||||
}
|
||||
|
||||
void e2d::Config::setDefaultColliderType(Collider::Type type)
|
||||
{
|
||||
_nodeDefColliderType = type;
|
||||
}
|
||||
|
||||
void e2d::Config::setColliderVisiable(bool visiable)
|
||||
{
|
||||
_colliderVisiable = visiable;
|
||||
}
|
||||
|
||||
e2d::String e2d::Config::getGameName() const
|
||||
{
|
||||
return _gameName;
|
||||
|
|
@ -44,3 +56,13 @@ e2d::Point e2d::Config::getNodeDefaultPivot() const
|
|||
{
|
||||
return _nodeDefPivot;
|
||||
}
|
||||
|
||||
e2d::Collider::Type e2d::Config::getDefaultColliderType() const
|
||||
{
|
||||
return _nodeDefColliderType;
|
||||
}
|
||||
|
||||
bool e2d::Config::isColliderVisiable() const
|
||||
{
|
||||
return _colliderVisiable;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
e2d::Scene::Scene()
|
||||
: _autoUpdate(true)
|
||||
, _colliderVisiable(false)
|
||||
, _root(nullptr)
|
||||
{
|
||||
_root = Create<Node>();
|
||||
|
|
@ -27,7 +26,7 @@ void e2d::Scene::_render()
|
|||
{
|
||||
_root->_render();
|
||||
|
||||
if (_colliderVisiable)
|
||||
if (Game::getInstance()->getConfig()->isColliderVisiable())
|
||||
{
|
||||
// 恢复矩阵转换
|
||||
Renderer::getInstance()->getRenderTarget()->SetTransform(D2D1::Matrix3x2F::Identity());
|
||||
|
|
@ -90,11 +89,6 @@ e2d::Node * e2d::Scene::getRoot() const
|
|||
return _root;
|
||||
}
|
||||
|
||||
void e2d::Scene::showCollider(bool visiable)
|
||||
{
|
||||
_colliderVisiable = visiable;
|
||||
}
|
||||
|
||||
void e2d::Scene::onDestroy()
|
||||
{
|
||||
GC::release(_root);
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
#include "..\e2daction.h"
|
||||
#include <algorithm>
|
||||
|
||||
static e2d::Collider::Type s_fDefaultColliderType = e2d::Collider::Type::None;
|
||||
|
||||
e2d::Node::Node()
|
||||
: _nOrder(0)
|
||||
|
|
@ -33,11 +32,13 @@ e2d::Node::Node()
|
|||
, _positionFixed(false)
|
||||
, _colliderType(Collider::Type::None)
|
||||
{
|
||||
Point defPivot = Game::getInstance()->getConfig()->getNodeDefaultPivot();
|
||||
auto config = Game::getInstance()->getConfig();
|
||||
// 设置默认中心点位置
|
||||
Point defPivot = config->getNodeDefaultPivot();
|
||||
this->_pivotX = float(defPivot.x);
|
||||
this->_pivotY = float(defPivot.y);
|
||||
|
||||
this->setColliderType(s_fDefaultColliderType);
|
||||
// 设置默认碰撞体类型
|
||||
this->setColliderType(config->getDefaultColliderType());
|
||||
}
|
||||
|
||||
e2d::Node::~Node()
|
||||
|
|
@ -907,11 +908,6 @@ void e2d::Node::setAutoUpdate(bool bAutoUpdate)
|
|||
_autoUpdate = bAutoUpdate;
|
||||
}
|
||||
|
||||
void e2d::Node::setDefaultCollider(Collider::Type type)
|
||||
{
|
||||
s_fDefaultColliderType = type;
|
||||
}
|
||||
|
||||
void e2d::Node::onDestroy()
|
||||
{
|
||||
ActionManager::__clearAllBindedWith(this);
|
||||
|
|
|
|||
104
core/e2dcommon.h
104
core/e2dcommon.h
|
|
@ -468,46 +468,6 @@ private:
|
|||
};
|
||||
|
||||
|
||||
// 游戏配置
|
||||
class Config :
|
||||
public Object
|
||||
{
|
||||
public:
|
||||
Config();
|
||||
|
||||
virtual ~Config();
|
||||
|
||||
// 修改游戏名称
|
||||
void setGameName(
|
||||
const String& name
|
||||
);
|
||||
|
||||
// 打开或关闭碰撞监听(默认关闭)
|
||||
void setCollisionEnabled(
|
||||
bool enabled
|
||||
);
|
||||
|
||||
// 设置节点的默认中心点位置
|
||||
void setNodeDefaultPivot(
|
||||
Point pivot
|
||||
);
|
||||
|
||||
// 获取游戏名称
|
||||
String getGameName() const;
|
||||
|
||||
// 获取碰撞监听状态
|
||||
bool isCollisionEnabled() const;
|
||||
|
||||
// 获取节点的默认中心点位置
|
||||
Point getNodeDefaultPivot() const;
|
||||
|
||||
protected:
|
||||
String _gameName;
|
||||
Point _nodeDefPivot;
|
||||
bool _collisionEnabled;
|
||||
};
|
||||
|
||||
|
||||
// 图片
|
||||
class Image :
|
||||
public Object
|
||||
|
|
@ -692,7 +652,6 @@ protected:
|
|||
|
||||
protected:
|
||||
bool _autoUpdate;
|
||||
bool _colliderVisiable;
|
||||
Node * _root;
|
||||
};
|
||||
|
||||
|
|
@ -786,6 +745,69 @@ protected:
|
|||
};
|
||||
|
||||
|
||||
// 游戏配置
|
||||
class Config :
|
||||
public Object
|
||||
{
|
||||
public:
|
||||
Config();
|
||||
|
||||
virtual ~Config();
|
||||
|
||||
// 修改游戏名称
|
||||
// 默认:空
|
||||
void setGameName(
|
||||
const String& name
|
||||
);
|
||||
|
||||
// 打开或关闭碰撞监听
|
||||
// 默认:关闭
|
||||
void setCollisionEnabled(
|
||||
bool enabled
|
||||
);
|
||||
|
||||
// 设置节点的默认中心点位置
|
||||
// 默认:(0,0)
|
||||
void setNodeDefaultPivot(
|
||||
Point pivot
|
||||
);
|
||||
|
||||
// 设置节点的默认碰撞体类型
|
||||
// 默认:Collider::Type::None
|
||||
void setDefaultColliderType(
|
||||
Collider::Type type
|
||||
);
|
||||
|
||||
// 打开或关闭碰撞体可视化
|
||||
// 默认:关闭
|
||||
void setColliderVisiable(
|
||||
bool visiable
|
||||
);
|
||||
|
||||
// 获取游戏名称
|
||||
String getGameName() const;
|
||||
|
||||
// 获取碰撞监听状态
|
||||
bool isCollisionEnabled() const;
|
||||
|
||||
// 获取节点的默认中心点位置
|
||||
Point getNodeDefaultPivot() const;
|
||||
|
||||
// 获取节点的默认碰撞体类型
|
||||
Collider::Type getDefaultColliderType() const;
|
||||
|
||||
// 获取碰撞体可视化状态
|
||||
bool isColliderVisiable() const;
|
||||
|
||||
protected:
|
||||
bool _collisionEnabled;
|
||||
bool _colliderVisiable;
|
||||
String _gameName;
|
||||
Point _nodeDefPivot;
|
||||
Collider::Type _nodeDefColliderType;
|
||||
};
|
||||
|
||||
|
||||
#if _MSC_VER > 1700
|
||||
|
||||
// 创建可自动回收内存的对象
|
||||
|
|
|
|||
|
|
@ -377,11 +377,6 @@ public:
|
|||
// 停止所有动作
|
||||
virtual void stopAllActions();
|
||||
|
||||
// 设置节点的默认碰撞体类型(默认 None)
|
||||
static void setDefaultCollider(
|
||||
Collider::Type type
|
||||
);
|
||||
|
||||
// 销毁对象
|
||||
virtual void onDestroy() override;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue