2017-11-27 14 views
0

私は、画面上に一度に約8個のSKPhysicsを持っているゲームを持っています。そのうち2つは単純な正方形で、テクスチャで作成されています。テクスチャはそれほど複雑ではありません。画像はhttps://imgur.com/a/qJXL7(黒は透明です)です。問題は、テクスチャで作成されたPhysicsBodyを生成するたびに、ゲームが数ミリ秒間フリーズしてゲーム全体が壊れてしまうことです。どのようにしてゲームのパフォーマンスを上げることができますか?物理を作成する方法は次のとおりです.Body:物理学のテクスチャがfpsを遅くする

createObstacle1() { 
let obstTexture1 = SKTexture(imageNamed: "obst1") 
let obst1 = SKSpriteNode() 
    obst1.size = CGSize(width: 30, height: 30) 
    obst1.color = player.color 
    obst1.zPosition = 3 
    obst1.physicsBody = SKPhysicsBody(texture: obstTexture1, size: obst1.size) 
    obst1.physicsBody?.affectedByGravity = false 
    obst1.physicsBody?.allowsRotation = false 
    obst1.physicsBody?.isDynamic = false 
    obst1.physicsBody?.restitution = 0 
    obst1.physicsBody?.linearDamping = 0 
    obst1.physicsBody?.angularDamping = 0 
    obst1.physicsBody?.friction = 0 
    obst1.physicsBody?.categoryBitMask = 3 
    obst1.physicsBody?.collisionBitMask = 1 
    obst1.physicsBody?.contactTestBitMask = 1 
    obst1.name = "obst1" 

    self.addChild(obst1) 
} 
+0

ものは、高価な光/影計算を引き起こし、例えばガラスのような透明のthats。白いテクスチャや透明度のないテクスチャを使って違いがあるかどうか試しましたか? – Katianie

+0

アップルがテクスチャと物理をどのように扱うかによって、物理的ボディが非常に複雑になることがあります。輪郭曲線は2ピクセルごとに1行になる可能性があります。 – Knight0fDragon

+0

更新サイクル中にボディを作成せず、ロードフェーズ中にボディを作成します – Knight0fDragon

答えて

0

いつ、どこで障害物を作成しますか? Knight0fdragonと言っているように、更新イベントを作成しようとする必要があります。 愚かな質問です。実際のデバイスやシミュレータでテストしますか?

Salutの、 ホセM

+0

私は実際のデバイスでテストしますが、テクスチャはもう使用しません。 –

+0

あなたは更新プログラムを起動していますか?アップデートのdifferentsイベントをチェックして、うまくいくはずです。 – JosepM

関連する問題