我现在正在大脑冻结。
我的屏幕底部有一个水箱。如果宇宙飞船在坦克右侧,下面的代码会在宇宙飞船上射出导弹。
如果坦克在屏幕底部的水箱左侧,如何射击导弹呢?
当目标位于导弹起点右侧时,RealDest似乎才有效。
感谢您的帮助。
干杯
沙恩
int offX = Spaceship.position.x - missile.position.x;
int offY = Spaceship.position.y - missile.position.y;
// Determine where we wish to shoot the projectile to
int realX = winSize.width + (missile.contentSize.width/2);
float ratio = (float) offY / (float) offX;
int realY = (realX * ratio) + missile.position.y;
CGPoint realDest = ccp(realX, realY);
// Determine the length of how far we're shooting
int offRealX = realX - missile.position.x;
int offRealY = realY - missile.position.y;
float length = sqrtf((offRealX*offRealX)+(offRealY*offRealY));
float velocity = 480/1; // 480pixels/1sec
float realMoveDuration = length/velocity;
[missile runAction:[CCMoveBy actionWithDuration:realMoveDuration position:realDest]];
答案 0 :(得分:0)
如果你想在太空船上射击,你不应该
realDest = ccp(Spaceship.position.x, Spaceship.position.y);