2010-09-23 13 views
5

ho chiesto questo sui forum XNA, ma credo che dal momento che la maggior parte delle persone ci sarebbero specializzarsi in C# non ho avuto molto aiuto con questoProgrammazione giochi Xbox con Scala

ho qualche codice per un gioco scritto in Scala. Al momento sto compilando tutto in Bytecode Java ma il compilatore Scala ha una versione .Net. Con questo in mente, e poiché il design modulare è una buona pratica in generale, ho scritto un'interfaccia grafica e adesso uso una classe OpenGLGraphics che implementa questa interfaccia che contiene ogni riga del codice OpenGL nel mio programma. Nel mio mondo perfetto sarei in grado di scambiare la mia classe OpenGLGraphics fuori per una classe XNAGraphics ed eseguire il mio gioco su una Xbox senza ulteriori porting, beh, forse qualche modifica, ma immagino che non è così semplice.

Ho fatto un po 'googling e ho non è riuscito a trovare un esempio di chiunque che prova questo. Io ho esperienza con la programmazione XNA e il primo problema che viene in mente è che non v'è alcun plug-in Scala per Visual Studio e la programmazione XNA sembra essere molto Visual Studio centric, posso almeno avere Visual Studio per compilare il codice non C# in un XNA progetta o imposta un progetto XNA e una pipeline di contenuti senza Visual Studio?

+0

Penso Scala il .NET non è attualmente completamente funzionante, anche se ci sono lavori in corso in quest'area. – ziggystar

risposta

3

È possibile configurare eventi pre e post-compilazione arbitrari nell'IDE creando un progetto C#, facendo clic con il pulsante destro del mouse sul progetto per aprire le pagine delle proprietà e selezionando "Crea eventi". Dovrebbe essere presente una "riga di comando evento pre-build" e una "riga comandi evento post-generazione" in cui si specificano comandi arbitrari da eseguire come parte della generazione. Tuttavia, forse una scelta migliore sarebbe quella di creare MSBuild file di generazione a mano e utilizzando l'attività Exec per eseguire comandi arbitrari.

V'è una certa discussione su Scala integrazione in VS here che discute anche le attività MSBuild personalizzati.

0

Finché è possibile puntare il compilatore alla versione corretta degli assembly XNA e produce un assembly CLR corretto, la soluzione migliore è quella di rifattorizzare tutto il codice di gioco in un file .dll/assembly. Quindi, crea un normale progetto XNA come di consueto, fai riferimento al tuo gruppo scala e fai semplicemente riferimento al codice dal gruppo scala per avviare il gioco XNA.

per essere sicuri, ci sarebbe voluto un po 'di refactoring, ma suona come hai già fatto la maggior parte del lavoro avendo un renderer astratto e tutto ciò che