【发布时间】:2016-01-03 23:12:25
【问题描述】:
我目前正在开发一款敌人从屏幕左侧生成并向右移动的游戏。我想赋予这些敌人自己的属性(健康、力量等)。所以我正在创建一个 Basic_fighter 类。我还有一个用户狙击镜,用户可以用来击中敌人。我遇到的问题是如何访问 DidBeginContact 函数中的敌人属性,因为该函数只返回两个节点,而不是类信息。我会把我的代码放在下面
Basic_Fighter_Class
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 函数中检测到用户范围和敌人之间的接触,但我不知道如何访问敌人的信息,例如它的健康状况。
【问题讨论】:
-
只在 didbegincontact 中访问 body 的节点特征,这在多个教程中都有,然后你只需将其转换为它所属的类
-
你有想过这个吗?
标签: swift sprite-kit subclass collision skspritenode