我无法理解以下教程中的一些数学:
我不确定如何理解偏移量。在教程进行到一半时,Ray 使用了以下代码:
UITouch * touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
// 2 - Set up initial location of projectile
SKSpriteNode * projectile = [SKSpriteNode spriteNodeWithImageNamed:@"projectile"];
projectile.position = self.player.position;
// 3- Determine offset of location to projectile
CGPoint offset = rwSub(location, projectile.position);
其中 rwSub 是
static inline CGPoint rwSub(CGPoint a, CGPoint b) {
return CGPointMake(a.x - b.x, a.y - b.y);
}
我知道这段代码有效,但我不明白。我尝试了 NSLogging 触摸点和偏移点,它们并没有形成如图所示的三角形:
(来源:raywenderlich.com)
这是我从输出中得到的:
Touch Location
X: 549.000000 Y: 154.000000
Offset
X: 535.500000 Y: -6.000000
这不会形成正确方向的矢量..但它仍然有效吗?有人能解释一下偏移是如何工作的吗?