cocos2dx 摇杆 CCRocker

C++ 的风格我还没转变过来,代码里面还有很多Java风格的代码,对于内存的管理也不是很好。

资源来自http://blog.csdn.net/cocosviva/article/details/18970717,里面的ControlView

我的代码可以随便玩,转载注明出处


用法 :

new 出来一个CCRocker,参数是摇杆所在的位置

写一个类继承自BaseRockerAdapter,重写onCtrl方法

onCtrl方法的参数key代表着摇杆所摇到的方向,方向key类似小键盘的数字区,比方说6代表右,2代表下,当用户松开摇杆的时候会调用 onCtrl(0)


BaseRockAdapter的registCtrls方法可以注册组合动作,参数是方向key和状态码

当检测到摇杆执行了注册过的动作,将会调用adapter的setstate方法 参数是注册过的状态码,使用时可以通过adapter的getstate方法得到adapter的当前的动作

每一个注册过的状态会保存1秒,之后会被重置为0

最后将Rocker添加到屏幕上就可以使用了

	CCRocker *rocker = new CCRocker(ccp(visibleSize.width/2,visibleSize.height/2));
	MyAdapter *myAdapter = new MyAdapter;

	rocker->setAdapter(myAdapter);

	std::vector<int> *ctrls=new std::vector<int>;
	ctrls->push_back(6);
	ctrls->push_back(3);
	ctrls->push_back(2);
	myAdapter->registCtrls(ctrls,7);

	std::vector<int> *ctrls2=new std::vector<int>;
	ctrls2->push_back(2);
	ctrls2->push_back(3);
	ctrls2->push_back(6);
	ctrls2->push_back(9);
	ctrls2->push_back(8);
	myAdapter->registCtrls(ctrls2,77);

	this->addChild(rocker);

如上代码所示,实例化了一个摇杆,位置在屏幕中心,set一个adapter,注册了两个组合动作632和23698,当这两个动作执行的时候,adapter的state分别会被设置为7和

77,持续时间为1S , 最后将摇杆添加进屏幕



代码及示例工程

http://download.csdn.net/detail/u012016355/6923481


效果图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值