Hey Gwener's, What's Up!
Dalam membuat sebuah aplikasi, Inputhandler merupakan bagian dari interaksi yang harus dikelola dan disediakan oleh pengembangan sebagai bentuk interaksi antara aplikasi dan penggunnya. Inputhandler ini juga telah disediakan oleh Framework LibGDX. Kita bisa memanipulasi event baik pada screen maupun pada tombol yang digunakan sebagai interaksi nantinya.
Input Processor LibGDX

Apa itu Input Handling

Mengenai defenisi Input Handling tentu secara harfiah dapat diartikan sebagai bentu pengelolaan ataupun menagemen dari input yang diberikan. Namun lebih spesifik disini, input handling merupakan cara memanipulasi event yang diberikan oleh pengguna seperti jika berbicara mobile yakni touch screen, keyboard, sound volume, screen orientasi dan lain sebagainya. Berbagai macam interaksi inilah yang mesti dikelola dengan memberikan tindakan yang sesuai pada sebuah aplikasi yang dijalankan.
LibGDX telah menyediakan dan memberikan sebuah interface sehingga mempermudah developer untuk mengelola event yang akan digunakan. Kita bisa menggunakan interface InputProcessor, Interface ini berisi fungsi dari setiap event input yang ada pada mobile seperti yang telah saya jelaskan diatas.

Implementasi InputProcessor

Sebagai contoh kita akan memanipulasi event touch screen pada aplikasi mobile. Umumnya interaksi akan dilakukan pada even ini. Untuk lebih mempermudah touch screen akan bisa dilakukan pada semua titik screen. Perhatikan code berikut ini.
public class InputHandler implements InputProcessor {
 //...
 @Override
 public boolean touchDown(int screenX, int screenY, int pointer, int button) {
  Gdx.app.log("Input Handler", "user is touch the app");
  return true;
 }

 @Override
 public boolean touchUp(int screenX, int screenY, int pointer, int button) {
  Gdx.app.log("Input Handler", "user is touch lose from the app");
  return true;
 }
 //...
}
Dari code diatas kita akan fokus pada 2 fungsi interface yakni touchDown dan touchUp. Maksud fungsi ini adalah ketika seorang pengunkan melakukan touch (Tap) pada perangkat mobilenya maka fungsi touchDown akan tereksekusi. event ini akan berlansung sekali saja walaupun touch yang pengguna lakukan dalam waktu yang lama. Kemudian, ketika touch tersebut dilepas fungsi selanjutnya akan tereksekusi yakni touchUp dan sama halnya dengan touchDown fungsi inipun dieksekusi hanya sekali.
Perlu diingat bahwa setiap event yang diberikan akan mengeksekusi sesuai dengan fungsi yang digunakan dan ini berlaku jika dilakukan berulang-ulang kali pada setiap event tersebut.

Stage sebagai InputHandler dari LibGDX

Jika contoh diatas kita ingin membuat input handler secara kustom, namun sebenarnya input handler ini telah disediakan oleh LibGDX. InputHandler ini dinamakan Stage, tak sekedar input handler saja bisa digunakan untuk menggambar sebuah tombol ataupun objek lain yang akan digunakan sebagai input atau yang disebut sebagai Actor.
Stage akan membuat semua actor yang terigistrasi akan di draw pada screen aplikasi tersebut. Setiap actior juga bisa memiliki event handler yang berbeda dan diconfigurasi sesuai keinginan developer. Event handler yang akan diekseskusi adalah event yang terdapat pada setiap actor jika ada. Contohnya adalah event tombol play, tombol play sebagai actor akan didraw dan ditampilkan pada screen sehingga ketika pengguna menekan tombol ini maka event yang ada pada tombol (actor) play ini akan tereksekusi dengan sendirinya.

Cara Menggunakan Stage sebagai InputHandler

Berikut akan saya berikan contoh untuk menggunakan Stage sebagai InputHandler seperti yang saya jelaskan diatas.
 Stage stage = (Stage)Gdx.input.getInputProcessor();  
 stage.addListener( new InputListener(){
  @Override
  public boolean touchDown(InputEvent event, float x, float y,
   Gdx.app.log("Stage", "hey you touch the screen");
   return true;
  }    
  
 });
 
 TextureRegion playTexture = new TextureRegion();
 ImageButtonStyle playStyle = new ImageButtonStyle();
 playStyle.imageUp = new TextureRegionDrawable(playTexture);
 playStyle.imageDown = new TextureRegionDrawable(playTexture);
 
 playButton = new ImageButton(playStyle);
 playButton.setWidth(29);
 playButton.setHeight(16);
 
 playButton.addListener(new InputListener(){
  @Override
  public boolean touchDown(InputEvent event, float x, float y,
    int pointer, int button) {
   Gdx.app.log("Play", "Hey you run this app");
   return super.touchDown(event, x, y, pointer, button);
  }
  
 });
 
 stage.addActor(playButton);
