Jedním z problémů s otevřeným zdrojovým kódem je to, že se projekty někdy zdají být na vedlejší koleji nebo matoucí záměny. Vezměte SDL.NET. Při ignorování webu k prodeji se zobrazí vyhledávání na webu cs-sdl.sourceforge.net projekt, který se zdá být zastaven v listopadu 2010. Nemyslíme si, že se to zastavilo, ale prostě to vypadá.
Pokud neznáte C #, musíte se nejprve naučit, jak na to program v C #. Při pohledu jinde jsme narazili na rámec Tao propojený na webu Mono, který podle všeho pokrývá stejnou oblast a přidává podporu zvuku atd. Ale při pohledu na sourceforge (opět!), Byl nahrazen OpenTK ale fokus tam je OpenGL. Zahrnuje však také OpenAL, takže instalace obou (cs-sdl a OpenTK) se zdála být cestou vpřed.
Část instalace OpenTk selhala; NS (shader), protože nemáme nainstalovaný VS 2008! Zbytek však byl v pořádku. Vytvořili jsme projekt konzoly C # a začali hrát s SDL.NET. Online dokumentaci najdete zde.
Při pohledu zpět můžeme vidět, že rámec OpenTK nebyl jako takový potřeba, že SDL.NET nainstaloval všechno, ale v té době to nebylo jasné. Stále používá Tao Framework, i když jeho vývoj byl nahrazen OpenTK. Je to trochu matoucí a doufáme, že tým SDL.NET v budoucnu vydá verzi kompatibilní s OpenTk.
Nejedná se o to, jak jsme si mysleli, pouze o tenký obal kolem SDL, ale přidává značné další funkce. Existuje řada tříd, které poskytují následující:
Vyhledejte dvě dll SDL.NET (SdlDotNet.dll a Tao. Sdl.dll) a OpenTK dlls a přidejte je do referencí projektu. Po instalaci jsou dll umístěna v Program Files \ SdlDotNet \ bin (na 32bitovém systému Windows a Program Files (x86) \ SdlDotNet \ bin na 64bitovém Windows). Klepněte pravým tlačítkem na část Reference v aplikaci Solution Explorer, pak klepněte na Přidat odkaz a vyberte kartu Procházet. Otevře se dialogové okno Průzkumníka a po nalezení dlls vyberte a poté klikněte na ok.
Ještě poslední věc, klikněte na View \ Properties, aby se otevřely stránky vlastností a na první kartě (Aplikace) Změňte typ výstupu z aplikace Console na Windows. Pokud tak neučiníte při prvním spuštění programu a otevře hlavní okno SDL, otevře se také okno konzoly.
Nyní jsme připraveni začít a níže jsem vytvořil krátkou aplikaci. Toto míchá náhodně velké a umístěné obdélníky a kruhy na povrchu okna rychlostí 1700 kreslených za sekundu při obnovovací frekvenci 50 snímků za sekundu.
To 1700 pochází z nastavení počtu nakreslených na snímek na 17 a zobrazování snímků za sekundu v titulku okna pomocí videa. WindowCaption. Každý rámeček nakreslí 17 vyplněných kruhů a obdélníků, 17 x 2 x 50 = 1700. Toto číslo závisí na grafické kartě, procesoru atd. Je to působivá rychlost.
// David Bolton, http://cplus.about.com
using System;
pomocí systému. Výkres;
pomocí SdlDotNet. Grafika;
pomocí SdlDotNet. Jádro;
pomocí SdlDotNet. Grafika. Primitiva;
veřejná třída ex1
{
soukromá konstanta int wwidth = 1024;
soukromá konstanta int wheight = 768;
soukromá statická povrchová obrazovka;
soukromý statický Náhodný r = nový Náhodný ();
public static void Main (řetězec [] args)
{
Screen = Video. SetVideoMode (wwidth, wheight, 32, false, false, false, true);
Události. TargetFps = 50;
Události. Ukončit + = (QuitEventHandler);
Události. Tick + = (TickEventHandler);
Události. Run ();
}
soukromý statický void QuitEventHandler (odesílatel objektů, arty QuitEventArgs)
{
Události. QuitApplication ();
}
soukromá statická mezera TickEventHandler (odesílatel objektu, TickEventArgs args)
{
pro (var i = 0; i <17; i ++)
{
var rect = new Rectangle (new Point (r. Další (šířka - 100), r. Další (wheight-100)),
nová velikost (10 + r. Další (šířka - 90), 10 + r. Další (wheight - 90)));
var Col = Barva. FromArgb (r. Další (255), r. Další (255), r. Další (255));
var CircCol = Barva. FromArgb (r. Další (255), r. Další (255), r. Další (255));
krátký poloměr = (krátký) (10 + r. Další (wheight - 90));
var Circ = new Circle (nový bod (r. Další (šířka - 100), r. Další (wheight-100)), poloměr);
Obrazovka. Výplň (pravý, Col);
Circ. Draw (Screen, CircCol, false, true);
Obrazovka. Aktualizace() ;
Video. WindowCaption = Události. Fps. ToString ();
}
}
}
Video poskytuje metody pro nastavení režimu videa, vytváření povrchů videa, skrytí a zobrazení kurzoru myši a interakci s OpenGL. Ne, že budeme nějakou dobu dělat OpenGL.
Zde se používá objekt Video k nastavení velikosti a rozlišení okna hry (možnost je celá obrazovka). Parametry pro SetVideoMode umožňují tyto změny měnit a 13 přetížení poskytuje spoustu různých možností. Ve složce doc je soubor .chm (formát nápovědy Windows html), který dokumentuje všechny třídy a členy.
Objekt události má obslužný program Ukončit události, který vám umožní přidat logiku zavření a měli byste volat události. QuitApplication (), aby reagoval na uživatele, který aplikaci uzavírá. Události. Tick je pravděpodobně nejdůležitější obsluha události. Vyvolá zadaný obslužný program události každý rámec. Toto je model pro veškerý vývoj SDL.NET.
Můžete nastavit vaši požadovanou rychlost snímkování a moje redukci smyčky na 5 a změnou Targetfps na 150 jsme ji spustili rychlostí 164 snímků za sekundu. TargetFps je figurka pro míčový park; způsobí to zpoždění, abyste se dostali k té postavě, ale k událostem. Fps je to, co se dodává.
Stejně jako původní verze SDL bez okna, SDL.NET používá povrchy pro vykreslování na obrazovku. Povrch může být vytvořen z grafického souboru. Existuje velké množství vlastností a metod, které umožňují také číst nebo zapisovat pixely nakreslete grafická primitiva, smíchejte další povrchy a dokonce vyhodíte povrch do diskového souboru snímky obrazovky.