У меня возникли трудности в понимании некоторых математике в следующем учебнике:Понимание метода CGPoint
Я не уверен, как осмыслить смещение. Около половины пути через учебник, Рэй использует следующий код:
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 точки касания и смещение точки, и они не образуют треугольник, как это показано на рисунке:
Это то, что я получил от моего выхода:
Touch Location
X: 549.000000 Y: 154.000000
Offset
X: 535.500000 Y: -6.000000
Это не создает вектор в правильном направлении ... но он все еще работает? Может ли кто-нибудь объяснить, как работает смещение?
Оригинальное руководство включает ссылку на страницу по векторной математике. Вы читали это? – CodaFi
Да, у меня есть. Я также сделал свои собственные расчеты. Я просто не понимаю выход по отношению к экрану. – EvilAegis