memulai dengan SDL

08.58 0 Comments


SDL adalah Simple DirectMedia Layer. Dari homepage SDL - "Simple DirectMedia Layer adalah perpustakaan multimedia cross-platform yang dirancang untuk menyediakan akses tingkat audio, keyboard, mouse, joystick, 3D hardware melalui OpenGL, dan video yang framebuffer 2D." Selain SDL Homepage, Anda juga dapat melihat Dokumentasi Wiki SDL untuk dokumentasi API.

Untuk memulai menggunakan SDL, pertama-tama Anda harus mendownload beberapa file dari http://www.libsdl.org/download-1.2.php. Jika Anda menggunakan Windows, yang Anda butuhkan adalah paket pengembangan. Sebagai menulis tutorial ini, file yang bernama SDL-devel-1.2.9-VC6.zip. Download file ini dan unzip ke folder, saya ingin menggunakan "C: \ Program Files \ SDL-1.2.9". Sekarang bahwa Anda telah menginstal paket pengembangan, dokumentasi tersedia di "C: \ Program Files \ SDL-1.2.9 \ docs \ index.html".

Jika Anda menggunakan Linux, Anda baik dapat menginstal perpustakaan sesuai dan paket pengembangan menggunakan RPM atau Debs, atau Anda dapat membuat sendiri dengan men-download sumber dari sini dan membangun paket sesuai dengan instruksi mereka.
Setelah Anda download dan menginstal file pembangunan di Linux, Anda siap untuk memulai kompilasi program. Pada Windows, ada beberapa langkah untuk melakukan:

1. Buka Visual C ++ kemudian pergi ke Tools, Options.
2. Klik dua kali "Projects danSolutions".
3. Klik "VC++ Directories".
4. Di bawah "Tampilkan direktori untuk:" pilih "Include files".
5. Tambahkan path "C:\Program Files\SDL-1.2.9\include" .
6. Di bawah "Tampilkan direktori untuk:" pilih "file Lib".
7. tambahkan "C: \ Program Files \ SDL-1.2.9 \ lib".

Anda sekarang siap untuk mengkompilasi program SDL pertama Anda.


Program pertama anda dengan SDL

Berikut adalah rincian dari apa yang terjadi dalam program sampel.

1. Pertama, kita initialize sistem video SDL dengan SDL_Init ().
2. Berikutnya, kita menetapkan judul untuk jendela aplikasi kita.
3. Kemudian kita membuat jendela dan mendapatkan pointer ke permukaan dengan SDL_SetVideoMode ().
4. Gambar latar belakang dimuat pada permukaan sementara.
5. SDL_DisplayFormat () membuat copy dari permukaan sementara menggunakan yang sama bit mendalam sebagai permukaan layar. Hal ini akan mempercepat rendering.
6. Memori untuk permukaan sementara dibebaskan dengan panggilan untuk SDL_FreeSurface ().
7. Sekarang kita memasuki "loop utama" dari program. Di sini kita memeriksa kejadian dan kemudian memperbarui layar.
8. Ketika pengguna menekan ESC atau 'q', kami mengakhiri "loop utama"
9. Sebelum program berakhir kita membebaskan memori untuk permukaan background dengan SDL_FreeSurface, dan pembersihan SDL dengan SDL_Quit ().
#include "SDL.h"

int main ( int argc, char *argv[] )
{
  /* initialize SDL */
  SDL_Init(SDL_INIT_VIDEO);

  /* set the title bar */
  SDL_WM_SetCaption("SDL Test", "SDL Test");

  /* create window */
  SDL_Surface* screen = SDL_SetVideoMode(640, 480, 0, 0);

  /* load bitmap to temp surface */
  SDL_Surface* temp = SDL_LoadBMP("sdl_logo.bmp");

  /* convert bitmap to display format */
  SDL_Surface* bg = SDL_DisplayFormat(temp);

  /* free the temp surface */
  SDL_FreeSurface(temp);

  SDL_Event event;
  int gameover = 0;

  /* message pump */
  while (!gameover)
  {
    /* look for an event */
    if (SDL_PollEvent(&event)) {
      /* an event was found */
      switch (event.type) {
        /* close button clicked */
        case SDL_QUIT:
          gameover = 1;
          break;

        /* handle the keyboard */
        case SDL_KEYDOWN:
          switch (event.key.keysym.sym) {
            case SDLK_ESCAPE:
            case SDLK_q:
              gameover = 1;
              break;
          }
          break;
      }
    }

    /* draw the background */
    SDL_BlitSurface(bg, NULL, screen, NULL);

    /* update the screen */
    SDL_UpdateRect(screen, 0, 0, 0, 0);
  }

  /* free the background surface */
  SDL_FreeSurface(bg);

  /* cleanup SDL */
  SDL_Quit();

  return 0;
}

Simpan file ini sebagai sdltest.cpp, atau sdltest.c jika Anda ingin menggunakan lurus C bukan C ++. Anda juga harus file bitmap yang terjadi dengan program ini. Ini tersedia untuk di-download dengan kode sumber di bagian bawah halaman ini.

Catatan, tidak ada memeriksa dalam program ini kesalahan. Jika sesuatu gagal, akan sulit untuk melacak. Aku ditinggalkan kesalahan memeriksa hanya untuk membuat program yang lebih pendek dan lebih mudah untuk mengikuti. Dalam program nyata Anda harus memeriksa kembali nilai-nilai dari semua fungsi panggilan SDL.


Compiling

Di Linux Anda dapat mengkompilasi program ini dengan mengetikkan perintah ini:

Jika semuanya bekerja dengan benar, window 640x480 harus membuka dan menampilkan logo SDL. Dalam Visual C ++ Anda harus mengikuti langkah-langkah:

1. buat project baru di Windows Application Project .
2. tambahkan  "sdltest.cpp" file untuk project anda.
3. Pada menu klik Project, kemudian Properties.
4. klik dua kali pada "Configuration Properties".
5. klik dua kali pada "C/C++".
6. klik "Code Generation".
7. Ganti "Runtime Library" untuk "Multi-threaded DLL".
8. klik dua kali pada "linker".
9.klik "input".
10. Selain "Additional Dependencies" , type "sdl.lib sdlmain.lib".
g++ sdltest.cpp `sdl-config --cflags --libs` -o sdltest
kemudian jalankan 
./sdltest
 Anda harus dapat menekan F7 untuk membangun program.
Sebelum kita dapat menjalankan program, Anda harus menempatkan "SDL.dll" file mana Windows dapat menemukannya. Menyalin file dari "C: \ Program Files \ SDL-1.2.9" untuk Visual C ++ folder proyek baru Anda. Jika program Anda mengkompilasi tanpa kesalahan, Anda sekarang dapat menekan F5 untuk menjalankan program.

Mufty Laudza Farhan

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.

0 komentar: