Hvordan skrive en Effect fil for XNA-spill

Microsofts XNA Game Studio er et kraftig, gratis utviklingsverktøy som fungerer i tandem med Microsoft Visual Studio. Sammen kan brukerne raskt lage spill til Xbox 360, Windows og Windows 7 telefoner. Effekt filer lar brukerne lage sine egne tilpassede shaders. Shaders er et sett av programvare instruksjoner som forteller datamaskinen hvordan å gjengi grafikk. Disse instruksjonene gi programmerere en stor grad av fleksibilitet, gi dem kontroll over hver enkelt piksel i en tekstur. Shaders er vanligvis brukes under polsk fasen av et spill, og en felles måten de brukes på er å bestemme skygger og lys.

Bruksanvisning

1 Åpne Microsoft Visual Studio C # Express. Opprett et nytt prosjekt ved å klikke på "File" og velge "New Project" fra-rullegardinmenyen. Velg "Windows spill," gi prosjektet et navn og velg en plassering der du ønsker at løsningen skal bli frelst.

2 Høyreklikk på "Innhold" -prosjektet som ligger i "Solution Explorer". Velg "Legg til" og deretter "Nytt element." Dette bringer opp et nytt vindu. Velg "Effect File," navnet på filen og klikk "Legg til". En ny fil med en .fx utvidelsen vil vises i "Innhold" prosjekt.

3 Rediger .fx filen ved hjelp av High Level Shader Language (HLSL). HLSL er et høynivå programmeringsspråk, som ligner på C ++ og C Klikk på ikonet på "Standard Toolbar" for å lagre.

4 Åpne opp "Game1.cs" fil. Last den lagrede effekt fil ved å skrive følgende rett over spillet konstruktør:

Effekt effekt;

Bla ned til "LoadContent ()" metoden og skriv inn følgende:

Effekten = Content.Load <Effect> ( "Effect1");

Navnet i anførselstegn er hva du heter din .fx fil. Når effekten filen er lastet, kan du fritt bruke det i ditt program.

5 Eksperimenter med ulike implementeringer av din effekt fil ved å bla ned til "Draw (Gametime gametime)" funksjonen på din "Game1.cs" class og skriv inn navnet du instansiert effekten med etterfulgt av en periode. Visual Studio IntelliSense vil vise en rullegardinliste over tilgjengelige medlemmer og metoder i forbindelse med "Effect" klasse.