gpt4 book ai didi

ios - Sprite Kit中的Cocos2d ccpForAngle()函数替换是什么

转载 作者:行者123 更新时间:2023-11-28 11:05:20 24 4
gpt4 key购买 nike

我想根据角度进行一些计算,但我找不到从 Cocos2D 到 SpriteKit 的 ccpForAngle() 替换方法。它基本上根据传递的角度值给出 x,y CGPoint。

最佳答案

ccpForAngle()在cocos2d框架中定义为

/** Converts radians to a normalized vector.
@return CGPoint
*/
static inline CGPoint
ccpForAngle(const CGFloat a)
{
return ccp((CGFloat)cos(a), (CGFloat)sin(a));
}

ccp() 在哪里

/** Helper macro that creates a CGPoint
@return CGPoint
*/
static inline CGPoint ccp( CGFloat x, CGFloat y )
{
return CGPointMake(x, y);
}

可以直接翻译成 Swift:

func CGPointForAngle(angle: CGFloat) -> CGPoint {
return CGPoint(x: cos(angle), y: sin(angle))
}

但更 Swifty 的方法是定义一个初始化器:

extension CGPoint {
init(angle: CGFloat) {
self.init(x: cos(angle), y: sin(angle))
}
}

然后可以用作

let pt = CGPoint(angle: CGFloat(M_PI)/3.0)
print(pt) // (0.5, 0.866025)

在单位圆上与正方向成 60 度角创建一个点x 轴。

关于ios - Sprite Kit中的Cocos2d ccpForAngle()函数替换是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38058889/

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