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);
[_projectiles addObject:projectile];
projectile.tag = 2;


[projectile runAction:[CCSequence actions:
                       [CCMoveTo actionWithDuration:realMoveDuration position:realDest],
                       [CCCallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)],
                       nil]];


在这个简单的应用程序中,我试图使弹丸从屏幕中间飞到用户触摸的任何地方,再到屏幕边缘。无论出于什么原因,无论用户何时按下,弹丸只会飞到具有正x坐标的目的地。如果您想象一个x y平面,并且屏幕的中心是原点,则弹丸只会飞到原点右边的象限中的某个位置。如果用户触摸左侧两个点,则射弹以相反的方向飞行,且倾斜度与触摸与原点的比率相同。 .............?任何想法,谢谢

最佳答案

在计算比率时,必须考虑X和Y坐标的符号。这就是问题的根源。

10-07 19:49