Персонализиран клас в Swift с помощта на SKSpritenodes/Collision Detection

В момента работя върху игра, в която враговете се появяват отляво на екрана и се движат надясно. Искам да дам на тези врагове техните собствени атрибути (здраве, сила и т.н.). Така че работя върху създаването на клас 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, но не знам как да получа достъп до информацията за врага, като например неговото здраве.


person belcast1    schedule 03.01.2016    source източник
comment
просто отворете функцията за възел на тялото в didbegincontact, това е достъпно в множество уроци, след което просто го прехвърляте към класа, към който принадлежи   -  person Knight0fDragon    schedule 04.01.2016
comment
разбрахте ли това?   -  person Mugs    schedule 22.06.2020


Отговори (1)


Мисля, че можете да получите достъп до него с enemynode.health, но не съм сигурен.

person Peter L    schedule 04.01.2016