Jedným z problémov s otvoreným zdrojom je to, že projekty niekedy spadajú na vedľajšiu koľaj alebo sa zavádzajú. Vezmite SDL.NET. Pri ignorovaní webovej stránky na predaj sa objaví vyhľadávanie na webe cs-sdl.sourceforge.net projekt, ktorý sa podľa všetkého zastavil v novembri 2010. Nemyslíme si, že sa to zastavilo, ale vyzerá to tak.
Ak nepoznáte C #, musíte sa najskôr naučiť, ako na to program v C #. Pri pohľade na iné miesto sme narazili na rámec Tao prepojený na webovej stránke Mono, ktorý zrejme pokrýva rovnakú oblasť a dodáva podporu zvuku atď. Ale pri pohľade na sourceforge (opäť!), Bol nahradený OpenTK ale zameranie je OpenGL. Zahŕňa však aj OpenAL, takže inštalácia oboch (cs-sdl a OpenTK) sa zdala byť cestou vpred.
Časť inštalácie OpenTk zlyhala; NS (shader), pretože nemáme nainštalovaný VS 2008! Zvyšok však bol v poriadku. Vytvorili sme projekt konzoly C # a začali sme hrať s SDL.NET. Online dokumentáciu nájdete tu.
Pri spätnom pohľade vidíme, že rámec OpenTK nebol potrebný ako taký, že SDL.NET nainštaloval všetko, ale v tom čase nebolo jasné. Stále používa Tao Framework, aj keď jeho vývoj bol nahradený OpenTK. Je to trochu mätúce a dúfame, že tím SDL.NET v budúcnosti prinesie verziu kompatibilnú s OpenTk.
Nejde o to, ako sme si mysleli, iba o tenký obal okolo SDL, ale o pridávanie ďalších funkcií. Existuje niekoľko tried, ktoré poskytujú:
Vyhľadajte dve knižnice SDL.NET (SdlDotNet.dll a Tao). Sdl.dll), ako aj knižnice OpenTK a pridajte ich do referencie projektu. Po inštalácii sú dll umiestnené v Program Files \ SdlDotNet \ bin (v 32-bitovom systéme Windows a Program Files (x86) \ SdlDotNet \ bin v 64-bitovom systéme Windows). Kliknite pravým tlačidlom myši na časť Referencie v aplikácii Solution Explorer, potom kliknite na položku Pridať referenciu a vyberte kartu Prehľadávať. Otvorí sa dialógové okno Prieskumník a po vyhľadaní knižníc dll vyberte a kliknite na tlačidlo ok.
Posledná vec, kliknite na Zobraziť \ Vlastnosti, aby sa otvorili stránky Vlastnosti a na prvej karte (Aplikácia) Zmeňte typ výstupu z aplikácie Konzola na Windows. Ak to neurobíte pri prvom spustení programu a otvorí sa hlavné okno SDL, otvorí sa aj okno konzoly.
Teraz sme pripravení začať a nižšie som vytvoril krátku aplikáciu. Tým sa prelínajú náhodne veľké a umiestnené obdĺžniky a kruhy na povrchu okna rýchlosťou 1 700 kreslených za sekundu pri frekvencii snímok 50 snímok za sekundu.
To 1700 pochádza z nastavenia počtu nakreslených na snímku na 17 a zobrazovania snímok za sekundu v titulku okna pomocou videa. WindowCaption. Každý rám, ktorý nakreslí 17 vyplnených kruhov a obdĺžnikov, 17 x 2 x 50 = 1 700. Toto číslo závisí od grafickej karty, procesora atď. Je to pôsobivá rýchlosť.
// David Bolton, http://cplus.about.com
pomocou systému;
pomocou systému. kreslenie;
pomocou SdlDotNet. grafika;
pomocou SdlDotNet. jadro;
pomocou SdlDotNet. Grafiky. primitíva;
verejná trieda ex1
{
súkromná konštanta int wwidth = 1024;
súkromná konštanta int wheight = 768;
súkromná statická povrchová obrazovka;
súkromné statické Náhodné r = nové Náhodné ();
public static void Main (string [] args)
{
Screen = Video. SetVideoMode (wwidth, wheight, 32, false, false, false, true);
Diania. TargetFps = 50;
Diania. Ukončiť + = (QuitEventHandler);
Diania. Tick + = (TickEventHandler);
Diania. Run ();
}
súkromná statická medzera QuitEventHandler (odosielateľ objektov, arit QuitEventArgs)
{
Diania. QuitApplication ();
}
súkromná statická medzera TickEventHandler (odosielateľ objektu, arty TickEventArgs)
{
pre (var i = 0; i <17; i ++)
{
var rect = new Rectangle (nový bod (r. Ďalej (šírka - 100), r. Ďalší (wheight-100)),
nová veľkosť (10 + r. Ďalej (šírka - 90), 10 + r. Ďalší (wheight - 90)));
var Col = Farba. FromArgb (r. Ďalej (255), r. Ďalej (255), r. Ďalší (255));
var CircCol = Farba. FromArgb (r. Ďalej (255), r. Ďalej (255), r. Ďalší (255));
krátky polomer = (krátky) (10 + r. Ďalší (wheight - 90));
var Circ = nový kruh (nový bod (r. Ďalej (šírka - 100), r. Ďalší (šírka-100)), polomer);
Obrazovka. Výplň (pravý, stĺpec);
Circ. Kreslenie (Screen, CircCol, false, true);
Obrazovka. Aktualizácia ();
Video. WindowCaption = Udalosti. Fps. Natiahnuť() ;
}
}
}
Video poskytuje metódy na nastavenie režimu videa, vytváranie povrchov videa, skrytie a ukázanie kurzora myši a interakciu s OpenGL. Nie že by sme to urobili na chvíľu OpenGL.
Tu sa video objekt používa na nastavenie veľkosti a rozlíšenia okna hry (možnosť je celá obrazovka). Parametre pre SetVideoMode vám ich umožňujú zmeniť a 13 preťažení poskytuje veľa rôznych možností. V priečinku doc je súbor .chm (formát pomoci Windows html), ktorý dokumentuje všetky triedy a členov.
Objekt Udalosti má obslužný program Ukončenie udalostí, ktorý vám umožňuje pridať logiku ukončenia a mali by ste volať udalosti. QuitApplication (), aby reagoval na používateľa, ktorý aplikáciu uzatvára. Udalosti. Tick je pravdepodobne najdôležitejšou osobou zaoberajúcou sa podujatím. Vyvolá zadaný obslužný program udalosti každý rámec. Toto je model pre všetok vývoj SDL.NET.
Môžete nastaviť požadovanú frekvenciu snímok a moju redukciu slučky na 5 a zmenu Targetfps na 150 sme spustili 164 snímok za sekundu. TargetFps je figúrka z oblasti ballpark; oneskoruje vás, aby ste sa dostali bližšie k tejto čísle ako k udalostiam. Fps je to, čo sa dodáva.
Podobne ako pôvodná verzia SDL, ktorá nie je v okne, aj SDL.NET používa povrchy na vykreslenie na obrazovku. Povrch môže byť skonštruovaný z grafického súboru. Existuje veľké množstvo vlastností a metód, ktoré umožňujú čítať alebo zapisovať aj pixely nakreslite grafické primitívy, zmiešajte ďalšie povrchy a dokonca odložte povrch na disk, aby ste ho mohli nasnímať screenshoty.