공의 노드 클래스를 만들려고합니다. 일부 물리학 몸체 속성을 가지고있는 공은 물리 구조체 속성을 초기화하는 함수를 만들었 기 때문에. 또한, 사용자가 편의 init을 통해 설정 한 ball radius (circleOfRadius를 통해)를 설정하기를 원합니다. 그 때문에 나는 반경 변수를 private로 설정했습니다. 문제는 내가 거기에 개인 var에 반경을 설정할 수 있습니다하지만 편의가 실행되지 않습니다. 나는 그하여 민간 반경 VAR을 취소하고 편리 초기화 내부의 물리학 바디 속성을 선언하지만, 올바른 경우 확실하지 메신저 해결할 수 있습니다 알고편의 초기화 (private)로 private var를 호출합니다.
class BallNode: SKShapeNode {
var radius:CGFloat = 0
private var _R:CGFloat?
override init() {
super.init()
self.setPhysics()
}
var newBallR:CGFloat{
get {
return _R!
}
set {
_R = newValue
self.radius = _R!
print("bsllRRRR:", self.radius)
}
}
convenience init(radius:CGFloat){
self.init(circleOfRadius: radius)
self.radius = radius
print("successful init circle radius", self.radius)
}
func setPhysics() {
self.physicsBody = SKPhysicsBody.init(circleOfRadius: self.radius)
print("physics body is SET with value:", self.radius)
self.physicsBody?.affectedByGravity = true
print("gravity = T")
self.physicsBody?.restitution = 0.2
print("res = 0.2")
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch: AnyObject in touches {
let positionOfTouch = touch.location(in: self)
let ball = BallNode(radius:65)
}
: 여기 내 코드입니다. 한 가지 더, _R 코드를 확인할 때! 65 값을 얻지 만 편의상 초기화는 실행되지 않는다고 말했던 것처럼. 누군가 나를 도와 줄 수 있습니까?
실제로 작동하지 않습니다. 실제로 여기 내 코드가 올바르지 않습니다. 당신이 말한대로해야합니다. 나는 고칠 것이다. – omerc