修复了按钮的中心点问题

This commit is contained in:
Nomango 2017-12-05 08:31:54 +08:00
parent 5e0ea2be92
commit a9ddbf7384
2 changed files with 50 additions and 0 deletions

View File

@ -71,6 +71,7 @@ void e2d::EButton::setNormal(ENode * normal)
if (normal) if (normal)
{ {
this->addChild(normal); this->addChild(normal);
normal->setPivot(m_fPivotX, m_fPivotY);
} }
m_pNormal = normal; m_pNormal = normal;
@ -91,6 +92,7 @@ void e2d::EButton::setMouseOver(ENode * mouseover)
if (mouseover) if (mouseover)
{ {
this->addChild(mouseover); this->addChild(mouseover);
mouseover->setPivot(m_fPivotX, m_fPivotY);
} }
m_pMouseover = mouseover; m_pMouseover = mouseover;
_updateVisiable(); _updateVisiable();
@ -110,6 +112,7 @@ void e2d::EButton::setSelected(ENode * selected)
if (selected) if (selected)
{ {
this->addChild(selected); this->addChild(selected);
selected->setPivot(m_fPivotX, m_fPivotY);
} }
m_pSelected = selected; m_pSelected = selected;
_updateVisiable(); _updateVisiable();
@ -129,6 +132,7 @@ void e2d::EButton::setDisabled(ENode * disabled)
if (disabled) if (disabled)
{ {
this->addChild(disabled); this->addChild(disabled);
disabled->setPivot(m_fPivotX, m_fPivotY);
} }
m_pDisabled = disabled; m_pDisabled = disabled;
_updateVisiable(); _updateVisiable();
@ -152,6 +156,33 @@ void e2d::EButton::setCallback(const BUTTON_CLICK_CALLBACK & callback)
m_Callback = callback; m_Callback = callback;
} }
void e2d::EButton::setPivotX(float pivotX)
{
ENode::setPivotX(pivotX);
if (m_pNormal) m_pNormal->setPivotX(pivotX);
if (m_pMouseover) m_pMouseover->setPivotX(pivotX);
if (m_pSelected) m_pSelected->setPivotX(pivotX);
if (m_pDisabled) m_pDisabled->setPivotX(pivotX);
}
void e2d::EButton::setPivotY(float pivotY)
{
ENode::setPivotY(pivotY);
if (m_pNormal) m_pNormal->setPivotY(pivotY);
if (m_pMouseover) m_pMouseover->setPivotY(pivotY);
if (m_pSelected) m_pSelected->setPivotY(pivotY);
if (m_pDisabled) m_pDisabled->setPivotY(pivotY);
}
void e2d::EButton::setPivot(float pivotX, float pivotY)
{
ENode::setPivot(pivotX, pivotY);
if (m_pNormal) m_pNormal->setPivot(pivotX, pivotY);
if (m_pMouseover) m_pMouseover->setPivot(pivotX, pivotY);
if (m_pSelected) m_pSelected->setPivot(pivotX, pivotY);
if (m_pDisabled) m_pDisabled->setPivot(pivotX, pivotY);
}
void e2d::EButton::_setStatus(STATUS status) void e2d::EButton::_setStatus(STATUS status)
{ {
if (m_eStatus != status) if (m_eStatus != status)

View File

@ -647,6 +647,25 @@ public:
const BUTTON_CLICK_CALLBACK & callback const BUTTON_CLICK_CALLBACK & callback
); );
// 设置中心点的横向位置
// 默认为 0, 范围 [0, 1]
virtual void setPivotX(
float pivotX
) override;
// 设置中心点的纵向位置
// 默认为 0, 范围 [0, 1]
virtual void setPivotY(
float pivotY
) override;
// 设置中心点位置
// 默认为 (0, 0), 范围 [0, 1]
virtual void setPivot(
float pivotX,
float pivotY
) override;
protected: protected:
enum STATUS { NORMAL, MOUSEOVER, SELECTED }; enum STATUS { NORMAL, MOUSEOVER, SELECTED };