Thursday, 12 March 2015

SDL2 : Dimulai dari Sebuah Titik (Piksel) #4


Tulisan ini merupakan lanjutan dari:

Seperti yang kita bahas sebelumnya, kini saatnya menambahkan tinggi dan banyaknya gelombang. Tambahkan variabel iPulse dan iTinggi seperti dibawah ini :
   
   ...
    //Variabel untuk menampung event masukkan
    SDL_Event e;
    int iPulse = 5 , iTinggi = 80;

    //Loop utama kita
    while( !keluar )
    {
   ...

Selanjutnya tambahkan sedikit perintah untuk mengatur nilai variabel tersebut dengan memeriksa tombol pada keyboard, seperti kode berikut :
   
   ...
      //menangani jenis masukkan
      switch ( e.type)
      {
         case SDL_QUIT : keluar = true; break;
         case SDL_KEYDOWN:{
            switch( e.key.keysym.sym){
               case SDLK_UP: if( iPulse < 15) pulse++; break;
               case SDLK_DOWN: if( iPulse > 5) pulse--; break;
               case SDLK_w: if( iTinggi < 300) iTinggi+=10; break;
               case SDLK_s: if( iTinggi > 60) iTinggi-=10; break;
               case SDLK_ESCAPE: keluar = true; break;
               default:;
            }
         }
         default:;
      }
   ...

Selanjutnya kita masuk ke perulangan X sebelumnya, dengan perubahan seperti berikut :
   
   ...
      for(int X=0;X < Layar_Lebar;X++){
      
         // Memperoleh derajat untuk Y , 
         // dimana 1 gelombang = 360 derajat
         int derajat = X*((iPulse*360.0f)/Layar_Lebar);

         // setiap nilai X bernilai sekian derajat,
         // tergantung banyaknya iPulse
         int Y = (Layar_Tinggi/2) +
                 cos(derajat*PI/180.0)*iTinggi;

         //optimasi
         if( (X > 0 && X < Layar_Lebar) &&
             (Y > 0 && Y < Layar_Tinggi))
         {
             //proses penggambaran
             SDL_RenderDrawPoint(gRenderer, X, Y);
         }
      }
   ...

Untuk proses optimasi kita hanya menampilkan titik tersebut jika koordinat (X,Y) berada pada dimensi layar (perhatikan kondisi if). Hasil yang akan diperoleh :


Gambar 1. Gunakan tombol W,S, dan anak panah Atas dan Bawah.

Kelemahan menggambar dengan titik adalah hasil yang diperoleh dapat terlihat putus-putus (perhatikan gambar diatas). Contoh, untuk (X1,Y1) = (5,30), dilanjutkan dengan (X2,Y2) = (6,35), jarak yang diperoleh oleh Y1 dan Y2 cukup jauh sehingga terlihat putus. Untuk itu kita perlu perbaikan proses penggambaran. Pada artikel selanjutnya kita akan menggunakan garis. So, Happy Coding! .

- krofz

2 comments:

  1. ijin berbagi untuk program game yang saya buat

    http://heriadyblog.blogspot.com/p/isi-blog-ini.html
    http://heriadyblog.blogspot.com/p/blog-page_19.html

    ReplyDelete
    Replies
    1. silahkan bro, senang bisa berbagi :D

      Delete

Maaf jika komentar anda lama terbitnya ^__^, penulis berusaha OL sesering mungkin. Komentar anda adalah semangat blog ini, dan juga semangat para blogger lainnya. You can use XHTML tags: <a href="" rel="link"> </a>, <strong> </strong>, <b> </b>, <em> </em>, <i> </i>.

Spesial character use :
&lt; for <
&gt; for >


Use Pastebin.com for alternative to display your code :) .

 

back to top

back to top