Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 导致奇怪路径的角度_Iphone_Ios_Math_Cocos2d Iphone - Fatal编程技术网

Iphone 导致奇怪路径的角度

Iphone 导致奇怪路径的角度,iphone,ios,math,cocos2d-iphone,Iphone,Ios,Math,Cocos2d Iphone,我用cocos2d制作了一个游戏,我试图从敌人角度上的当前敌人位置创建一个特定长度的射击路径 这是我用来旋转和射击枪的代码 gun runAction: [CCSequence actions: [CCDelayTime actionWithDuration:2.0], [CCCallBlockN actionWithBlock:^(CCNode *node) { [self shootEnemyLaserFromPositi

我用cocos2d制作了一个游戏,我试图从敌人角度上的当前敌人位置创建一个特定长度的射击路径

这是我用来旋转和射击枪的代码

gun runAction: [CCSequence actions: [CCDelayTime actionWithDuration:2.0],
                 [CCCallBlockN actionWithBlock:^(CCNode *node)
                  { [self shootEnemyLaserFromPositionAtAngle:gun];}],
                 [CCRotateTo actionWithDuration:0.5 angle:250],
                 [CCCallBlockN actionWithBlock:^(CCNode *node)
                  { [self shootEnemyLaserFromPositionAtAngle:gun];}],
                 [CCRotateTo actionWithDuration:0.5 angle:230],
                 [CCCallBlockN actionWithBlock:^(CCNode *node)
我用这个方程来计算向量(这段代码在shootEnemyLaserFromPositionAtAngle中):

我的问题是它最终会向奇怪的方向发射。我的端点值也是这样打印出来的。我还打印了枪旋转的角度,如下所示:

angle: -90.000000
end Point x: 21.541107, -499.593536
angle: -110.000000
end Point x: -419.216644, 250.997940
angle: -130.000000
end Point x: 86.166939, 959.688538
我注意到角度突然变为负值。我试着换成正角度(负角度加360度),但结果是相同的终点

有人能帮我或给我一些东西试试吗


谢谢

如果试图找到枪的正弦或余弦,则需要将枪的旋转从度转换为弧度。使用
float gunRotation=CC_度到_弧度(gun.rotation)(或
双精度
)并将其传递给三角函数。当然,这些碎片之外可能还有其他问题,因此,如果您发现其他相关问题,请务必更新问题。

您需要将枪转换为角度。如果试图找到其正弦或余弦,请将旋转
从角度转换为弧度。使用
float gunRotation=CC_度到_弧度(gun.rotation)(或
双精度
)并将其传递给三角函数。当然,这些片段之外可能还隐藏着其他问题,因此,如果发现其他相关问题,请务必更新问题。

函数
cos()
sin()
都从弧度输入返回值。您需要使用
CC_RADIANS\u to_DEGREES
来修复它。

函数
cos()
sin()
都从弧度输入返回一个值。您想使用
CC_RADIANS_to_DEGREES
来修复它。

当我这样做时,我注意到一个类似的错误。还有其他建议吗?你可能想看看Ray Wenderlich的坦克射击教程,链接如下:看看他的
shootToward:
shootNow:
方法。这些都对我有用。当我这样做时,我注意到一个类似的错误。还有其他建议吗?你可能想看看Ray Wenderlich的坦克射击教程,链接如下:看看他的
shootToward:
shootNow:
方法。那些对我有用。
angle: -90.000000
end Point x: 21.541107, -499.593536
angle: -110.000000
end Point x: -419.216644, 250.997940
angle: -130.000000
end Point x: 86.166939, 959.688538