В настоящее время я работаю над игрой, в которой враги появляются слева от экрана и двигаются вправо. Я хочу дать этим врагам их собственные атрибуты (здоровье, сила и т. д.). Поэтому я работаю над созданием класса Basic_fighter. У меня также есть пользовательский снайперский прицел, который пользователь использует для поражения врагов. Проблема, с которой я столкнулся, заключается в том, как получить доступ к атрибутам врагов в функции DidBeginContact, поскольку функция возвращает только два узла, а не информацию о классе. Я поставлю свой код ниже
Базовый_класс_истребителя
import Foundation
import SpriteKit
class Basic_Fighter {
var health = Int()
var type = SKSpriteNode()
init(sk:SKSpriteNode){
self.type = sk
self.health = 3
}
}
func spawn_enemies(){
let enemynode = SKSpriteNode(imageNamed: "Shooter")
enemynode.size = CGSize(width: 100, height: 40)
enemynode.position = CGPoint(x: self.size.width / 2, y: self.size.height / 2)
enemynode.physicsBody = SKPhysicsBody(rectangleOfSize: enemynode.size)
enemynode.physicsBody?.affectedByGravity = false
enemynode.physicsBody?.categoryBitMask = BodyType.enemy
enemynode.physicsBody?.contactTestBitMask = BodyType.bullet
let enemy = Basic_Fighter(sk: enemynode)
addChild(enemynode)
}
Я могу обнаружить контакт между пользовательской областью и противником в функции DidBeginContact, но я не знаю, как получить доступ к информации о противнике, такой как его здоровье.