cocos2d-x 摇杆(二)

cocos2d-x 摇杆(二),第1张

概述根据上一篇内容进行改进 Control.h 增加以下内容 CCSprite* main_tank;void control_update(float dt); Control.cpp void Control::control_update(float dt){ float move_x=cen->getPositionX()-origin.x;//摇杆相对移动X轴 float move_


根据上一篇内容进行改进

Control.h

增加以下内容

CCSprite* main_tank;voID control_update(float dt);



Control.cpp

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 摇杆(二)所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存