精灵旋转和移动方向问题

时间:2015-04-15 06:39:51

标签: ios cocos2d-x

我正在使用cocos2d-x v3.3开发游戏。

在我的游戏中,我有一个直线精灵图像,它以360度角连续旋转。在线的边缘有另一个球精灵。

所以我在游戏中想要的是每当我触摸屏幕时它应该开始旋转并且在触摸结束时,线边缘上的球应该在线指向的方向上移动。

1 个答案:

答案 0 :(得分:0)

谢谢.. 我的代码在这里。

Circle1 = Sprite::create("circleT.png");
Circle1->setPosition(winSize.width/2,winSize.height/3.8);
this->addChild(Circle1,1);


line = Sprite::create("line.png");
line->setAnchorPoint(Vec2(0.5, 1.0));
line->setPosition(Circle1->getBoundingBox().size.width/2,0);
Circle1->addChild(line,1);

bullet = Sprite::create("bullet.png");
bullet->setPosition(Vec2 (winSize.width/2,winSize.height/4));
this->addChild(bullet);    

Point offset    = ccpSub(touchLocation, bullet->getPosition());
float   ratio     = offset.x/offset.y;
int     targetY   =  winSize.height - bullet->getContentSize().height;
float disY  = -(bullet->getPositionY() - targetY);
int     targetX   = (disY * ratio) + bullet->getPositionX();
CCPoint  touchPoint = ccp(targetX*20,targetY*20);


MoveTo *bulletmove = MoveTo::create(1, Vec2(touchPoint));
bullet->runAction(bulletmove);

在TouchBegin上我调用了旋转方法,现在在代码中,我的子弹正在触摸位置。所以想要子弹应该朝着线的方向前进。