Config增加碰撞体可视化和默认碰撞体类型的配置
This commit is contained in:
parent
5ccae4a308
commit
90d5196c4a
|
|
@ -5,6 +5,8 @@ e2d::Config::Config()
|
||||||
: _gameName()
|
: _gameName()
|
||||||
, _nodeDefPivot()
|
, _nodeDefPivot()
|
||||||
, _collisionEnabled(false)
|
, _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
|
e2d::String e2d::Config::getGameName() const
|
||||||
{
|
{
|
||||||
return _gameName;
|
return _gameName;
|
||||||
|
|
@ -44,3 +56,13 @@ e2d::Point e2d::Config::getNodeDefaultPivot() const
|
||||||
{
|
{
|
||||||
return _nodeDefPivot;
|
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()
|
e2d::Scene::Scene()
|
||||||
: _autoUpdate(true)
|
: _autoUpdate(true)
|
||||||
, _colliderVisiable(false)
|
|
||||||
, _root(nullptr)
|
, _root(nullptr)
|
||||||
{
|
{
|
||||||
_root = Create<Node>();
|
_root = Create<Node>();
|
||||||
|
|
@ -27,7 +26,7 @@ void e2d::Scene::_render()
|
||||||
{
|
{
|
||||||
_root->_render();
|
_root->_render();
|
||||||
|
|
||||||
if (_colliderVisiable)
|
if (Game::getInstance()->getConfig()->isColliderVisiable())
|
||||||
{
|
{
|
||||||
// 恢复矩阵转换
|
// 恢复矩阵转换
|
||||||
Renderer::getInstance()->getRenderTarget()->SetTransform(D2D1::Matrix3x2F::Identity());
|
Renderer::getInstance()->getRenderTarget()->SetTransform(D2D1::Matrix3x2F::Identity());
|
||||||
|
|
@ -90,11 +89,6 @@ e2d::Node * e2d::Scene::getRoot() const
|
||||||
return _root;
|
return _root;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Scene::showCollider(bool visiable)
|
|
||||||
{
|
|
||||||
_colliderVisiable = visiable;
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::Scene::onDestroy()
|
void e2d::Scene::onDestroy()
|
||||||
{
|
{
|
||||||
GC::release(_root);
|
GC::release(_root);
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
#include "..\e2daction.h"
|
#include "..\e2daction.h"
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
static e2d::Collider::Type s_fDefaultColliderType = e2d::Collider::Type::None;
|
|
||||||
|
|
||||||
e2d::Node::Node()
|
e2d::Node::Node()
|
||||||
: _nOrder(0)
|
: _nOrder(0)
|
||||||
|
|
@ -33,11 +32,13 @@ e2d::Node::Node()
|
||||||
, _positionFixed(false)
|
, _positionFixed(false)
|
||||||
, _colliderType(Collider::Type::None)
|
, _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->_pivotX = float(defPivot.x);
|
||||||
this->_pivotY = float(defPivot.y);
|
this->_pivotY = float(defPivot.y);
|
||||||
|
// 设置默认碰撞体类型
|
||||||
this->setColliderType(s_fDefaultColliderType);
|
this->setColliderType(config->getDefaultColliderType());
|
||||||
}
|
}
|
||||||
|
|
||||||
e2d::Node::~Node()
|
e2d::Node::~Node()
|
||||||
|
|
@ -907,11 +908,6 @@ void e2d::Node::setAutoUpdate(bool bAutoUpdate)
|
||||||
_autoUpdate = bAutoUpdate;
|
_autoUpdate = bAutoUpdate;
|
||||||
}
|
}
|
||||||
|
|
||||||
void e2d::Node::setDefaultCollider(Collider::Type type)
|
|
||||||
{
|
|
||||||
s_fDefaultColliderType = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
void e2d::Node::onDestroy()
|
void e2d::Node::onDestroy()
|
||||||
{
|
{
|
||||||
ActionManager::__clearAllBindedWith(this);
|
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 :
|
class Image :
|
||||||
public Object
|
public Object
|
||||||
|
|
@ -692,7 +652,6 @@ protected:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool _autoUpdate;
|
bool _autoUpdate;
|
||||||
bool _colliderVisiable;
|
|
||||||
Node * _root;
|
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
|
#if _MSC_VER > 1700
|
||||||
|
|
||||||
// 创建可自动回收内存的对象
|
// 创建可自动回收内存的对象
|
||||||
|
|
|
||||||
|
|
@ -377,11 +377,6 @@ public:
|
||||||
// 停止所有动作
|
// 停止所有动作
|
||||||
virtual void stopAllActions();
|
virtual void stopAllActions();
|
||||||
|
|
||||||
// 设置节点的默认碰撞体类型(默认 None)
|
|
||||||
static void setDefaultCollider(
|
|
||||||
Collider::Type type
|
|
||||||
);
|
|
||||||
|
|
||||||
// 销毁对象
|
// 销毁对象
|
||||||
virtual void onDestroy() override;
|
virtual void onDestroy() override;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue