大佬教程收集整理的这篇文章主要介绍了cocos2d-x 摇杆(二),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Control.h
增加以下内容
CCSprite* main_tank; void control_update(float dt);
void Control::control_update(float dt) { float move_x=cen->getPositionX()-origin.x;//摇杆相对移动X轴 float move_y=cen->getPositionY()-origin.y;//摇杆相对移动y轴 if(isOnControl&&move_y!=0&&move_x!=0)//摇杆有移动时 { float ata=atan2(move_x,move_y);//换取遥感相对移动角度 ata=ata/M_PI;//角度数值化 //判断,确定方向 if(ata>-0.25&&ata<0.25) { main_tank->setRotation(0); main_tank->setPositionY(main_tank->getPositionY()+1); // CCLOG("top"); } if(ata>0.25&&ata<0.75) { main_tank->setRotation(90); main_tank->setPositionX(main_tank->getPositionX()+1); // CCLOG("right"); } if(ata>-0.75&&ata<-0.25) { main_tank->setRotation(270); main_tank->setPositionX(main_tank->getPositionX()-1); //CCLOG("left"); } if(ata>0.75||ata<-0.75) { main_tank->setRotation(180); main_tank->setPositionY(main_tank->getPositionY()-1); //CCLOG("down"); } // setTagPosition(main_tank->getPositionX(),main_tank->getPositionY()); } }
void Control::initData() { origin = ccp(150,150); //摇杆原点 control_bg = CCSprite::create("dpadUp.png"); control_bg->setPosition(origin); control_bg->setScale(2); this->addChild(control_bg); cen = CCSprite::create("joystickUp.png"); cen->setPosition(origin); this->addChild(cen); CCRect r = control_bg->boundingBox(); r_control = (r.getMaxX()-r.getMinX())/2; //摇杆半径 //---------------------- main_tank = CCSprite::create("an1_anim1.png"); main_tank->setPosition(ccp(50,50)); main_tank->setScale(0.5); this->addChild(main_tank); }
bool Control::ccTouchBegan(CCTouch* touch,CCEvent* event) { if (cen->boundingBox().containsPoint(touch->getLOCATIOn())) { isOnControl = true; cen->setScale(1.1); } //---------- schedule(schedule_SELEctor(Control::control_updatE)); return true; }
void Control::ccTouchEnded(CCTouch* touch,CCEvent* event) { isOnControl = false; cen->setPosition(origin); cen->setScale(1); //--------- unscheduleAllSELEctors(); }
以上是大佬教程为你收集整理的cocos2d-x 摇杆(二)全部内容,希望文章能够帮你解决cocos2d-x 摇杆(二)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。