Este proyecto está archivado. Ya no se mantiene ni se desarrolla.
Ganancia
Gainput es la increíble biblioteca de entrada C ++ para tu juego:
- Maneja sus necesidades de entrada desde lectura de dispositivos de bajo nivel hasta mapeo de alto nivel de botones definidos por el usuario
- bien documentado, limpio, liviano y fácil de usar
- Una interfaz unificada en todas las plataformas compatibles: Android NDK, iOS/TVOS, Linux, MacOS, Windows
- Dispositivos compatibles: teclado, mouse, gamepad, multitáctil, sensores incorporados de dispositivo
- Open Source (licencia del MIT)
- Lista completa de características
- Documentación de API
Uso
# 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!
}
}Características
- Ofrece una interfaz unificada en todas las plataformas compatibles. (Algunos cambios menores son necesarios para configurar la biblioteca).
- Proporciona una interfaz de bajo nivel y de alto nivel: consulte el estado de los botones de dispositivos de entrada directamente o asigne los botones del dispositivo a un botón de usuario. De esa manera, es fácil admitir entradas alternativas o cambiar las asignaciones de entrada más adelante.
- Admite grabación y reproducción de secuencias de entrada.
- Cuenta con un servidor de red para obtener información sobre dispositivos y asignaciones.
- Dos instancias de ganancia de ganancia pueden sincronizar los estados del dispositivo a través de la red . También es posible recibir entradas multitáctil del navegador regular de un teléfono inteligente .
- Completamente escrito en C ++ portátil.
- No se usa STL . No se lanzan excepciones . No se usa RTTI . No C ++ 11 , y sin impulso .
- No se utilizan dependencias externas extrañas . Se basa en los SDK de plataforma existentes.
- Configurar y construir fácilmente con su herramienta IDE/construcción favorita.
- Los oyentes se pueden instalar tanto para los botones de dispositivos como para los botones de usuario. De esa manera, se le notifica cuando cambia un estado de botón.
- Los gestos permiten detectar patrones de entrada más complejos, por ejemplo, hacer doble clic, gestos de pellizco/rotación, o manteniendo varios botones simultáneamente.
- Se puede suministrar un asignador externo a la biblioteca para que toda la gestión de la memoria se realice de la manera que lo desee.
- Admite la entrada RAW en Linux y Windows.
- GamePad Rughling está respaldado donde esté disponible.
- Es fácil verificar todos los botones presionados para que ofrezca una forma a los jugadores para reasignar sus botones sea fácil de implementar. Del mismo modo, es fácil guardar y cargar asignaciones.
- Las características posiblemente innecesarias, como los gestos o el servidor de red, están fácilmente deshabilitados.
- Las zonas muertas se pueden configurar para cualquier botón de valor flotante.
- Los cambios de estado , es decir, si un botón está recién inactivo o simplemente se suelta, se pueden verificar.
Edificio
De forma predeterminada, GaRenput se crea con CMake.
- Ejecutar
mkdir build - Ejecutar
cmake .. -
make - La biblioteca se puede encontrar en
lib/ , los ejecutables en samples/ .
Que contribuye
Todos son bienvenidos a contribuir a la biblioteca. Si encuentra algún problema, puede enviarlos utilizando el sistema de problemas de GitHub. Si desea contribuir con código, debe desembolsar el proyecto y luego enviar una solicitud de extracción.
Dependencias
GaRenput tiene un número mínimo de dependencias externas para que sea lo más autónomo posible. Utiliza las formas predeterminadas de las plataformas de obtener entradas y no utiliza el STL.
Pruebas
En general, las pruebas deben realizarse construyendo y ejecutando ganancia en todas las plataformas compatibles. Las muestras en las samples/ carpeta deben usarse para determinar si la biblioteca es funcional.
Las pruebas unitarias en la test/ carpeta están construidas por la compilación CMake normal. El ejecutable se puede encontrar en la test/ carpeta. Todas las configuraciones de compilación y las pruebas unitarias son construidas y ejecutadas por Travis CI cada vez que algo se empuja en el repositorio.
Alternativas