Я начинаю с Swift и SpriteKit, и я работаю над базовой игрой. Я создал персонаж Sprite (Sapceman), используя 2 изображения SKTexture. Когда экран коснется, изображение спрайта изменяется от одного изображения текстуры к другому (Jet Pack Fires), а Sprite перемещается по экрану. Я хочу настроить обнаружение столкновения (с Alien Spite), которое удаляет их с экрана, но только при касании экрана и отображении второго текстурного изображения и только для нижней части спрайта (т.е. когда человек касается экрана и JetPack уволен. Я хочу, чтобы часть огня «убила» инопланетянина). Цените, если кто-нибудь могут предложить какие-либо предложения по этимSpritekit - подход к столкновению при начале касания
ответ
Попробуйте этот код
static const uint32_t fireBallCategory = 0x1;
static const uint32_t alienCategory = 0x1 << 1;
В добавлении огненного шара и чужеродного метода добавления этого
fireBall.physicsBody.categoryBitMask = fireBallCategory;
alien.physicsBody.categoryBitMask = alienCategory;
fireBall.physicsBody.contactTestBitMask = alienCategory;
Делая это, вы получите уведомление, когда огненный шар и инопланетяне встречаются друг с другом. Поэтому после этого вам нужно добавить логику, чтобы скрыть чужой метод делегата. Итак, сначала установите себя как контактный делегат. Добавьте эту строку в метод (- id) initWithSize: (CGSize).
self.physicsWorld.contactDelegate = self;
Реализовать контакта делегата следующим образом,
-(void)didBeginContact:(SKPhysicsContact *)contact
{
SKPhysicsBody *notFireBall;
if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask){
notFireBall = contact.bodyB;
} else {
notFireBall = contact.bodyA;
}
[notFireBall removeFromParent];
}
. Я попробую это, спасибо за помощь. – JMD
. Работа ??? –
Привет, Да, у меня есть контакт, и Alien удаляется, когда контакт сделан. Я думаю, что я пытался сделать это слишком сложным, только обнаружив столкновение, когда определенная текстура изображения была отображена, поэтому я решил изменить подход и вместо этого выстрелить снарядом (огненный шар) из Spaceman и установить столкновение здесь, которое достигнет того, что Я хочу. Спасибо за помощь – JMD
- 1. Подход к столкновению сферической сферы
- 2. Включить касания спрайта (spritekit)
- 3. Устойчив к столкновению SHA-512?
- 4. Насколько устойчивыми к столкновению являются алгоритмы шифрования?
- 5. Устойчивость к столкновению в наборе Sprite
- 6. Является ли двойное хеширование стойким к столкновению?
- 7. (Swift SpriteKit) Поворот спрайта в направлении касания
- 8. SpriteKit/Objective-C - обнаружение касания внутри узлов
- 9. Как определить местоположение касания в SpriteKit?
- 10. Обнаружение касания (силы) с быстрым (SpriteKit)
- 11. Swift SpriteKit 3D Touch и касания перемещены
- 12. Прямые касания к UIScrollView
- 13. Как пересылать касания к MKMapView
- 14. Внешний ключ в суперкласса приводит к столкновению время сделать Миграции
- 15. Две ассоциации за тот же стол, что привело к столкновению
- 16. Лучший подход к изменениям журнала при PUT
- 17. Spritekit вернуться к rootViewController
- 18. SpriteKit - Игнорировать прозрачность при выборе узла
- 19. Обнаружение касания на дочернем узле объекта в SpriteKit
- 20. Калькулятор подход к подходу
- 21. Масштаб SpriteKit при нажатии
- 22. Нанесение текстурированной линии Spritekit
- 23. Относительный подход к пути (python)
- 24. Постоянное движение в SpriteKit
- 25. Подход к модулю PySpark
- 26. Подход к защите CSRF
- 27. Динамический подход к TSP
- 28. Улучшенный подход к gcd
- 29. Подход к методу фандрайзинга
- 30. Одиночный подход к конструктору
Так в основном вы хотите получить уведомление, когда огненный шар попадает в инопланетян. Правильно ? –
Хорошо, да, в настоящее время огненный шар - это просто часть изображения спрайта (второе изображение текстуры). Я думал, что мне может понадобиться создать новый Sprite, который будет отображаться при нажатии кнопки «Начать» и прикрепить его к существующему «Sprite» и установить столкновение на этом, но не уверен, что это возможно. – JMD