2016-03-24 9 views
3

Ich habe eine App mit großen Kisten auf die kleine rote Box fallen. Ich würde gerne wissen, wann der kleine rote Block ein bestimmtes Gewicht erreicht (X Blöcke liegen oben drauf). Ich konnte keine Gewichtseigenschaft für den roten Block finden. Irgendwelche Vorschläge? ScreenshotSpriteKit - Das Gewicht eines SKSpriteNode bekommen

EDIT: Nur um zu klären. Die Boxen, die von oben fallen, sind zufällige Größen und fallen von zufälligen Positionen ab. Es gibt also nicht wirklich einen Weg zu verfolgen, was auf dem roten Block landete. Ich brauche einen Weg, um die auf den roten Block wirkende Abwärtskraft zu messen.

+0

Nicht sicher, warum dies abgelehnt wurde (?), Weil es eine ziemlich interessante Frage ist! Vielleicht solltest du [a force] (https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKPhysicsBody_Ref/#//apple_ref/occ/instp/SKPhysicsBody/mass) auf deine Blöcke anwenden. Dann sollte die Masse Ihres roten Blocks ansteigen (ich denke, Sie müssen die Eigenschaft "affectedByGravity" auf "true" setzen). Kann jetzt nichts testen, aber ich denke, die Lösung liegt in SKPhysicsBody – Heyfara

+1

Masse sollte nicht durch die Schwerkraft beeinflusst werden, sonst würden Sie sagen, dass die Masse eines Objekts auf der Erde ist anders als die Masse eines Objekts auf dem Mond. @StackOverflower, ich glaube nicht, dass die eingebaute Physik das Gewicht für dich berechnet, du musst das vielleicht manuell machen (node.mass * gravity), dann wende die Menge an Kraft an, die die anderen Blöcke darüber auf den Block anwenden . Für Ihr Szenario mit dem gekippten Block müssen Sie möglicherweise herausfinden, wie viel der gekippten Blockmasse tatsächlich auf dem roten Block ist. – Knight0fDragon

+0

Ist die Physik-Engine hochentwickelt genug, dass Sie eine Aufwärtskraft auf den roten Block anwenden und diese allmählich erhöhen können es beginnt sich zu bewegen? –

Antwort

0

Sie können das Gewicht für jeden Knoten folgendermaßen berechnen und dann zusammen addieren.

redBox.PhysicsBody?.mass 
+0

Die großen Blöcke werden von den oben genannten zufälligen Positionen fallen, so dass einige nicht auf dem roten Block landen. – StackOverflower

+0

Überprüfen Sie, ob zwischen dem fallenden Block und dem roten Block eine Kollision besteht. – Nils

+0

Das würde nicht funktionieren, wenn ein großer Block umkippte und halb auf dem roten Block war – StackOverflower

Verwandte Themen