2017-08-07 10 views
0

ビットマスクカテゴリの作成を試みました。すべての反復値を1に設定し、アプリケーションをデバイスで実行することを含め、太陽の下ですべてを設定しました。リプレイス1でSKSpriteNodeを設定した後、別のskspritenodeにdx:100でのリプレイスメント1を打つと、それはまだバウンスしません!ここでGameScene.swiftのための私のコードは次のとおりです。ビットマスクがどこにあるかSpriteKitの何かで反作用が働いていません

import SpriteKit 
import GameplayKit 

class GameScene: SKScene { 

override func didMove(to view: SKView) { 

    let Ball = SKSpriteNode() 
    Ball.self.childNode(withName: "Ball") 

    let playerPaddle = SKSpriteNode() 
    playerPaddle.self.childNode(withName: "playerPaddle") 

    let computerPaddle = SKSpriteNode() 
    computerPaddle.self.childNode(withName: "computerPaddle") 

    let ballCategory: UInt32 = 0x1 << 1 
    let paddleCategory: UInt32 = 0x1 << 2 
    let borderCategory: UInt32 = 0x1 << 3 

    Ball.physicsBody?.categoryBitMask = ballCategory 
    playerPaddle.physicsBody?.categoryBitMask = paddleCategory 
    computerPaddle.physicsBody?.categoryBitMask = paddleCategory 
    self.physicsBody?.categoryBitMask = borderCategory 

    let playerScore = SKLabelNode() 
    playerScore.fontName = "Pong Score" 
    playerScore.text = "0" 
    playerScore.fontSize = 100 
    playerScore.color = SKColor.white 
    playerScore.position = CGPoint(x: -200, y: 220) 
    playerScore.zPosition = 3 
    addChild(playerScore) 

    let comScore = SKLabelNode() 
    comScore.fontName = "Pong Score" 
    comScore.text = "0" 
    comScore.fontSize = 100 
    comScore.color = SKColor.white 
    comScore.position = CGPoint(x: 200, y: 220) 
    comScore.zPosition = 3 
    addChild(comScore) 

    var comScoreInt: Int = Int(comScore.text!)! 
    comScoreInt += 1 
    comScore.text = String(comScoreInt) 

    var playerScoreInt: Int = Int(playerScore.text!)! 
    playerScoreInt += 1 
    playerScore.text = String(playerScoreInt) 

    let bodyBorder = SKPhysicsBody(edgeLoopFrom: self.frame) 
    bodyBorder.friction = 0 
    bodyBorder.restitution = 1 
    self.physicsBody = bodyBorder 
} 
} 

PS物理学​​のほとんどすべてがGameScene.sksないGameScene.swiftである、しかし、これはあります。

編集:

ボール構成;

位置X:0、Y:0、Z 0、

回転:0、

サイズ:W:25、H:25、

アンカーポイントX:0.5、 Y:0.5、

色:白、

ブレンドファクタ:0、

ブレンドモード:アルファ、

アルファ:1、

Ikの制約:最小:0、最大:360、

スケール:X 1、Y 1、

PHYSICS

体型:バウンディングRECT、

のみ、動的にチェック、

摩擦:0、

反発:湿っ1、

Linuar:0、

湿った角度:0、

カテゴリー、衝突、およびフィールドマスク:4294967295、

コンタクトマスク:0

慣性速度:dx:100dy:0

パドルは同じ物理学的な賢さ お願いします!

+0

コメントを働き始めたが、拡張議論のためではありません。この会話は[チャットに移動]されています(http://chat.stackoverflow.com/rooms/151298/discussion-on-question-by-isaac-dragon-restitution-not-working-on-anything-in-sp) 。 –

答えて

0

ので、同様に、私が代わりにGameScene.swiftに力を適用GameScene.sksでInital速度適用のINSEAD:Ball.physicsBody?.applyImpulse(CGVector(dx:50, dy:0))反発が

関連する問題