Skip to content

Latest commit

 

History

History
66 lines (51 loc) · 2.73 KB

controllers.md

File metadata and controls

66 lines (51 loc) · 2.73 KB

GamePad / Controllers

Salah satu dari keuntungan utama dari konsol OUYA adalah, para pemain dapat menggunakan kontroler yang sebenarnya! Berikut ini adalah spesifikasi dari kontroler OUYA

  • empat tombol digital (O, U, Y, and A)
  • D-pad (tombol arah panah) empat arah
  • dua joystick analog (LS, RS)
  • dua tombol digital yang dapat diaktifkan saat joystik ditekan kebawah (L3, R3)
  • dua tombol bumper/bemper digital (L1, R1)
  • dua tombol trigger analog (L2, R2)
  • satu touchpad, yang dapat dikonfigurasi sebagai mouse (sama seperti touchpad pada laptop)

Catatan: Tombol trigger analog juga dapat digunakan sebagai tombol digital, dengan jarak 0.5 dari nilai analognya.

Karena interface kontroler sangat penting, kami telah membuat dokumentasi yang memudahkan kalian untuk menggunakannya.

Konstanta/Constants

OuyaController memiliki konstanta spesifik untuk tombol dan aksis (arah panah). Seperti yang terlihat dibawah ini.

public static final int BUTTON_O;
public static final int BUTTON_U;
public static final int BUTTON_Y;
public static final int BUTTON_A;
Anytime State Querying

Kalau kalian menginginkan /fleksibilitas yang lebih saat membaca kondisi kontroler yang kapapun kalian inginkan, kalian bisa menggunakan kelas/class dari OuyaController. Pertama-tama, ini artinya perintah kalian harus memforward/mengalihkan panggilan dari onKeyDown, onKeyUp, atau onGenericMotionEvent kepada OuyaCOntroller:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    boolean handled = OuyaController.onKeyDown(keyCode, event);
    return handled || super.onKeyDown(keyCode, event);
}

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    boolean handled = OuyaController.onKeyUp(keyCode, event);
    return handled || super.onKeyUp(keyCode, event);
}

@Override
public boolean onGenericMotionEvent(MotionEvent event) {
    boolean handled = OuyaController.onGenericMotionEvent(event);
    return handled || super.onGenericMotionEvent(event);
}

Begitu OuyaController sudah mendapat eventnya, kalian bisa membaca instance dari kelas/class nya dengan salah satu cara ini: identitas dari alat/device id ataupun nomor pada pemain/player number

OuyaController c = OuyaController.getControllerByDeviceId(deviceId);
OuyaController c = OuyaController.getControllerByPlayer(playerNum);

Nah, sekarang untuk membaca nilai dari tombol dan sumbu/arah panah pun mudah:

float axisX = c.getAxisValue(OuyaController.AXIS_LSTICK_X);
float axisY = c.getAxisValue(OuyaController.AXIS_LSTICK_Y);
boolean buttonPressed = c.getButton(OuyaController.BUTTON_O);

Dengan cara ini, kalian bisa memfokuskan dalam membuat game kalian, dan tidak terbebani oleh masalah penanganan pada input.