gpt4 book ai didi

math - Cocos2D/Math - 干净的角度转换

转载 作者:行者123 更新时间:2023-12-04 05:43:59 28 4
gpt4 key购买 nike

早上好!

我只是想磨练我的数学能力,我特别有一些关于 Cocos2D 的问题。由于 Cocos2D 想要“简化”事物,所有 Sprite 都有一个旋转属性,范围从 0-360(359?)CW。这迫使你在处理像 atan 这样的函数时做一些(对我来说)令人费解的转换。

所以f.ex。这种方法:

- (void)rotateTowardsPoint:(CGPoint)point
{
// vector from me to the point
CGPoint v = ccpSub(self.position, point);

// ccpToAngle is just a cute wrapper for atan2f
// the macro is self explanatory and the - is to flip the direction I guess
float angle = -CC_RADIANS_TO_DEGREES(ccpToAngle(v));

// just to get it all in the range of 0-360
if(angle < 0.f)
angle += 360.0f;

// but since '0' means east in Cocos..
angle += 180.0f;

// get us in the range of 0-360 again
if(angle > 360.0f)
angle -= 360.0f;

self.rotation = angle;
}

按预期工作。但对我来说,它看起来有点暴力。 有没有更干净的方法来达到同样的效果?

最佳答案

做就够了

float angle = -CC_RADIANS_TO_DEGREES(ccpToAngle(v));
self.rotation = angle + 180.0f;

对于等价变换

关于math - Cocos2D/Math - 干净的角度转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10926528/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com