2016-07-01 20 views
1

私はゲームを作成しています。私はヒーローの物理境界をコード化しようとしています。私のシーンを実装し、私は "desertForeground"でアルファマスクのテクスチャ物理学のボディを作成しようとしていますが、エラーは発生しませんが、クラッシュし続け、このエラーが発生し、基本的に無効な命令だと言われていますが、なぜ間違っているのかは分かりません。 Error screenshot 誰か助けてくれますか?私はあなたがdesertForegroundTextureを移入する方法に問題があるSWIFT起動時のアルファマスク/テクスチャ物理学のボディの致命的なエラー

import SpriteKit 

enum BodyType:UInt32 { 

case hero = 01 

case bullet1 = 010 

case enemy1 = 0100 
case enemy2 = 01000 
case enemy3 = 010000 

case desertForegroundCase = 02 
} 
class GameScene: SKScene, SKPhysicsContactDelegate { 

    let desertBackground = SKSpriteNode (imageNamed: "RZ- 
DesertBackground.png") 
let desertForeground = SKSpriteNode (imageNamed: "RZ- 
DesertForeground.png") 
let desertgully = SKSpriteNode (imageNamed: "RZ-DesertGully.png") 

    override func didMoveToView(view: SKView) { 
     CreateScene() 
} 
    func CreateScene(){ 

    desertForeground.position = CGPoint(x: 570 , y: 102) 
    desertForeground.size = CGSize (width: 1136, height: 200) 
    desertForeground.zPosition = 1 

    let desertForegroundTexture = SKTexture() 
    let desertForegroundBody = SKPhysicsBody(texture: 
    desertForegroundTexture, size: CGSize(width: 1136, height: 200)) 

    desertForeground.texture = desertForegroundTexture 

    desertForegroundBody.dynamic = true 
    desertForegroundBody.affectedByGravity = false 
    desertForegroundBody.allowsRotation = false 
    desertForegroundBody.categoryBitMask = 
        BodyType.desertForegroundCase.rawValue 
    desertForegroundBody.contactTestBitMask = BodyType.enemy1.rawValue 
    | BodyType.enemy2.rawValue | BodyType.enemy3.rawValue | 
     BodyType.soldierL.rawValue | BodyType.soldierT.rawValue 

    desertForeground.physicsBody = desertForegroundBody 
} 
} 

答えて

1

で物理学体をコーディングにはかなり新しいです。

あなたは空のテクスチャからphysicBodyを作成しようとすると、あなたの問題が来る。この

let desertForegroundTexture = SKTexture(imageNamed: "YOUR_IMAGE_NAME") 
0

この

let desertForegroundTexture = SKTexture() 

置き換えます。たとえばこのため、実際には

/** 
    Creates a body from the alpha values in the supplied texture. 
    @param texture the texture to be interpreted 
    @param size of the generated physics body 
    */ 
    @available(iOS 8.0, *) 
    public /*not inherited*/ init(texture: SKTexture, size: CGSize) 

をあなたの次のようなSKSpriteNodeを作成しようとすると、何も起こらない:

let desertForegroundTexture = SKTexture() 
desertForeground = SKSpriteNode(texture: desertForegroundTexture, size:CGSize(width: 1136, height: 200)) 
関連する問題