修复矩形碰撞判断
This commit is contained in:
parent
3e31a3af55
commit
d2e083c5ca
|
|
@ -12,7 +12,8 @@ RectNode::~RectNode()
|
||||||
|
|
||||||
bool RectNode::isCollisionWith(RectNode * rectNode) const
|
bool RectNode::isCollisionWith(RectNode * rectNode) const
|
||||||
{
|
{
|
||||||
return IntersectRect(NULL, &m_Rect, &rectNode->m_Rect);
|
static CRect rt;
|
||||||
|
return IntersectRect(&rt, &m_Rect, &rectNode->m_Rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RectNode::isPointIn(CPoint p) const
|
bool RectNode::isPointIn(CPoint p) const
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,8 @@ void Sprite::setImage(Image * image)
|
||||||
|
|
||||||
bool Sprite::isCollisionWith(Sprite * sprite)
|
bool Sprite::isCollisionWith(Sprite * sprite)
|
||||||
{
|
{
|
||||||
return IntersectRect(new CRect(), &getRect(), &sprite->getRect());
|
static CRect rt;
|
||||||
|
return IntersectRect(&rt, &getRect(), &sprite->getRect());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sprite::addAction(Action * action)
|
void Sprite::addAction(Action * action)
|
||||||
|
|
|
||||||
|
|
@ -564,6 +564,19 @@ public:
|
||||||
// Çå¿ÕËùÓÐ×Ó½Úµã
|
// Çå¿ÕËùÓÐ×Ó½Úµã
|
||||||
void clearAllChildren();
|
void clearAllChildren();
|
||||||
|
|
||||||
|
// 设置节点横坐标
|
||||||
|
virtual void setX(int x) override;
|
||||||
|
// 设置节点纵坐标
|
||||||
|
virtual void setY(int y) override;
|
||||||
|
// 设置节点坐标
|
||||||
|
virtual void setPos(int x, int y) override;
|
||||||
|
// 设置节点坐标
|
||||||
|
virtual void setPos(CPoint p) override;
|
||||||
|
// 移动节点
|
||||||
|
virtual void move(int x, int y) override;
|
||||||
|
// 移动节点
|
||||||
|
virtual void move(CVector v) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::vector<Node*> m_vChildren;
|
std::vector<Node*> m_vChildren;
|
||||||
|
|
||||||
|
|
@ -598,33 +611,58 @@ public:
|
||||||
RectNode();
|
RectNode();
|
||||||
~RectNode();
|
~RectNode();
|
||||||
|
|
||||||
|
// 判断两节点是否碰撞
|
||||||
virtual bool isCollisionWith(RectNode * rectNode) const;
|
virtual bool isCollisionWith(RectNode * rectNode) const;
|
||||||
|
// 判断点是否在节点内
|
||||||
virtual bool isPointIn(CPoint p) const;
|
virtual bool isPointIn(CPoint p) const;
|
||||||
|
|
||||||
virtual void setWindowCenterX();
|
// 设置节点在窗口居中
|
||||||
virtual void setWindowCenterY();
|
|
||||||
virtual void setWindowCenter();
|
virtual void setWindowCenter();
|
||||||
|
// 设置节点在窗口横向居中
|
||||||
|
virtual void setWindowCenterX();
|
||||||
|
// 设置节点在窗口纵向居中
|
||||||
|
virtual void setWindowCenterY();
|
||||||
|
|
||||||
|
// 获取节点横坐标
|
||||||
virtual int getX() const override;
|
virtual int getX() const override;
|
||||||
|
// 获取节点纵坐标
|
||||||
virtual int getY() const override;
|
virtual int getY() const override;
|
||||||
|
// 获取节点坐标
|
||||||
virtual CPoint getPos() const override;
|
virtual CPoint getPos() const override;
|
||||||
|
// 获取节点宽度
|
||||||
virtual int getWidth() const;
|
virtual int getWidth() const;
|
||||||
|
// 获取节点高度
|
||||||
virtual int getHeight() const;
|
virtual int getHeight() const;
|
||||||
|
// 获取节点大小
|
||||||
virtual CSize getSize() const;
|
virtual CSize getSize() const;
|
||||||
|
// 获取节点所在的矩形
|
||||||
virtual CRect getRect() const;
|
virtual CRect getRect() const;
|
||||||
|
|
||||||
|
// 设置节点横坐标
|
||||||
virtual void setX(int x) override;
|
virtual void setX(int x) override;
|
||||||
|
// 设置节点纵坐标
|
||||||
virtual void setY(int y) override;
|
virtual void setY(int y) override;
|
||||||
|
// 设置节点坐标
|
||||||
virtual void setPos(int x, int y) override;
|
virtual void setPos(int x, int y) override;
|
||||||
|
// 设置节点坐标
|
||||||
virtual void setPos(CPoint p) override;
|
virtual void setPos(CPoint p) override;
|
||||||
|
// 移动节点
|
||||||
virtual void move(int x, int y) override;
|
virtual void move(int x, int y) override;
|
||||||
|
// 移动节点
|
||||||
virtual void move(CVector v) override;
|
virtual void move(CVector v) override;
|
||||||
|
// 设置节点宽度
|
||||||
virtual void setWidth(int width);
|
virtual void setWidth(int width);
|
||||||
|
// 设置节点高度
|
||||||
virtual void setHeight(int height);
|
virtual void setHeight(int height);
|
||||||
|
// 设置节点大小
|
||||||
virtual void setSize(int width, int height);
|
virtual void setSize(int width, int height);
|
||||||
|
// 设置节点大小
|
||||||
virtual void setSize(CSize size);
|
virtual void setSize(CSize size);
|
||||||
|
// 设置节点所在的矩形
|
||||||
virtual void setRect(int x1, int y1, int x2, int y2);
|
virtual void setRect(int x1, int y1, int x2, int y2);
|
||||||
|
// 设置节点所在的矩形
|
||||||
virtual void setRect(CPoint leftTop, CPoint rightBottom);
|
virtual void setRect(CPoint leftTop, CPoint rightBottom);
|
||||||
|
// 设置节点所在的矩形
|
||||||
virtual void setRect(CRect rect);
|
virtual void setRect(CRect rect);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue