Próbuję symulować ciśnienie za pomocą zbioru kulistych cząstek w budowanej przeze mnie grze Unity. Kilka uwag na temat problemu:
- Celem jest wypełnienie stale zmieniającej się przestrzeni 2d / pustki małymi, pozbawionymi tarcia kulkami. Gra próbuje zasymulować rosnącą presję coraz większej liczby obiektów wpychanych w tę przestrzeń.
- Sam poziom ciągle przewija się od lewej do prawej, co oznacza, że jeśli wymiary przestrzeni nie zostaną zmienione przez użytkownika, automatycznie się zmniejszą (skrajna lewa część przestrzeni będzie ciągle przewijać poza ekran).
Zastanawiam się, jakie są niektóre podejścia, które mogę podjąć, aby rozwiązać te problemy ...
- Wiedząc, kiedy wykryć, kiedy jest miejsce do wypełnienia, a następnie dodać kulki do tego miejsca.
- Usuwanie kulek z przestrzeni, gdy się kurczy.
- Strategie symulowania nacisku na kule, tak aby „eksplodowały na zewnątrz”, gdy powstanie więcej miejsca.
Obecne podejście, które rozważam, polega na użyciu stale poruszającej się ściany, która jest poza ekranem i porusza się wraz z ekranem, jak pokazano na tym zdjęciu:
.
Ta ruchoma ściana popchnie i uwięzi kule w przestrzeni. Jeśli chodzi o dodawanie nowych sfer, zamierzałem, aby albo (1) sfery powielały się po wykryciu wolnego miejsca, LUB (2) spawnowały je po lewej stronie przestrzeni (tam, gdzie jest ściana) - popychając pozostałe kule do wypełnić przestrzeń. Przewiduję problemy z pomysłem nr 1, ponieważ prawdopodobnie nie stworzyłoby to / nie symulowałoby presji; pomysł nr 2 wydaje się bardziej obiecujący, ale rodzi pytanie, jak zapewnić lokalizację dla tych nowych cząstek kuli (i konsekwencje ich odradzania, gdy nie ma miejsca).
Z góry dziękuję za waszą mądrość!