除了 Steffen (LearnCocos2D) 的回答,伪代码中提到的方法都可以在这个非常好的 Ray Wenderlich教程中找到。
static inline CGPoint rwAdd(CGPoint a, CGPoint b) {
return CGPointMake(a.x + b.x, a.y + b.y);
}
static inline CGPoint rwSub(CGPoint a, CGPoint b) {
return CGPointMake(a.x - b.x, a.y - b.y);
}
static inline CGPoint rwMult(CGPoint a, float b) {
return CGPointMake(a.x * b, a.y * b);
}
static inline float rwLength(CGPoint a) {
return sqrtf(a.x * a.x + a.y * a.y);
}
// Makes a vector have a length of 1
static inline CGPoint rwNormalize(CGPoint a) {
float length = rwLength(a);
return CGPointMake(a.x / length, a.y / length);
}
它们CGPoint
用作参数和返回值,但这可以很容易地转换为使用CGVector
.
这些方法对于物理计算非常有用,您会发现它们在很多方面都有用。最好将这些方法保存在单独的头文件中,并在整个项目的代码中使用它们。