Üks avatud lähtekoodiga seotud probleeme on see, et projektid näivad mõnikord olevat kõrvale jäänud või võtavad segaseid pöördeid. Võtke SDL.NET. Kui ignoreeritakse müüdavat veebisaiti, selgub otsingust veebis cs-sdl.sourceforge.net projekt, mis näib olevat 2010. aasta novembris peatunud. Me ei arva, et see on lakanud, vaid lihtsalt tundub, nagu tal on.
Kui te ei tea C #, peate kõigepealt õppima, kuidas seda teha programm C #. Mujalt vaadates sattusime Mono veebisaidil lingitud Tao raamistikku, mis näib katvat sama piirkonda ja lisades tuge helile jne. Lähteformi (jälle!) Vaadates on see aga asendatud OpenTK kuid seal on fookuses OpenGL. Kuid see sisaldab ka OpenAL-i, nii et nende kahe (cs-sdl ja OpenTK) installimine tundus olevat edasiminek.
Osa OpenTki installimisest nurjus; NS (shader), kuna meil pole VS 2008 installitud! Ülejäänud asi oli siiski ok. Lõime C # konsooli projekti ja hakkasime mängima SDL.NET-iga. Veebidokumentatsiooni leiate siit.
Tagantjärele vaadates näeme, et OpenTK-i raamistikku kui sellist ei olnud vaja, et SDL.NET installis kõik, kuid see polnud sel ajal veel selge. Tao raamistikku kasutab ta endiselt, ehkki OpenTK asendas selle arendamise. See on pisut segane ja loodame, et SDL.NET-i meeskond toob tulevikus välja OpenTk-iga ühilduva versiooni.
See pole, nagu me arvasime, lihtsalt õhuke ümbris SDL-vormingus, vaid lisab märkimisväärset lisafunktsionaalsust. Pakutakse mitmeid klasse, mis pakuvad järgmist:
Leidke kaks SDL.NET-faili (SdlDotNet.dll ja Tao. Sdl.dll) kui ka OpenTK dll-id ja lisage need projekti viidete juurde. Pärast installimist asuvad dllid kaustas Program Files \ SdlDotNet \ bin (32-bitises Windowsis ja 64-bitises Windowsis programmi Files (x86) \ SdlDotNet \ bin). Paremklõpsake Solution Exploreri jaotises Viited, seejärel klõpsake nuppu Lisa viide ja valige vahekaart Sirvi. Avaneb dialoogiboks Explorer ja pärast dllide leidmist valige siis ja klõpsake nuppu OK.
Viimaseks klõpsake nuppu Kuva \ Atribuudid, nii et see avaks atribuudid ja esimesel vahekaardil (rakendus) vahetage väljundi tüüp konsoolirakendusest Windowsi rakenduseks. Kui te ei tee seda programmi käivitamisel ja SDL-i peaakna avamisel, avaneb see ka konsooliaken.
Oleme nüüd alustamiseks valmis ja olen allpool loonud lühikese rakenduse. See vilgub akna pinnal juhusliku suurusega ja paiknevate ristkülikute ja ringidena kiirusega 1700 joonistatud sekundis kaadrisagedusega 50 kaadrit sekundis.
See 1700 tuleb, kui seada kaadriks tõmmatavaks numbriks 17 ja näidata kaadreid sekundis akna pealdises video abil. WindowCaption. Iga raam joonistab 17 täidetud ringi ja ristkülikut, suurusega 17 x 2 x 50 = 1700. See arv sõltub videokaardist, protsessorist jne. See on muljetavaldav kiirus.
// autor David Bolton http://cplus.about.com
süsteemi kasutamine;
kasutades süsteemi. Joonis;
kasutades SdlDotNet. Graafika;
kasutades SdlDotNet. Tuum;
kasutades SdlDotNet. Graafika. Primitiivid;
avalik klass ex1
{
privaatne konst int laius = 1024;
privaatne konstantselt = 768;
privaatne staatiline pinnaekraan;
privaatne staatiline juhuslik r = uus juhuslik ();
public static void Main (string [] args)
{
Ekraan = video. SetVideoMode (laius, ratas, 32, vale, vale, vale, tõene);
Üritused. TargetFps = 50;
Üritused. Välju + = (QuitEventHandler);
Üritused. Märgi + = (TickEventHandler);
Üritused. Jooks ();
}
privaatne staatiline tühine QuitEventHandler (objekti saatja, QuitEventArgs args)
{
Üritused. QuitApplication ();
}
privaatne staatiline tühine TickEventHandler (objekti saatja, TickEventArgs args)
{
jaoks (var i = 0; i <17; i ++)
{
var rect = uus ristkülik (uus punkt (r. Järgmine (laius - 100), r. Järgmine (ratas-100)),
uus suurus (10 + r. Järgmine (laius - 90), 10 + r. Järgmine (ratas - 90)));
var Col = värv. FromArgb (r. Järgmine (255), r. Järgmine (255), r. Järgmine (255);
var CircCol = värv. FromArgb (r. Järgmine (255), r. Järgmine (255), r. Järgmine (255);
lühike raadius = (lühike) (10 + r. Järgmine (ratas - 90));
var Circ = uus ring (uus punkt (r. Järgmine (laius - 100), r. Järgmine (ratas-100)), raadius);
Ekraan. Täida (rektaalne, Col);
Circ. Joonistamine (ekraan, CircCol, vale, tõene);
Ekraan. Värskenda ();
Video. WindowCaption = Sündmused. Fps. ToString ();
}
}
}
Video pakub meetodeid videorežiimi seadmiseks, videopindade loomiseks, hiirekursori peitmiseks ja kuvamiseks ning OpenGL-iga suhtlemiseks. Mitte, et me mõnda aega OpenGL-i teeme.
Siin kasutatakse videoobjekti mänguakna suuruse ja eraldusvõime määramiseks (täisekraan on võimalus). SetVideoMode'i parameetrid võimaldavad teil neid muuta ja 13 ülekoormust pakuvad palju erinevaid võimalusi. Dokumentide kaustas on .chm-fail (Windowsi html-vorming), mis dokumenteerib kõik klassid ja liikmed.
Objektis Sündmused on käsk Lõpeta sündmuste käitleja, mis võimaldab teil lisada sulgemisloogikat ja te peaksite helistama sündmustele. QuitApplication (), et see reageeriks rakenduse sulgevale kasutajale. Üritused. Tick on tõenäoliselt kõige olulisem sündmuste käitleja. See kutsub määratud sündmuste töötlejat igaks kaadriks. See on mudel kogu SDL.NET-i arendamiseks.
Saate määrata soovitud kaadrisageduse ja minu, vähendades ahela 5-ni ja muutes Targetfps-i 150-ks, saime selle töötada kiirusega 164 kaadrit sekundis. TargetFps on palliplatsi kuju; see viib teid selle näitaja, kuid sündmuste lähedale viimisel. Fps on see, mida tarnitakse.
Nagu SDL-i algne mitteaknaline versioon, kasutab SDL.NET ekraani kuvamiseks pindu. Pinna saab luua graafikafailist. Seal on palju atribuute ja meetodeid, mis võimaldavad nii piksleid lugeda kui ka kirjutada joonistage graafikaprimatiivid, libistage muud pinnad lahti, visake pind kogumiseks isegi kettafaili ekraanipildid.