So che Sean James l'ha già detto . Ma seriamente, Visual Studio (in particolare gli strumenti di debug) è fantastico per questo.
Non uso molto C ++ in questi giorni, quindi non sono sicuro di quanto bene si applichino lì. Ma per C # (incluso in C # Express) hai:
E questo potrebbe farti impazzire (è scoppiato nel mio quando l'ho scoperto):
La finestra immediata è in realtà un po 'difficile da trovare (è nel menu Debug / Windows).
L'unico aspetto negativo principale dell'utilizzo del debugger di Visual C # è che non gli piace cambiare i const
valori. Quindi di solito applico i miei valori relativi al gameplay static
mentre li sto modificando.
(Inoltre: avere due monitor aiuta molto.)
Ora devo ammettere che il metodo sopra descritto comporta la sospensione dell'applicazione, che può essere insoddisfacentemente lenta per alcune cose particolarmente difficili.
In queste rare occasioni, ciò che faccio (in XNA) è semplicemente hackerare un po 'di codice (probabilmente usando Modifica e Continua, come sopra) per afferrare Keyboard.GetState().IsKeyDown()
(in realtà ho un wrapper più facile da digitare per questo) e regolare il valore tramite i tasti. Qualcosa di più complicato non vale la pena.
In pratica, ciò che di solito trovo molto più importante è poter visualizzare (piuttosto che modificare) i valori in tempo reale. Per questo ho una bella piccola classe che può bufferizzare linee e testo da disegnare alla fine del frame. È anche utile per la prototipazione rapida.
(E, ancora una volta, è bello poter "modificare e continuare" queste visualizzazioni in fase di esecuzione.)
(fonte: andrewrussell.net )
( da qui )
Temo di non avere una "bella" fonte da pubblicare al momento (forse più tardi). Ma è fondamentalmente solo un elenco di linee (per questa libreria di linee rotonde ) e stringhe (per SpriteBatch incorporato di XNA). Basta farlo da public static
qualche parte, e disegnare tutto con una trasformazione appropriata in modo che tutto appaia nello "spazio mondiale" (e quindi cancellare gli elenchi per il fotogramma successivo).