2016-09-27 43 views
-1

現在我正在與水果忍者類似的遊戲工作,我開始使用雪碧工具包,並開發了刀片效果(刷屏)。現在第二部分是添加節點(如遊戲中的水果)。我嘗試了很多,但沒有獲得添加水果的動畫和角度。以下是我的代碼。雪碧工具包:SKNodes加入動畫像水果忍者的屏幕

func createApple() { 
    fruitNode = SKSpriteNode(imageNamed: "apple") 
    fruitNode.anchorPoint = CGPointZero 
    fruitNode.position = CGPoint(x:568, y:50); 
    fruitNode.name = "bulletNode" 
    fruitNode.zPosition = 1.0; 
    fruitNode.size.width = fruitNode.size.width/6 
    fruitNode.size.height = fruitNode.size.height/6 

    fruitNode.physicsBody = SKPhysicsBody(circleOfRadius: 60) 
    fruitNode.physicsBody?.categoryBitMask = PhysicsCategory.fruitNode.rawValue 
     fruitNode.physicsBody?.contactTestBitMask = PhysicsCategory.Spiral.rawValue 
     fruitNode.physicsBody?.affectedByGravity = false 

     let wait = SKAction .moveToX(self.frame.origin.x - fruitNode.size.width, duration: 4) 
     fruitNode.runAction(wait, completion: {() -> Void in 
     self.fruitNode.removeFromParent() 
}) 

addChild(fruitNode) 

}

+0

如果你不提供任何細節或代碼,你不能指望任何人來幫助你。我(和其他許多人)想要幫助,但我根本不能。 –

+0

這不是SO的目的。去找一個教程,並嘗試編寫你的代碼。如果您遇到特定問題,請回來,發佈您的代碼並告訴我們您希望它做什麼以及它實際上做了什麼。我們不知道你的精靈是否沒有出現在屏幕上,或者如果他們的大小錯誤或錯誤的地方,如果他們沒有墜落,如果他們正在墜落,但你不能打他們等等。 –

+0

我可以給隨機的X,Y軸並將它移動到屏幕上? –

回答

1

我實現它,工作精湛......

func createPineApple() { 
    pineAppleNode = SKSpriteNode(imageNamed: "pine") 
    pineAppleNode.anchorPoint = CGPointZero 
    pineAppleNode.name = "pineNode" 
    pineAppleNode.zPosition = 1.0; 
    pineAppleNode.size.width = pineAppleNode.size.width/6 
    pineAppleNode.size.height = pineAppleNode.size.height/6 
    pineAppleNode.position = CGPoint(x:CGFloat(randomsX()), y:-pineAppleNode.size.height); 
    pineAppleNode.physicsBody = SKPhysicsBody(rectangleOfSize: pineAppleNode.size) 
    pineAppleNode.physicsBody?.categoryBitMask = PhysicsCategory.PineApple.rawValue 
    pineAppleNode.physicsBody?.contactTestBitMask = PhysicsCategory.Blade.rawValue 
    pineAppleNode.physicsBody?.collisionBitMask = PhysicsCategory.None.rawValue 
    pineAppleNode.physicsBody?.affectedByGravity = false 

    let xAz = Int(randomsX()) 
    let yAz = Int(self.frame.size.height - pineAppleNode.size.height) 

    let xAz1 = Int(randomsX()) 
    let yAz1 = Int(-pineAppleNode.size.height) 

    let p = CGPoint(x:xAz,y:yAz) 
    let p2 = CGPoint(x:xAz1,y:yAz1) 

    let randPos = SKAction.moveTo(p, duration: 1) 
    let randPos2 = SKAction.moveTo(p2, duration: 1) 
    let sequence = SKAction.sequence([randPos,randPos2]) 
    pineAppleNode.runAction(SKAction.repeatAction(sequence, count: 1), withKey: "moving") 

    let waist = SKAction.waitForDuration(2.5) 
    let run = SKAction.runBlock { 
     //self.fruitNode.removeFromParent() 
    } 

    self.runAction(SKAction.sequence([waist, run])) 
    addChild(pineAppleNode) 
} 
1

你混淆使用操作的位置值的運動通過使用行動的創建運動對物理對象施加力量/衝動。

使用物體對象是一個好主意。你想要的是從屏幕下方的位置以不同的速率和角度拋出物體,通過施加力/衝擊物體。

這裏有很多棘手的部分,其中最重要的部分是使用的力/衝量大小範圍以及與此相關的角度範圍,因此所有水果都可以切片。您還需要重新創建水果「發射器」的運動。