一次碰撞触发两次碰撞事件,两次都调用Scene::onCollision
This commit is contained in:
parent
be8972f52a
commit
85a4c0584a
|
|
@ -70,8 +70,14 @@ void e2d::CollisionManager::__updateCollider(Collider* collider)
|
|||
if (relation != Collider::Relation::Unknown &&
|
||||
relation != Collider::Relation::Disjoin)
|
||||
{
|
||||
active->onCollision(Collision(passive, relation));
|
||||
passive->onCollision(Collision(active, relation));
|
||||
// 触发两次碰撞事件
|
||||
Collision activeCollision(passive, relation);
|
||||
active->getParentScene()->onCollision(activeCollision);
|
||||
active->onCollision(activeCollision);
|
||||
|
||||
Collision passiveCollision(active, passive->getCollider()->getRelationWith(active->getCollider()));
|
||||
passive->getParentScene()->onCollision(passiveCollision);
|
||||
passive->onCollision(passiveCollision);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ void e2d::Node::_render()
|
|||
// 转换渲染器的二维矩阵
|
||||
Renderer::getInstance()->getRenderTarget()->SetTransform(_finalMatri);
|
||||
// 渲染自身
|
||||
//this->onRender();
|
||||
this->onRender();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -174,7 +174,7 @@ void e2d::Node::_render()
|
|||
// 转换渲染器的二维矩阵
|
||||
Renderer::getInstance()->getRenderTarget()->SetTransform(_finalMatri);
|
||||
// 渲染自身
|
||||
//this->onRender();
|
||||
this->onRender();
|
||||
|
||||
// 访问剩余节点
|
||||
for (; i < _children.size(); ++i)
|
||||
|
|
|
|||
|
|
@ -911,6 +911,9 @@ public:
|
|||
// 说明:返回 false 将阻止消息继续传递
|
||||
virtual bool onMouseEvent(MouseEvent e) { return true; }
|
||||
|
||||
// ÅöײÏûÏ¢
|
||||
virtual void onCollision(Collision collision) { }
|
||||
|
||||
// 关闭窗口
|
||||
// 说明:返回 false 将阻止窗口关闭
|
||||
virtual bool onCloseWindow() { return true; }
|
||||
|
|
|
|||
Loading…
Reference in New Issue