2016-09-27 10 views
-1

今、私はフルーツ忍者に似たゲームに取り組んでいます。スプライトキットで始め、ブレード効果(スクリーンをスワイプする)を開発しました。 2番目の部分はノードを追加することです(ゲームの果物など)。私はたくさん試しましたが、果物を追加するためのアニメーションや角度は得られませんでした。以下は私のコードです。スプライトキット:フルーツ忍者のようなアニメーションでスクリーンに追加する

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

あなたは、アクションへの使用を経由して動きを作り出すとの位置の値の動きなどのアクションの使用を混乱しています物理オブジェクトに力/衝動を適用する。

Physicsオブジェクトを使用するとよいでしょう。あなたが望むのは、オブジェクトへの力/衝動の適用を介して、スクリーンの下の位置から様々な速度と角度でオブジェクトを投げることです。

これには多くのトリッキーな部分がありますが、使用する力/インパルスサイズの範囲と、これに関連して発射する角度の範囲は限られているので、すべての果物はスライス可能です。また、果物の「エミッタ」の動きを再現する必要があります。

関連する問題