射弹/子弹方向Cocos2d

我正在关注一个简单的cocos2d游戏的教程。

然而在该教程中,用户触发的子弹只在一个方向上

我能做些什么来使它不是单方面地向四面八方射击呢?

这里是方向的代码。

int offX = location.x - projectile.position.x; int offY = location.y - projectile.position.y; [self addChild:projectile]; int realX = winSize.width + (projectile.contentSize.width/2); float ratio = (float) offY / (float) offX; int realY = (realX *ratio) + projectile.position.y; CGPoint realDest = ccp(realX, realY); int offRealX = realX - projectile.position.x; int offRealY = realY - projectile.position.y; float length = sqrtf((offRealX*offRealX)+(offRealY*offRealY)); float velocity = 480/1; float realMoveDuration = length/velocity; [projectile runAction:[Sequence actions:[MoveTo actionWithDuration:realMoveDuration position:realDest], [CallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)], nil]]; 

所有的帮助将不胜感激。 谢谢

假设你在angular色的位置创build了射弹,你只需要在计算结束点之前计算出方向。

join射弹后:

 [self addChild:projectile]; 

添加一个标量浮点数:

 float scalarX = 1.0f; 

如果触摸是留在字符中,则将其设为负数:

 if (offX < 0.0f) scalar = -1.0f; 

然后用这个标量乘以realX ,使它指向正确的方式

 int realX = scalar * (winSize.width + (projectile.contentSize.width/2));