cocos2dx -- 学习笔记 利用UIButton制作虚拟按键

cocos2dx -- 学习笔记 利用UIButton制作虚拟按键,第1张

概述今天,继续完善自己的小DEMO,要加入一些虚拟按键,首先是,上下左右方向键。 这里需要实现,按下持续走,松开则停止的效果。 尝试着用CCMenuImage做,可惜CCMenuImage只支持按下再d起后,的事件处理。无法对按下到抬起之间的这段时间进行控制。 UIButton刚好可以满足这个需求。 UIButton是cocos2dx扩展里的UI控件类, 派生自Widget。 使用方法和CCMenuI

今天,继续完善自己的小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制作虚拟按键所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1057504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存