Я создаю игру, и я застрял на создании успешного метода контакта с физикой.как вызвать метод с несколькими входными параметрами в другом методе
func bulletCollisionWithEnemy1(enemy1: SKSpriteNode, bullet1: SKSpriteNode){ // my enemy1 and bullet are defined in my game scene
score += 1
scoreLabel.text = "\(score)"
bullet1.removeFromParent()
hitCount++
}
func enemy1Hit (enemy1:Enemy1) { //my enemy1 is defined in my game scene and my Enemy1 is a separate SKSNode class i have created containing physics properties and vars ect.
if (enemy1.hit() == true) {
//enemy hit animation
}else{
//for animations
}
}
здесь, где я определить физику контактного
func didBeginContact(contact: SKPhysicsContact) {
let firstBody : SKPhysicsBody = contact.bodyA
let secondBody : SKPhysicsBody = contact.bodyB
if ((firstBody.categoryBitMask == PhysicsCategory.bullet1) &&
(secondBody.categoryBitMask == PhysicsCategory.enemy1) ||
(firstBody.categoryBitMask == PhysicsCategory.enemy1) &&
(secondBody.categoryBitMask == PhysicsCategory.bullet1)) {
if let firstNode = firstBody.node as? SKSpriteNode, secondNode = secondBody .node as? SKSpriteNode {
bulletCollisionWithEnemy1((firstNode), bullet1: (secondNode))
}
где моя проблема, я не могу найти далеко, чтобы вызвать функцию моего enemy1hit(). Моя функция hit() определена в моем классе Enemy1, поэтому я должен вызвать свой Enemy1 в параметрах, а также вызвать мой класс хитов в моем столкновении с классом bullet.
Вам не нужно называть secondNode в didBeginContact? @george Green? – gkolman
, и у меня есть мой счет и оценка latel, определенная в моем файле gameScene.swift, поэтому вы хотите, чтобы я определил свою оценку в классе enemy1? Это было бы больно и могло бы вызвать проблемы позже с сохранением баллов или очков. – gkolman
@gkolman Нет оценки, если она прекрасна во всем мире, поскольку она не является специфической для субъекта. Однако попадание является специфическим для противника. Я не уверен, что вы подразумеваете под своим 1-м вопросом? Возможно, вы могли бы связать меня с полным определением класса, чтобы я мог лучше понять, чего вы пытаетесь достичь? –