Salah satu masalah dengan open source adalah bahwa proyek kadang-kadang tampaknya jatuh di pinggir jalan atau berbelok membingungkan. Ambil SDL.NET. Mengabaikan situs web untuk dijual, pencarian di web mengungkapkan cs-sdl.sourceforge.net sebuah proyek yang tampaknya telah berhenti pada bulan November 2010. Kami tidak berpikir itu telah berhenti tetapi sepertinya sudah.
Jika Anda tidak tahu C #, Anda harus terlebih dahulu mempelajari caranya program dalam C #. Mencari di tempat lain, kami menemukan kerangka kerja Tao yang tertaut di situs web Mono yang tampaknya mencakup area yang sama dan menambahkan dukungan untuk suara, dll. Tapi melihat sourceforge (lagi!), Itu telah digantikan oleh OpenTK tapi fokusnya ada OpenGL. Namun, itu juga termasuk OpenAL sehingga menginstal keduanya (cs-sdl dan OpenTK) tampaknya menjadi jalan maju.
Bagian dari instalasi OpenTk gagal; NS (shader) karena kami belum menginstal VS 2008! Namun, sisanya cukup baik. Kami membuat proyek Konsol C # dan mulai bermain dengan SDL.NET. Dokumentasi online dapat ditemukan di sini.
Melihat ke belakang, kita dapat melihat bahwa kerangka kerja OpenTK tidak diperlukan seperti itu, bahwa SDL.NET menginstal semuanya tetapi itu tidak jelas pada saat itu. Masih menggunakan Kerangka Tao meskipun pengembangan yang telah digantikan oleh OpenTK. Agak membingungkan dan kami berharap tim SDL.NET akan mengeluarkan versi yang kompatibel dengan OpenTk di masa depan.
Ini bukan, seperti yang kami duga, hanya pembungkus tipis bundar SDL, tetapi menambahkan fungsionalitas tambahan yang cukup besar. Ada sejumlah kelas yang disediakan untuk menyediakan yang berikut:
Temukan dua dll SDL.NET (SdlDotNet.dll dan Tao. Sdl.dll) serta OpenTK dll, dan menambahkannya ke referensi proyek. Setelah instalasi, dll terletak di Program Files \ SdlDotNet \ bin (pada Windows 32 bit dan Program Files (x86) \ SdlDotNet \ bin pada Windows 64 bit. Klik kanan pada bagian Referensi di Solution Explorer lalu klik Tambahkan Referensi dan pilih tab Browse. Itu membuka dialog Explorer dan setelah menemukan dll pilih lalu dan klik ok.
Satu hal lagi, klik pada View \ Properties sehingga membuka halaman Properti dan pada tab pertama (Aplikasi) Ubah tipe Output dari Aplikasi Konsol ke Aplikasi Windows. Jika Anda tidak melakukan ini ketika program pertama kali berjalan dan membuka Jendela utama SDL itu akan membuka Jendela konsol juga.
Kami sekarang siap untuk memulai dan saya telah membuat aplikasi pendek di bawah ini. Ini blits secara acak berukuran dan terletak persegi panjang dan lingkaran pada permukaan Window pada 1.700 ditarik per detik pada tingkat bingkai 50 frame per detik.
Yang 1.700 berasal dari pengaturan angka yang ditarik per frame ke 17 dan menampilkan frame per detik dalam keterangan Window menggunakan Video. WindowCaption. Setiap bingkai itu menarik 17 lingkaran dan persegi penuh, 17 x 2 x 50 = 1.700. Angka ini tergantung pada kartu video, CPU dll. Ini kecepatan yang mengesankan.
// Oleh David Bolton, http://cplus.about.com
menggunakan Sistem;
menggunakan Sistem. Gambar;
menggunakan SdlDotNet. Grafik;
menggunakan SdlDotNet. Inti;
menggunakan SdlDotNet. Grafik. Primitif;
kelas publik ex1
{
private const int wwidth = 1024;
private const int wheight = 768;
Layar Permukaan statis pribadi;
private static Random r = Random baru ();
public static void Main (string [] args)
{
Layar = Video. SetVideoMode (lebar, 32, salah, salah, salah, benar);
Acara TargetFps = 50;
Acara Quit + = (QuitEventHandler);
Acara Tick + = (TickEventHandler);
Acara Lari() ;
}
private static void QuitEventHandler (pengirim objek, QuitEventArgs args)
{
Acara QuitApplication ();
}
private static void TickEventHandler (pengirim objek, TickEventArgs args)
{
untuk (var i = 0; saya <17; i ++)
{
var rect = Rectangle baru (Point baru (r. Berikutnya (lebar-100), r. Selanjutnya (wheight-100)),
Ukuran baru (10 + r. Berikutnya (lebar - 90), 10 + r. Next (wheight - 90)));
var Col = Warna. FromArgb (r. Berikutnya (255), r. Berikutnya (255), r. Berikutnya (255));
var CircCol = Warna. FromArgb (r. Berikutnya (255), r. Berikutnya (255), r. Berikutnya (255));
radius pendek = (pendek) (10 + r. Berikutnya (wheight - 90));
var Circ = Lingkaran baru (Titik baru (r. Berikutnya (lebar-100), r. Berikutnya (wheight-100)), radius);
Layar. Isi (rect, Col);
Sirk. Draw (Layar, CircCol, false, true);
Layar. Perbarui ();
Video. WindowCaption = Acara. Fps. ToString ();
}
}
}
Video menyediakan metode untuk mengatur mode video, membuat permukaan video, menyembunyikan dan menampilkan kursor mouse, dan berinteraksi dengan OpenGL. Bukan berarti kita akan melakukan OpenGL untuk sementara waktu.
Di sini objek Video digunakan untuk mengatur ukuran dan resolusi Window permainan (layar penuh adalah pilihan). Parameter untuk SetVideoMode memungkinkan Anda mengubahnya dan 13 kelebihan menyediakan banyak variasi. Ada file .chm (format bantuan html Windows) di folder doc yang mendokumentasikan semua kelas dan anggota.
Objek Acara memiliki pengendali acara Keluar yang memungkinkan Anda menambahkan logika penutupan dan Anda harus memanggil Acara. QuitApplication () untuk membuatnya merespons kepada pengguna yang menutup aplikasi. Acara tersebut. Centang mungkin adalah pengendali acara yang paling penting. Ini memanggil pengendali event yang ditentukan setiap frame. Ini adalah model untuk semua pengembangan SDL.NET.
Anda dapat mengatur frame rate yang Anda inginkan dan saya mengurangi loop ke 5 dan mengubah Targetfps ke 150 kita menjalankannya pada 164 frame per detik. TargetFps adalah sosok rata-rata; menempatkan penundaan untuk membuat Anda dekat dengan angka itu tetapi Acara. Fps adalah apa yang dikirimkan.
Seperti versi SDL non Windowed asli, SDL.NET menggunakan permukaan untuk rendering ke layar. Permukaan dapat dibangun dari file grafik. Ada sejumlah besar properti dan metode yang memungkinkan untuk membaca atau menulis piksel juga menggambar primitif grafis, membelah permukaan lain, bahkan membuang permukaan ke file disk untuk diambil tangkapan layar.