cocos2d-x的初步学习十三之虚拟摇杆SneakyInput
2013-06-15 18:46
435 查看
这篇文章中,我们将用另一个虚拟摇杆类,SneakyInput,这个是开源的,已经有c++版,SneakInput
c++的源码下载地址为:https://github.com/Ntran013/SneakyInput
注意,这个下载下来需要修改,因为那是基于老版本的cocos2dx的。OK,我们下面直接上代码:
//刷新
在上面中,我们初始化了一个精灵,并且初始化了SneakyInput,然后再刷新函数里,我们去判断摇杆方向,然后移动精灵。OK,我们看下效果:
OK,就这么简单呐±±±±~~~~~
c++的源码下载地址为:https://github.com/Ntran013/SneakyInput
注意,这个下载下来需要修改,因为那是基于老版本的cocos2dx的。OK,我们下面直接上代码:
CCSize wsize=CCDirector::sharedDirector()->getVisibleSize(); iconSprite=CCSprite::create("Icon-72.png"); iconSprite->setPosition(ccp(wsize.width/2, wsize.height/2)); iconSprite->setTag(123); this->addChild(iconSprite, 1); float joystickRadius = 220; joystick=new SneakyJoystick(); joystick->autorelease(); joystick->initWithRect(CCRectZero); //是否自动回到中心 joystick->setAutoCenter(true); //是否支持死亡区域,该区域不会触发 joystick->setHasDeadzone(true); //死亡区域半径 joystick->setDeadRadius(10); SneakyJoystickSkinnedBase *joystickSkin=new SneakyJoystickSkinnedBase(); joystickSkin->autorelease(); joystickSkin->init(); //背景 joystickSkin->setBackgroundSprite(CCSprite::create("control_bg.png")); //中心点 joystickSkin->setThumbSprite(CCSprite::create("cen.png")); joystickSkin->getThumbSprite()->setScale(1.0f); joystickSkin->setPosition(CCPointMake(joystickRadius,joystickRadius)); joystickSkin->setJoystick(joystick); this->addChild(joystickSkin); this->scheduleUpdate();
//刷新
void HelloWorld::update(float t) { // getVelocity()到的数值很小 需要放大 CCPoint poi = ccpMult(joystick->getVelocity(), 50); //right if ((poi.x > 0) && (poi.x - poi.y) >0 && (poi.x + poi.y) > 0){ iconSprite->setPosition(ccp(iconSprite->getPosition().x+1, iconSprite->getPosition().y)); } //left else if ( (poi.x < 0) && (poi.x + poi.y) < 0 &&(poi.x - poi.y) < 0) { iconSprite->setPosition(ccp(iconSprite->getPosition().x-1, iconSprite->getPosition().y)); } //up else if ((poi.y > 0) &&(poi.y - poi.x) > 0 &&(poi.y + poi.x) >0 ){ iconSprite->setPosition(ccp(iconSprite->getPosition().x, iconSprite->getPosition().y+1)); } //down else if ((poi.y < 0) &&(poi.y - poi.x) < 0 && (poi.y + poi.x) < 0) { iconSprite->setPosition(ccp(iconSprite->getPosition().x, iconSprite->getPosition().y-1)); } }
在上面中,我们初始化了一个精灵,并且初始化了SneakyInput,然后再刷新函数里,我们去判断摇杆方向,然后移动精灵。OK,我们看下效果:
OK,就这么简单呐±±±±~~~~~
相关文章推荐
- cocos2d-x的初步学习十二之虚拟摇杆Joystick
- cocos2d-x的初步学习十二之虚拟摇杆Joystick
- cocos2d-x 3.x学习之虚拟摇杆
- cocos2d-x(2.1.4)之虚拟摇杆SneakyInput
- Cocos2d-x3.2实现虚拟摇杆多点触摸
- cocos2d-x的初步学习十五之坦克大战二
- cocos2d-x的初步学习二十四xcode5+ios7下隐藏状态栏
- cocos2d-x的初步学习一
- cocos2d-x的初步学习四
- cocos2d-x的初步学习五
- cocos2d-x的初步学习六
- cocos2d-x的初步学习二十六之连连看二
- 「cocos2d-x」虚拟摇杆实现(1)
- Cocos2d-x3.2实现虚拟摇杆多点触摸-----沈大海
- cocos2d-x的初步学习二
- 小羊驼和你一起学习cocos2d-x之五(结合摇杆控制玩家走动)
- cocos2d-x的初步学习二十一之iosandroid跨平台环境配置
- Cocos2d-x学习(十三):用cocos2d-x实现MoonWarriors(使用触屏改变飞船位置)
- cocos2d-x 菜鸟学习笔记十三(简单的碰撞检测)
- cocos2d-x最初步学习