今天,继续完善自己的小DEMO,要加入一些虚拟按键,首先是,上下左右方向键。
这里需要实现,按下持续走,松开则停止的效果。
尝试着用CcmenuImage做,可惜CcmenuImage只支持按下再d起后,的事件处理。无法对按下到抬起之间的这段时间进行控制。
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;
其实它是源自typedef而已,真正的控件类是button。
有了button之后,我们只需要创建四个button控件,然后加入到UILayer中,当然,UILayer也许要加入到节点当中。然后为每个按钮添加一个触摸的响应事件即可。
形式类似这样:
voID DirPanel::OnDirUp( cocos2d::CCObject *obj,cocos2d::ui::touchEventType type ){ switch ( type ) { case touch_EVENT_BEGAN: { m_pHero->setDir( DIR_UP ); } break; case touch_EVENT_ENDED: { m_pHero->setDir( DIR_NONE ); } break; }}
至此,虚拟按键就有着落啦。
效果图如图:
总结
以上是内存溢出为你收集整理的cocos2dx -- 学习笔记 利用UIButton制作虚拟按键全部内容,希望文章能够帮你解决cocos2dx -- 学习笔记 利用UIButton制作虚拟按键所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)