Wiem, że Sean James już to powiedział . Ale poważnie, Visual Studio (w szczególności narzędzia do debugowania) jest do tego świetne.
W dzisiejszych czasach nie używam C ++, więc nie jestem pewien, jak dobrze mają one zastosowanie. Ale dla C # (w tym w C # Express) masz:
- Edytuj i kontynuuj - gdzie możesz dokonać hurtowych zmian w logice gry.
- Watch Okno - gdzie można zobaczyć i modyfikować zmienne z łatwością.
A to może zaskoczyć twój umysł (wysadziło moje, gdy się o tym dowiedziałem):
Okno Natychmiastowe jest w zasadzie trudne do znalezienia (znajduje się w menu Debugowanie / Windows).
Jedynym poważnym minusem korzystania z debugera Visual C # jest to, że nie lubi zmieniać const
wartości. Więc zazwyczaj zmieniam swoje wartości związane z rozgrywką static
podczas ich ulepszania.
(Również: posiadanie dwóch monitorów bardzo pomaga.)
Teraz muszę przyznać, że powyższa metoda polega na wstrzymaniu aplikacji - co może być niezadowalająco powolne w przypadku kilku szczególnie kłopotliwych rzeczy.
W tych rzadkich przypadkach to, co robię (w XNA), to po prostu włamać się do odrobiny kodu (prawdopodobnie używając Edycji i Kontynuuj, jak wyżej), aby pobrać Keyboard.GetState().IsKeyDown()
(w rzeczywistości mam łatwiejsze do pisania opakowanie) i dostosować wartość przez naciśnięcia klawiszy. Coś bardziej skomplikowanego nie jest warte wysiłku.
W praktyce to, co zwykle uważam za znacznie ważniejsze, to wizualizacja (zamiast modyfikowania) wartości w czasie rzeczywistym. Do tego mam ładną małą klasę, która może buforować linie i tekst do narysowania na końcu ramki. Jest także przydatny do szybkiego prototypowania.
(I po raz kolejny miło jest móc „edytować i kontynuować” te wizualizacje w czasie wykonywania.)
(źródło: andrewrussell.net )
( stąd )
Obawiam się, że nie mam obecnie „miłego” źródła do opublikowania (może później). Ale to w zasadzie tylko lista linii (dla tej biblioteki okrągłych linii ) i ciągów (dla wbudowanego w XNA SpriteBatch). Po prostu zrób to public static
gdzieś i narysuj wszystko odpowiednią transformacją, aby wszystko pojawiło się w „przestrzeni świata” (a następnie wyczyść listy dla następnej klatki).