Я работаю с сенсорным экраном в cocos2d и совершенно неправильно понимаю методы определения положения касания. Например, этот метод возвращает один результат:
CGPoint curLocation = [touch locationInView:[touch view]];
CGPoint a = [[CCDirector sharedDirector] convertToGL:curLocation];
CGPoint touchLoc = [touch locationInNode:self];
CGPoint point = [self convertToNodeSpace:touchLoc];
Итак, какие методы нужно использовать? потому что в документации 0 информации об этом.
1 ответ
В cocos2d v3 все, что вам нужно, это:
CGPoint touchLoc = [touch locationInNode:self];
Если вы посмотрите код locationInNode, он уже вызывает convertToGL и convertToNodeSpace. Вы не должны впоследствии вызывать convertToNodeSpace, потому что это даст вам неверные результаты. Просто используйте locationInNode. Первые две строки и четвертая строка у вас уже созданы внутри locationInNode.
Похожие вопросы
Новые вопросы
objective-c
Этот тег следует использовать только для вопросов, касающихся функций Objective-C или зависящих от кода на языке. Теги [cocoa] и [cocoa-touch] следует использовать, чтобы узнать о фреймворках или классах Apple. Используйте связанные теги [ios], [macos], [apple-watch] и [tvos] для проблем, характерных для этих платформ.