Tutorial Game Loop Menggunakan Direct 3D

Diposting oleh SAMs ON Blogspot
Selasa, 20 April 2010

Pada artikel ini saya membahas tentang struktur tingkat dasar dalam aplikasi direct3D .

Mari kita mulai: kebanyakan orang yang menggunakan Direct3D mungkin melakukannya karena mereka ingin membuat sebuah (game) permainan. Jadi masuk akal bahwa, struktur khas tingkat atas dari sebuah Dikelola Direct3D aplikasi akan disebut sebagai "Game Loop". Kode atau varian akan muncul dalam aplikasi Direct3D , termasuk kode contoh bahwa Microsoft dengan DirectX SDK . Kode terlihat seperti ini:




Langsung Anda dapat melihat sangat berbeda dari aplikasi "normal" WinForms. Ini membuat saya untuk melihat loop ketat - sementara (app.Created) sedikit - dalam aplikasi grafis. Jauh lebih digunakan untuk melihat panggilan ke Application.Run, yang menunggu untuk menggunakan mouse atau keyboard terjadi, panggilan setiap handler mungkin telah disiapkan, dan keluar ketika program saya hilang. Mari kita run melalui kode.



Bit ini cukup jelas. Kita akan menggunakannya dari ruang nama berikut ini, . Perhatikan bahwa apa yang kita tidak lihat adalah bahwa kita harus memiliki SDK DirectX terinstal, dan kita harus memiliki referensi yang baik Microsoft.DirectX.dll dan Microsoft.DirectX.Direct3D.dll. (Untuk melakukannya, tambahkan referensi ke proyek Anda. Di Visual Studio, klik kanan dan pilih Add Referensi Referensi Sementara menekan tombol Ctrl klik Microsoft.DirectX.dll dan Microsoft.DirectX.Direct3D.dll.. Klik OK.)



Kode sebelumnya sebenarnya cukup menarik, karena menunjukkan bahwa kita benar-benar menulis sebuah kelas yang berasal dari System.Windows.Forms.Form, seperti semua yang lain WinForms aplikasi Anda pernah tertulis. Jadi semua hal yang Anda tahu tentang Windows Forms masih berlaku, kita hanya perlu mempelajari bagaimana untuk mengintegrasikan Direct3D bit.



Di sinilah kita membuat sebuah instance baru dari bentuk (ingat, utama adalah statis, jadi tidak ada contoh nilai), dan kemudian memanggil InitializeGraphics, yang merupakan metode yang kita menulis. Kita akan melihat di artikel yang akan datang. Panggilan untuk app.Show () hanya membuat form terlihat.

Ini adalah inti dari aplikasi, di mana ia akan menghabiskan sebagian besar waktunya. Apa yang kita lakukan di sini adalah memeriksa untuk melihat apakah formulir telah ditutup, dan jika tidak, metode Render hasil panggilan kita. Render disinilah semua gambar 3D berlangsung . Panggilan ke Application.DoEvents adalah untuk memastikan bahwa setiap Windows tertunda untuk diproses - seperti saya katakan, menulis sebuah aplikasi Windows Form.




Alasan bahwa kita melakukannya dengan cara ini. Jadi kita melakukan semua rendering dalam sebuah loop ketat . Tapi tentu saja kita masih harus memproses pesan dari Windows.




Tentu saja kita perlu membersihkan ketika sudah selesai, sehingga memberikan sebuah metode DisposeGraphics untuk mendapatkan, disebut setiap kali seseorang menutup aplikasi kita.

Anda dapat melanjutkan dan mengkompilasi kode ini - harus dijalankan dengan baik jika Anda memberikan mau berbuat sesuatu InitializeGraphics, Render, dan metode DisposeGraphics. Tentu saja, itu hanya akan menjadi bentuk kosong.

Blogger Template New Plus Blue

Designed by : Samuel XML Coded by : Samuel