обнаружение столкновения между двумя узлами в swift 4

Шаблоны должны использоваться в заголовках, потому что компилятор должен создавать экземпляры разных версий кода в зависимости от параметров, заданных / выведенных для параметров шаблона. Помните, что шаблон не представляет собой код напрямую, а шаблон для нескольких версий этого кода. Когда вы компилируете функцию non-template в файле .cpp, вы компилируете конкретную функцию / класс. Это не относится к шаблонам, которые могут быть созданы с использованием разных типов, а именно, если при замене параметров шаблона конкретными типами необходимо исправить конкретный код.

Была функция с ключевым словом export, которая была предназначенный для отдельной компиляции. Функция export устарела в C++11 и, AFAIK, только один компилятор реализовал ее. Вы не должны использовать export. Отдельная компиляция невозможна в C++ или C++11, но, возможно, в C++17, если понятия в нее входят, мы могли бы иметь некоторый способ отдельной компиляции.

Для отдельной компиляции, которая должна быть достигнута, разделить проверка шаблона тела должна быть возможна. Кажется, что решение возможно с концепциями. Взгляните на этот документ , недавно представленный на совещании по стандартам. Я думаю, что это не единственное требование, поскольку вам все равно необходимо создать код кода шаблона в коде пользователя.

Отдельная проблема компиляции для шаблонов, я думаю, это также проблема, возникающая при миграции на модули, которые в настоящее время работают.

2
задан rmaddy 13 July 2018 в 17:44
поделиться

1 ответ

Для начала, как аватары, так и категории препятствий категории 0, потому что: UInt32 = 0 * 1 & lt; 1 = 0, поэтому давайте исправим это:

let avatarCategory: UInt32 = 1 << 0
let obstacleCategory: UInt32 = 1 << 1

Теперь contactTestBitMask представляет объект (ы), с которым вы хотите получать уведомления о контактах, поэтому вам нужно изменить это:

avatar.physicsBody?.contactTestBitMask = obstacleCategory

и

obstacle.physicsBody?.contactTestBitMask = avatarCategor

Попробуйте на данный момент

0
ответ дан Steve Ives 17 August 2018 в 12:46
поделиться
  • 1
    большое спасибо :) – GDog 13 July 2018 в 20:16
  • 2
    хм .. но он по-прежнему не работает: // Должен ли я добавить код в AppDelegate или где-нибудь еще в PList? – GDog 13 July 2018 в 22:11
  • 3
    @GDog Можете ли вы попробовать пошаговое руководство, связанное с ответом? – Steve Ives 14 July 2018 в 08:12
  • 4
    @GDog Вы инициализируете «препятствие» как пустой «SKShapeNode», а его физическое тело также пустое - это может быть вашей проблемой. – Steve Ives 14 July 2018 в 08:24
Другие вопросы по тегам:

Похожие вопросы: