今天,继续完善自己的小DEMO,要加入一些虚拟按键,首先是,上下左右方向键。
这里需要实现,按下持续走,松开则停止的效果。
尝试着用CCMenuImage做,可惜CCMenuImage只支持按下再弹起后,的事件处理。无法对按下到抬起之间的这段时间进行控制。
UIButton刚好可以满足这个需求。
UIButton是cocos2dx扩展里的UI控件类, 派生自Widget。
使用方法和CCMenuImage类似, 每个UI控件必须放在一个UILayer中,也就是说,UILayer就是UI控件的容器了。
创建的话类似下面:
Button *m_pUpBtn = Button::create();
m_pUpBtn->setTouchEnabled( true );
m_pUpBtn->loadTextures( "DirKeyNor.png", "DirKeySel.png", "" );
m_pUpBtn->setPosition(
ccp( 180.0f, 160.0f + m_pUpBtn->getContentSize().height/2 ) );
m_pUpBtn->addTouchEventListener(
this, toucheventselector( DirPanel::OnDirUp ) );
uiLayer->addWidget( m_pUpBtn );
顺带一提,其实UIButton这个类并不存在。
typedef cocos2d::ui::Button UIButton;