增加物体碰撞判断

This commit is contained in:
Nomango 2018-05-26 14:06:07 +08:00
parent 7619dffaf1
commit 9bd8229b3f
2 changed files with 31 additions and 5 deletions

View File

@ -59,6 +59,20 @@ e2d::Node * e2d::Collision::getPassiveNode()
return s_pPassiveNode; return s_pPassiveNode;
} }
bool e2d::Collision::isCausedBy(const String & name1, const String & name2)
{
String activeName = s_pActiveNode->getName();
String passiveName = s_pPassiveNode->getName();
return (activeName == name1 && passiveName == name2) ||
(activeName == name2 && passiveName == name1);
}
bool e2d::Collision::isCausedBy(Node * node1, Node * node2)
{
return (s_pActiveNode == node1 && s_pPassiveNode == node2) ||
(s_pActiveNode == node2 && s_pPassiveNode == node1);
}
e2d::Node* e2d::Collision::isCausedBy(Node * node) e2d::Node* e2d::Collision::isCausedBy(Node * node)
{ {
if (s_pActiveNode == node) if (s_pActiveNode == node)

View File

@ -46,18 +46,30 @@ public:
// 获取碰撞发生时的被动体 // 获取碰撞发生时的被动体
static Node * getPassiveNode(); static Node * getPassiveNode();
// 判断碰撞是否由该节点引发 // 判断发生碰撞的节点名称是否相同
// 如果是,返回与其相撞的节点指针,否则返回空 static bool isCausedBy(
static Node * isCausedBy( const String& name1,
Node * node const String& name2
); );
// 判断发生碰撞的节点名称是否相同 // 判断两物体是否发生碰撞
static bool isCausedBy(
Node * node1,
Node * node2
);
// 判断发生碰撞的任意一方名称是否相同
// 若相同,返回其指针,否则返回空 // 若相同,返回其指针,否则返回空
static Node * isCausedBy( static Node * isCausedBy(
const String& name const String& name
); );
// 判断物体是否发生碰撞
// 如果是,返回与其相撞的节点指针,否则返回空
static Node * isCausedBy(
Node * node
);
// 开启或关闭物体碰撞监听功能(默认关闭) // 开启或关闭物体碰撞监听功能(默认关闭)
static void setEnable( static void setEnable(
bool enable bool enable