To pytanie projektowe ... Jestem pewien, że można by to bardziej uogólnić, ale mam z tym trudności. Zastanawiam się nad projektowaniem interakcji między obiektami w grze - oto mój przykład (2D puzzle-platformówka).
Powiedz, że gracz próbuje przejść poziom. Istnieje wiele świateł, które można skierować w różnych kierunkach. Oto przykład interakcji tych lekkich obiektów ...
- Jedno światło rzuca platformę, która pozwala graczowi przekroczyć lukę
- Jedno światło obniża współczynniki tarcia czegokolwiek dotyka, inne zwiększa
- Jedno światło niweluje skutki wszystkich świateł, które powodowałyby, że platforma znikała, gdy światło było włączone, i niwelowało modyfikatory tarcia
- Itp...
Jaki jest najlepszy sposób rozwiązania tego problemu przy użyciu architektury komponentów? Komponenty dla każdego dużego obiektu wydają się oczywiste, a także czysty sposób na zdefiniowanie ich wpływu na środowisko. Klasa „rozwiązująca” interakcję (wygląda na to, że może to szybko popsuć bałagan)? Jakieś użycie wzorca dekoratora do tworzenia połączonych obiektów dla tych, które oddziałują w danym momencie? Struktura danych, która się do tego nadaje?
Czy łączysz audio z tymi interakcjami? Wygląda na to, że podłączenie audio do systemu byłoby jak podłączenie dowolnej innej właściwości, takiej jak widoczność lub ruch / kolizja gracza.
Oczywiście w miarę dodawania kolejnych komponentów byłoby miło, gdyby istniał solidny system, który mógłby obsługiwać nowe z niewielkimi modyfikacjami, ale nie jestem pewien, jak zająć się projektowaniem tego.
Inne informacje: Używam silnika XNA o nazwie IceCream .