Event Handling di OpenGL Part 2 - Grafika Komputer

Photo by Alex on Unsplash
Halo! tulisan ini merupakan lanjutan dari postingan sebelumnya, yaitu Event Handling di OpenGL. Di sini kita akan menampilkan teks berupa warna background dan persegi menggunakan bitmap text.

Langsung saja, berikut adalah code program untuk project kita kali ini, untuk penjelasan dapat kalian temukan pada bagian akhir postingan ini.


Code program di atas hampir sama dengan code program pada postingan sebelumnya, di sini kita hanya menambahkan beberapa hal saja.

Jika code program di atas dijalankan, maka akan tampil seperti ini.

Perubahan background dan persegi beserta teksnya.

Pertama, kita membuat variable warna_persegiwarna_background dan total_clicked. Kedua variable warna tersebut berguna untuk menampung warna sesuai dengan namanya, sedangkan variable terakhir berguna untuk menghitung berapa kali user melakukan klik kanan atau klik kiri, pergantian warna pada persegi akan ditentukan dengan nilai pada variable ini.

Kedua, kita definisikan sebuah fungsi bernama drawBitmapText. Fungsi ini berguna untuk menampilkan teks, posisi teks tersebut dapat diatur dengan menggunakan parameter x, y dan z. Dalam kasus ini, saya memberikan nilai x = -450 dan y = -350 (bertambah -50 untuk teks selanjutnya) sehingga teks akan berada pada pojok kiri bawah.

Terakhir, fungsi drawBitmapText akan dipanggil di dalam fungsi display. Nilai warna_persegi dan warna_background akan berubah secara dinamis tergantung dari posisi persegi dan jumlah klik yang dilakukan user.

Bisa dilihat pada fungsi get_user_keyboard_input warna_background akan berganti sesuai dengan lokasi dari persegi, begitu juga dengan warna persegi, pada fungsi get_mouse_user_input warna persegi akan diubah sesuai dengan berapa banyak klik yang dilakukan user, baik klik kanan ataupun klik kiri.

Warna persegi berdasarkan jumlah klik:

  1. Total 0 => warna merah
  2. Total 1 => warna gelap
  3. Total 2 => warna hijau
  4. Total 3 => warna biru

Jika total warna sudah melebihi tiga, maka akan diubah kembali menjadi 0.

Demikian postingan kali ini, seperti biasa code program dapat kalian temukan di rizkyramadhan28.

Post a Comment

0 Comments