Ich versuche, Druck mit einer Sammlung kugelförmiger Partikel in einem Unity-Spiel zu simulieren, das ich baue. Ein paar Anmerkungen zum Problem:
- Das Ziel ist es, einen sich ständig ändernden 2D-Raum / Hohlraum mit kleinen, reibungslosen Kugeln zu füllen. Das Spiel versucht, den ständig wachsenden Druck von mehr Objekten zu simulieren, die in diesen Raum geschoben werden.
- Die Ebene selbst scrollt ständig von links nach rechts. Wenn die Abmessungen des Raums vom Benutzer nicht geändert werden, wird sie automatisch kleiner (der am weitesten links stehende Teil des Raums wird kontinuierlich außerhalb des Bildschirms gescrollt).
Ich frage mich, welche Ansätze ich zur Lösung dieser Probleme wählen kann ...
- Wissen, wann zu erkennen ist, wann Platz zum Füllen vorhanden ist, und dann dem Raum Kugeln hinzufügen.
- Entfernen von Kugeln aus dem Raum, wenn dieser schrumpft.
- Strategien zur Simulation des Drucks auf die Kugeln, so dass sie "nach außen explodieren", wenn mehr Platz geschaffen wird.
Der aktuelle Ansatz, über den ich nachdenke, ist die Verwendung einer sich ständig bewegenden Wand, die sich außerhalb des Bildschirms befindet und sich mit dem Bildschirm bewegt, wie dieses Bild zeigt:
.
Diese sich bewegende Wand drückt und fängt die Kugeln in den Raum ein. Was das Hinzufügen neuer Kugeln angeht, so sollte ich entweder (1) Kugeln beim Erkennen des freien Raums replizieren oder (2) sie auf der linken Seite des Raums (wo sich die Wand befindet) erzeugen - den Rest der Kugeln dazu drücken fülle den Raum aus. Ich sehe Probleme mit Idee Nr. 1 voraus, da dies wahrscheinlich keinen Druck erzeugen / simulieren würde. Idee Nr. 2 scheint vielversprechender zu sein, wirft jedoch die Frage auf, wie diese neuen Kugelpartikel zum Laichen gebracht werden können (und welche Auswirkungen es hat, wenn sie keinen Platz haben).
Vielen Dank im Voraus für Ihre Weisheit!