Tworzę grę opartą na płytkach 2D. Używam poszarpanej tablicy 2D do przechowywania liczby całkowitej, a renderer rysuje określony obraz w zależności od tego, jaka jest ta liczba całkowita. Mam tę część mojego kodu działającego, jednak doszedłem do punktu, w którym nie jestem pewien, jak postępować dalej.C# Arrays - Używanie ich do przechowywania poziomu gry
Gdy odtwarzacz przechodzi przez grę, muszę mieć możliwość przechowywania informacji o każdej komórce w tablicy 2D, takich jak poziom światła lub liczba kliknięć przez użytkownika tej komórki lub obrót wartość obrazu w tej komórce lub poziom alfa dla tego obrazu itp.
Jedyny sposób, w jaki mogę to zrobić, to stworzyć tablicę 2D, tak jak zrobiłem to wcześniej, dla każdej informacji "Używam. Tak więc na przykład:
AlphaLevel[][]
NumberOfTimesClicked[][]
A potem, jeśli potrzebne (na przykład), aby sprawdzić, ile razy użytkownik kliknął komórka 5,5 mogę zrobić NumberOfTimesClicked [5] [5], lub jeśli potrzebowałem ustaw rotację, którą mógłbym wykonać SetRotation [5] [5] = 90.
Rzecz, której nie jestem pewien, to to, jak wydajna jest, posiadanie tablicy dla każdej informacji nie wydaje się, że pamięć jest wydajna.
Czy pomysł mam dobre rozwiązanie, czy jest lepszy sposób, o którym nie myślałem?
Każda rada byłaby świetna! Dzięki
Może Ci się przydać [Wzór ciężaru] (http://en.wikipedia.org/wiki/Flyweight_pattern). – JDB
["1. Spraw, aby działało 2. Spraw, aby działało prawidłowo 3. Spraw, aby działało szybko."] (Http://c2.com/cgi/wiki?MakeItWorkMakeItRightMakeItFast) Próbujesz zacząć od kroku 3. Start w kroku 1 i zoptymalizuj, gdy odkryjesz wąskie gardła. – cdhowie