2017-03-12 6 views
0

Sprite-Kitを使用してゲームをデザインしようとしました。私は、自分のゲームオブジェクトの1つが船からのレーザーであるために別のクラスを作成する方が簡単だと分かりました。そのクラスの中では、私は更新、撮影などのいくつかの機能を持っているでしょう。しかし、私が別のクラスを作成するたびに、私が作る変数はどれも "宣言されています"。これは、クラスを開始する必要があるので、これは私のコードスプライトキット別クラスの作成

import UIKit 
import SpriteKit 

class laser: SKSpriteNode { 

let laser : SKSpriteNode = SKSpriteNode(imageNamed:"playerShip") 
laser.position = CGPoint(x: 100, y: 200)//This is where it says no declaration 


} 

enter image description here

答えて

2

です。あなたはこのlaser()

class laser: SKSpriteNode { 
    let laser: SKSpriteNode = SKSpriteNode(imageNamed: "playerShip") 

    init() { 
     super.init(texture: nil, color: .clear, size: laser.size) 
     laser.position = CGPoint(x: 100, y: 200) 
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 
} 

のようにレーザーをインスタンス化できるようになり、次の操作を行う必要があるでしょう、あなたの例では

しかし、あなたはおそらく、本当にあなたがこのlet aLaser = laser("playerShip")ようなレーザーをインスタンス化することを可能にする、これを望んでいました。次に、このような位置を変更することができますalaser.position = CGPoint(x: 100, y: 200)

この方法では、さまざまなレーザーに対してスプライトと位置を簡単に変更できます。ゲームにレーザーが1つしかない場合を除きます。

class laser: SKSpriteNode { 

    init(_ imageName: String) { 
     let texture: SKTexture = SKTexture(imageNamed: imageName) 

     super.init(texture: texture, color: .clear, size: texture.size()) 
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 

} 
関連する問題