Perhatikan code diatas, cukup jelas bahwa ada 2 event touchDown yang terregistrasi, yakni pada stage dan pada tombol play. Sehingga hal ini akan tereksekusi secara berurutan. Berikut alurnya.
  • Jika tombol play di tekan oleh penggunakan makan event touchDown pada tombol play akan dieksekusi terlebih dahulu selanjutnya event touchDown pada Stage
  • Jika touch hanya dilakukan diluar dari tombol play makan yang akan dieksekusi adalah event touchDown pada Stage
  • Hal ini akan berlaku untuk seterusnya
Nah, bagaimana sudah cukup mengenal inputhandler dari libGDX ini. selanjutnya sobat bisa membaca tentang Let's Code with LibGDX on eclipse

4 comments:

  1. مع شركة اركان المملكه للتنظيف,ومكافحه الحشرات,وكشف التسربات,وتسليك المجارى,ونقل العفش,وتنظيف البيوت انت
    تتعامل مع افضل شركة بالمملكه ككل لانها تتعامل باقل الاسعار المتاحه فى مجال العمل
    ونحن نوفر لك كل ما هو جديد وبخصم 30%فى مجال الحساب اذا معنا انت فى كل امان ممكن
    اتصل بشركة اركان المملكه لانها الافضل دائما فى كل المجالات
    تمتلك الشركة كل وسائل التوصيل والنقل 24 ساعه
    :::::::::::::::::::::::::::::::::::::
    شركة كشف تسربات المياه بجازان

    شركة كشف تسربات المياه بخميس مشيط

    شركة كشف تسربات المياه بابها

    شركة كشف تسربات المياه بالدمام

    شركة كشف تسربات المياه بالرياض

    شركة نقل اثاث بجازان

    شركة تسليك مجارى بالدمام

    شركة تسليك مجارى بخميس مشيط

    شركة تسليك مجارى بجازان

    شركة تسليك مجارى بنجران

    شركة مكافحه حشرات بخميس مشيط

    شركة تسليك مجارى بابها

    شركة نقل عفش بالرياض

    شركة نقل عفش بخميس مشيط

    هكذا شركة اركان المملكه تقدم الخدمه الممتازه التى بدونها لا تستطيعوا العمل الجاد
    اننا نتعامل بالافضليه الكامله لاننا نتعامل بكل الاسعار البسيطه والممكنه
    تحت شعار الراحه الكامله والاداء المتميز والخدمه طول اليوم
    معنا انت فى كل امان اتصل نصلك اينما كنت

    ReplyDelete
  2. لا داعى للقلق وانت تتعامل مع شركة اركان المملكه للتنظيف والمكافحه والتسليك
    وغير ذالك من كافه انواع التنظيف فى المملكه السعوديه باكملها اذا
    كل ما عليكم هو زياره صفحتنا للتطلع على اقل الاسعار المتاحه
    والتى تفى احتياجاتكم الخاصه
    شركة مكافحة حشرات بالدمام

    شركة مكافحة حشرات بابها

    شركة رش مبيدات بجازان

    شركة مكافحه حشرات بالاحساء

    شركة رش مبيدات بالرياض

    شركة اركان المملكه

    شركة تنظيف بابها

    شركة تنظيف فلل بابها

    شركة تنظيف بالدمام

    شركة تنظيف منازل بالرياض

    شركة تنظيف منازل بابها

    شركة تنظيف منازل بخميس مشيط

    شركة تنظيف شقق بالدمام

    شركة تنظيف بالطائف

    شركة تنظيف بالاحساء
    الشركة الاولى والكبيره والتى لها تاريخ كبير فى كل المجالات مع شركة اركان المملكه تعامل معنا تصل الى بر المان
    معنا تجد كل العروض والمميزات التى لا تجدوها مع احد
    اذا شركة اركان المملكه هى من اعرق الشركات فى كافه المجالات والخدمات اذا نحن نتعامل فى كل ما هو تنظيف ومكافحه وكشف تسربات
    اتصلوا نصلكم اينما كنتم فى كل وقت وكل مكان

    ReplyDelete