射弹/子弹方向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));