Proyek ini diarsipkan. Itu tidak dipertahankan atau dikembangkan lagi.
Gainput
Gainput adalah pustaka input C ++ yang luar biasa untuk game Anda:
- Menangani kebutuhan input Anda dari pembacaan perangkat tingkat rendah hingga pemetaan tombol tingkat tinggi yang ditentukan pengguna
- Berdokumentasikan dengan baik, bersih, ringan, dan mudah digunakan
- Antarmuka terpadu di semua platform yang didukung: Android NDK, iOS/TVOS, Linux, MacOS, Windows
- Perangkat yang Didukung: Keyboard, Mouse, GamePad, Multi-Touch, Sensor Perangkat bawaan
- Open Source (Lisensi MIT)
- Daftar Fitur Lengkap
- Dokumentasi API
Penggunaan
# include < gainput/gainput.h >
enum Button
{
ButtonConfirm
};
gainput::InputManager manager;
manager.SetDisplaySize(displayWidth, displayHeight);
const gainput::DeviceId keyboardId = manager.CreateDevice<gainput::InputDeviceKeyboard>();
const gainput::DeviceId mouseId = manager.CreateDevice<gainput::InputDeviceMouse>();
const gainput::DeviceId padId = manager.CreateDevice<gainput::InputDevicePad>();
const gainput::DeviceId touchId = manager.CreateDevice<gainput::InputDeviceTouch>();
gainput::InputMap map (manager);
map.MapBool(ButtonConfirm, keyboardId, gainput::KeyReturn);
map.MapBool(ButtonConfirm, mouseId, gainput::MouseButtonLeft);
map.MapBool(ButtonConfirm, padId, gainput::PadButtonA);
map.MapBool(ButtonConfirm, touchId, gainput::Touch0Down);
while (running)
{
manager. Update ();
// May need some platform-specific message handling here
if (map. GetBoolWasDown (ButtonConfirm))
{
// Confirmed!
}
}Fitur
- Menawarkan antarmuka terpadu di semua platform yang didukung. (Beberapa perubahan kecil diperlukan untuk mengatur perpustakaan.)
- Memberikan antarmuka tingkat rendah dan tingkat tinggi: Permintaan keadaan tombol perangkat input secara langsung atau tombol perangkat peta ke tombol pengguna. Dengan begitu mudah untuk mendukung input alternatif atau mengubah pemetaan input di kemudian hari.
- Mendukung perekaman dan pemutaran urutan input.
- Fitur server jaringan untuk mendapatkan informasi tentang perangkat dan pemetaan dari.
- Dua instance gainput dapat menyinkronkan status perangkat melalui jaringan . Dimungkinkan juga untuk menerima input multi-sentuh dari browser reguler smartphone .
- Ditulis sepenuhnya dalam portabel C ++ .
- Tidak ada STL yang digunakan. Tidak ada pengecualian yang dilemparkan. Tidak ada RTTI yang digunakan. Tidak ada C ++ 11 , dan tidak ada dorongan .
- Tidak ada dependensi eksternal yang aneh yang digunakan. Bergantung pada SDK platform yang ada.
- Mudah diatur dan dibangun menggunakan IDE/Build Tool favorit Anda.
- Pendengar dapat diinstal untuk tombol perangkat maupun tombol pengguna. Dengan begitu Anda diberitahu ketika status tombol berubah.
- Gerakan memungkinkan pola input yang lebih kompleks terdeteksi, misalnya klik dua kali, jepit/rotasi gerakan, atau menahan beberapa tombol secara bersamaan.
- Alokasi eksternal dapat dipasok ke perpustakaan sehingga semua manajemen memori dilakukan seperti yang Anda inginkan.
- Mendukung input mentah di Linux dan Windows.
- Gamepad Rembling didukung jika tersedia.
- Sangat mudah untuk memeriksa semua tombol yang ditekan sehingga menawarkan cara kepada para pemain untuk mengubah tombol mereka mudah diimplementasikan. Demikian pula mudah untuk menyimpan dan memuat pemetaan.
- Mungkin fitur yang tidak perlu, seperti gerakan atau server jaringan, mudah dinonaktifkan.
- Zona mati dapat diatur untuk tombol nilai float apa pun.
- Perubahan status , yaitu jika tombol baru turun atau baru saja dirilis, dapat diperiksa.
Bangunan
Secara default, gainput dibangun menggunakan cmake.
- Jalankan
mkdir build - Jalankan
cmake .. - Jalankan
make - Perpustakaan dapat ditemukan di
lib/ , yang dapat dieksekusi dalam samples/ .
Berkontribusi
Setiap orang dipersilakan untuk berkontribusi ke perpustakaan. Jika Anda menemukan masalah, Anda dapat mengirimkannya menggunakan sistem masalah GitHub. Jika Anda ingin menyumbangkan kode, Anda harus membayar proyek dan kemudian mengirim permintaan tarik.
Dependensi
Gainput memiliki jumlah minimal dependensi eksternal untuk membuatnya mandiri mungkin. Ini menggunakan cara default platform untuk mendapatkan input dan tidak menggunakan STL.
Pengujian
Secara umum, pengujian harus dilakukan dengan membangun dan menjalankan penguatan pada semua platform yang didukung. Sampel dalam samples/ folder harus digunakan untuk menentukan apakah pustaka fungsional.
Uji unit dalam test/ folder dibangun oleh build cmake normal. Eksekusi dapat ditemukan di test/ folder. Semua konfigurasi membangun dan tes unit dibangun dan dijalankan oleh Travis CI setiap kali ada sesuatu yang didorong ke dalam repositori.
Alternatif