1
在我的遊戲中,我創建了一些受重力影響的球。當遊戲開始時,他們從屏幕外落下並將他們的位置放在底部。沒有其他力量適用於他們。SpriteKit物理每次給予不同的結果
問題是我創建這些球與精確座標,精確的物理屬性,如前面的一個,但結果是不一樣的。它相似但不相同。但我認爲它應該完全一樣,因爲每次價值都是一樣的。
你知道爲什麼會發生這種情況嗎?我該如何解決它?
這是我如何創建精靈節點:
BallSpriteNode *sprite = [BallSpriteNode spriteNodeWithTexture:ballTexture];
sprite.xScale = scale;
sprite.yScale = scale;
sprite.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:sprite.size.width/2];
sprite.physicsBody.density = 1.0f;
sprite.physicsBody.restitution = 0;
sprite.physicsBody.dynamic = YES;
sprite.physicsBody.categoryBitMask = ballHitCategory;
sprite.physicsBody.contactTestBitMask = ballHitCategory;
sprite.physicsBody.collisionBitMask = ballHitCategory;
CGPoint startPosition = CGPointMake(xPosition, yPosition);
sprite.position = startPosition;
[bounceScene addChild:sprite];
如果你想確切的結果,每次不要讓物理引擎,以確定應該發生什麼。掌握自己的手。意思是,禁用物理引擎,直到你將對象放在它們的初始位置。然後,使用SKActions在適當的位置移動對象。之後,您可以重新啓用這些對象上的物理實體,並且您可以輕鬆前往。 – Whirlwind
對我來說這不是一種選擇我有多個關卡,並且在每個關卡中都有不同的套球命令。我無法爲每一種不同的情況做到這一點。物理學應該保持一致。 – mkeremkeskin
那麼問題在哪裏?爲每個對象創建一個數組起始位置(或者定義一個代表其起始位置的每個球的CGPoint)。你不能以你想要的方式依賴物理引擎。 – Whirlwind