Yksi avoimen lähdekoodin ongelmista on, että projektit näyttävät joskus kaatunevan tieltä tai ottavan hämmentäviä käännöksiä. Ota SDL.NET. Jos sivuutetaan myytävä verkkosivusto, verkkohaku paljastaa cs-sdl.sourceforge.net projekti, joka näyttää pysähtyneen marraskuussa 2010. Emme usko, että se on pysähtynyt, mutta näyttää vain siltä kuin on.
Jos et tiedä C #: tä, sinun on ensin opittava ohjelma C #. Muualta etsiessämme tapasimme Monon verkkosivustolla linkitetyn Tao-kehyksen, joka näyttää kattavan saman alueen ja lisäävän tukea äänelle jne. Mutta katsoen Sourceforge (taas!), Se on korvannut OpenTK mutta painopiste on OpenGL: ssä. Siihen sisältyy kuitenkin myös OpenAL, joten näiden kahden (cs-sdl ja OpenTK) asentaminen näytti olevan tie eteenpäin.
Osa OpenTk-asennuksesta epäonnistui; NS (shader), koska meillä ei ole VS 2008 asennettuna! Loppuosa oli kuitenkin ok. Loimme C # Console -projektin ja aloimme pelata SDL.NET: n kanssa. Verkko-ohjeet löytyvät täältä.
Kun katsomme taaksepäin, voimme nähdä, että OpenTK-kehystä ei tarvinnut sellaisenaan, että SDL.NET asensi kaiken, mutta se ei ollut silloin selvää. Se käyttää edelleen Tao-kehystä, vaikka OpenTK on korvannut sen kehittämisen. Se on vähän hämmentävää ja toivomme, että SDL.NET-tiimi tuo tulevaisuudessa käyttöön OpenTk-yhteensopivan version.
Se ei ole, kuten ajattelimme, vain ohut kääre, joka on pyöreä SDL, mutta lisää huomattavasti ylimääräisiä toimintoja. Tarjolla on useita luokkia, jotka tarjoavat seuraavan:
Etsi kaksi SDL.NET-tiedostoa (SdlDotNet.dll ja Tao). Sdl.dll) sekä OpenTK-dll-tiedostot ja lisää ne projektiviitteisiin. Asennuksen jälkeen dll-tiedostot sijaitsevat Ohjelmatiedostot \ SdlDotNet \ bin (32-bittisessä Windowsissa ja Program Files (x86) \ SdlDotNet \ bin 64-bittisessä Windowsissa). Napsauta hiiren kakkospainikkeella Solution Explorer -sovelluksen Viitteet-osaa, napsauta Lisää viite ja valitse Selaa-välilehti. Se avaa Explorer-valintaikkunan ja löytänyt dll-tiedostot valitsemalla sitten ja napsauttamalla ok.
Viimeisenä asiana napsauta Näytä \ Ominaisuudet -painiketta, niin se avaa Ominaisuussivut ja ensimmäisessä välilehdessä (Sovellus) Vaihda tulosteen tyyppi konsoli-sovelluksesta Windows-sovellukseksi. Jos et tee tätä, kun ohjelma käynnistyy ja avautuu SDL-pääikkuna, se avaa myös konsoli-ikkunan.
Olemme nyt valmiit aloittamaan ja olen luonut alla lyhyen sovelluksen. Tämä välkkyy satunnaisesti kooltaan ja sijoitettuna suorakulmioina ja ympyrinä ikkunan pinnalla nopeudella 1700 piirrettyä sekunnissa, kuvanopeudella 50 kuvaa sekunnissa.
Tämä 1 700 tulee asettamalla kehykseen vedetyn numeron arvoon 17 ja näyttämällä kehykset sekunnissa ikkunan kuvatekstissä videon avulla. WindowCaption. Jokainen kehys piirtää 17 täytettyä ympyrää ja suorakulmioita, 17 x 2 x 50 = 1 700. Tämä luku riippuu näytönohjaimesta, suorittimesta jne. Se on vaikuttava nopeus.
// kirjoittanut David Bolton http://cplus.about.com
käyttämällä järjestelmää;
järjestelmän avulla. Piirustus;
käyttämällä SdlDotNet. grafiikka;
käyttämällä SdlDotNet. Ydin;
käyttämällä SdlDotNet. Grafiikkaa. primitives;
julkinen luokka ex1
{
yksityinen const int-leveys = 1024;
yksityinen kontti heti = 768;
yksityinen staattinen pinta-näyttö;
yksityinen staattinen satunnainen r = uusi satunnainen ();
public static void Main (merkkijono [] args)
{
Näyttö = Video. SetVideoMode (leveys, pyörä, 32, väärä, väärä, väärä, tosi);
Tapahtumat. TargetFps = 50;
Tapahtumat. Lopeta + = (QuitEventHandler);
Tapahtumat. Tick + = (TickEventHandler);
Tapahtumat. Juosta() ;
}
yksityinen staattinen void QuitEventHandler (objektin lähettäjä, QuitEventArgs args)
{
Tapahtumat. QuitApplication ();
}
yksityinen staattinen tyhjä TickEventHandler (esineen lähettäjä, TickEventArgs args)
{
for (var i = 0; i <17; i ++)
{
var rect = uusi suorakulmio (uusi piste (r. Seuraava (leveys - 100), r. Seuraava (rata-100)),
uusi koko (10 + r. Seuraava (leveys - 90), 10 + r. Seuraava (rata - 90)));
var Col = Väri. FromArgb (r. Seuraava (255), r. Seuraava (255), r. Seuraava (255);
var CircCol = Väri. FromArgb (r. Seuraava (255), r. Seuraava (255), r. Seuraava (255);
lyhyt säde = (lyhyt) (10 + r. Seuraava (rata - 90));
var Circ = uusi ympyrä (uusi piste (r. Seuraava (leveys - 100), r. Seuraava (rata-100)), säde);
Näyttö. Täytä (suora, Col);
Circ. Piirrä (Screen, CircCol, false, true);
Näyttö. Päivitä ();
Video. WindowCaption = Tapahtumat. Fps. ToString ();
}
}
}
Video tarjoaa menetelmiä videotilan asettamiseen, videopintojen luomiseen, hiiren osoittimen piilottamiseen ja näyttämiseen sekä vuorovaikutukseen OpenGL: n kanssa. Ei niin, että teemme OpenGL: n jonkin aikaa.
Video-objektia käytetään tässä peliikkunan koon ja resoluution asettamiseen (koko näyttö on vaihtoehto). SetVideoMode-parametrien avulla voit muuttaa näitä ja 13 ylikuormitusta tarjoavat paljon erilaisia. Doc-kansiossa on .chm-tiedosto (Windows html-ohjeformaatti), joka dokumentoi kaikki luokat ja jäsenet.
Tapahtumaobjektissa on Lopeta tapahtumien käsittelijä, jonka avulla voit lisätä sulkemislogiikan ja sinun pitäisi kutsua Tapahtumat. QuitApplication (), jotta se reagoi käyttäjän sulkemiseen sovelluksen. Tapahtumat. Tick on mahdollisesti tärkein tapahtumakäsittelijä. Se kutsuu määritetyn tapahtumakäsittelijän jokaiseen kehykseen. Tämä on malli kaikelle SDL.NET-kehitykselle.
Voit asettaa haluamasi kuvataajuuden ja minun vähentämällä silmukan 5 ja muuttamalla Targetfps arvoon 150, saimme sen toimimaan nopeudella 164 kuvaa sekunnissa. TargetFps on pallokenttähahmo; se viivästyttää sinua pääsemään lähelle kyseistä lukua, mutta tapahtumia. Fps on mitä toimitetaan.
Kuten alkuperäinen SDL-versio, joka ei ole ikkuna, SDL.NET käyttää pintoja näytölle. Pinta voidaan rakentaa grafiikatiedostosta. On olemassa suuri joukko ominaisuuksia ja menetelmiä, jotka mahdollistavat pikselien lukemisen tai kirjoittamisen piirtää grafiikan primitiivit, pilkata muita pintoja, jopa upottaa pinta levytiedostoon ottamista varten kuvakaappauksia.