From 518f77be2ecf7f4fac352a9dce5dcdc54c475ecc Mon Sep 17 00:00:00 2001 From: webbrain-one <295484252+webbrain-one@users.noreply.github.com> Date: Tue, 28 Jul 2026 14:20:35 +0300 Subject: [PATCH] docs: add Spanish README --- README.es-ES.md | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 README.es-ES.md diff --git a/README.es-ES.md b/README.es-ES.md new file mode 100644 index 0000000..555247d --- /dev/null +++ b/README.es-ES.md @@ -0,0 +1,99 @@ +# [gamePyd](http://pypi.org/project/gamePyd) + + + +Jugar videojuegos es divertido, ¿verdad? Entonces, ¿por qué debería ser diferente hacer que Python juegue? +¡Al menos debería ser fácil! ¿cierto? Para eso es esta librería. +gamePyd proporciona métodos listos para casos de uso comunes. También te ofrece los componentes que utiliza, haciendo que la lectura y emulación de controladores de Xbox sea trivial en Windows. + +Bajo el capó, se envuelve [ScpVBus](https://github.com/nefarius/ScpVBus) de `nefarius` para interactuar con XInput, que a su vez está envuelto en métodos para permitirte trabajar con tu estructura de datos preferida y utilizar la información transformada para controlar gamepads de manera fluida. Actualmente soportamos dataframes, listas y diccionarios. + +## Prerrequisitos + +Esta librería debería funcionar con cualquier versión posterior a Python 3.6, aunque las pruebas solo se han realizado en 3.8.4 y posteriores. Actualmente, el único sistema operativo soportado es Windows 10. + +Para utilizar el objeto Virtual Controller, necesitas `ScpVBus`. Para facilitar las cosas, [una de sus versiones](https://github.com/shauleiz/vXboxInterface) está incluida en este proyecto. Puedes encontrar más información sobre el original en el [repositorio archivado de nefarius](https://github.com/nefarius/ScpVBus). +Probablemente también necesites [x360ce](https://www.x360ce.com/#Help_Old_Version) para facilitar la conexión con los juegos, así como para depurarla. He incluido una versión antigua, ya que es la que me funcionó. + +### Instalando ScpVbus +Necesitamos ScpVBus para comunicarnos con Windows sobre los detalles relacionados con el gamepad: +Abre un símbolo del sistema (cmd) con privilegios de administrador en el directorio ScpVBus-x64 y ejecuta `devcon.exe install ScpVBus.inf Root\ScpVBus`. Una ejecución exitosa se indica mediante el siguiente mensaje: + + Device node created. Install is complete when drivers are installed... + Updating drivers for Root\ScpVBus from {Location}\PYXInput\ScpVBus-x64\ScpVBus.inf. + Drivers installed successfully. + +## Instalación +Ahora que lo básico está hecho, procedamos con los pasos habituales: + +### Instalar vía pip + + pip install gamePyd + +### ¿Tienes prisa? +Dos módulos principales: +- [writePad](/gamePyd/writePad.py) contiene el objeto [`wPad`] que utilizas para controlar (hasta 4) gamepads virtuales. +- - utiliza el método [`playMoment`](https://github.com/PCplays/gamePyd/blob/d722064054d5c74cbbd819ac97f5230ca21a40c1/gamepyd/writePad.py#L159) para asignar un estado pasado como diccionario. +- - o pasa un dataframe con filas como estados a [`playback`](https://github.com/PCplays/gamePyd/blob/d722064054d5c74cbbd819ac97f5230ca21a40c1/gamepyd/writePad.py#L188). +- Para leer gamepads (virtuales o físicos), utilizas el objeto [`rPad`](https://github.com/PCplays/gamePyd/blob/d722064054d5c74cbbd819ac97f5230ca21a40c1/gamepyd/readPad.py#L55) en [readPad](/gamePyd/readPad.py). +- - [`record`](https://github.com/PCplays/gamePyd/blob/d722064054d5c74cbbd819ac97f5230ca21a40c1/gamepyd/readPad.py#L144) leerá el controlador a una tasa dada durante una duración fija y devolverá un dataframe. +- - [`capture`](https://github.com/PCplays/gamePyd/blob/d722064054d5c74cbbd819ac97f5230ca21a40c1/gamepyd/readPad.py#L168) hará lo mismo, pero terminará únicamente al detectar la presión de un botón específico en el controlador. + +Si no tienes prisa, por favor dirígete a las [páginas de la wiki](https://github.com/PCplays/gamePyd/wiki). Si deseas solicitar alguna funcionalidad, por favor abre un issue. + +### Probar la lectura de controladores +Ejecutar `test_read()` debería dar (la salida de abajo fue cuando no había ningún controlador conectado): + +``` +Testing controller in position 1: +This will just take a second. We'll look at the controller values in 200 milli-second intervals: +0--------------------------------------------- +State:{'LT': 0, 'RT': 0, 'Lx': 0, 'Ly': 0, 'Rx': 0, 'Ry': 0, 'UP': False, 'DOWN': False, 'LEFT': False, 'RIGHT': False, 'START': False, 'SELECT': False, 'L3': False, 'R3': False, 'LB': False, 'RB': False, 'A': False, 'B': False, 'X': False, + 'Y': False} +--------------------------------------------- +1--------------------------------------------- +State:{'LT': 0, 'RT': 0, 'Lx': 0, 'Ly': 0, 'Rx': 0, 'Ry': 0, 'UP': False, 'DOWN': False, 'LEFT': False, 'RIGHT': False, 'START': False, 'SELECT': False, 'L3': False, 'R3': False, 'LB': False, 'RB': False, 'A': False, 'B': False, 'X': False, + 'Y': False} +--------------------------------------------- +2--------------------------------------------- +State:{'LT': 0, 'RT': 0, 'Lx': 0, 'Ly': 0, 'Rx': 0, 'Ry': 0, 'UP': False, 'DOWN': False, 'LEFT': False, 'RIGHT': False, 'START': False, 'SELECT': False, 'L3': False, 'R3': False, 'LB': False, 'RB': False, 'A': False, 'B': False, 'X': False, + 'Y': False} +--------------------------------------------- +3--------------------------------------------- +State:{'LT': 0, 'RT': 0, 'Lx': 0, 'Ly': 0, 'Rx': 0, 'Ry': 0, 'UP': False, 'DOWN': False, 'LEFT': False, 'RIGHT': False, 'START': False, 'SELECT': False, 'L3': False, 'R3': False, 'LB': False, 'RB': False, 'A': False, 'B': False, 'X': False, + 'Y': False} +--------------------------------------------- +4--------------------------------------------- +State:{'LT': 0, 'RT': 0, 'Lx': 0, 'Ly': 0, 'Rx': 0, 'Ry': 0, 'UP': False, 'DOWN': False, 'LEFT': False, 'RIGHT': False, 'START': False, 'SELECT': False, 'L3': False, 'R3': False, 'LB': False, 'RB': False, 'A': False, 'B': False, 'X': False, + 'Y': False} +--------------------------------------------- +Better yet, you can use prettyRead() to sample as many times as desired for any required duration. +And then return it as a dataframe, can even write it to a file by supplying the filename. + LT RT Lx Ly Rx Ry UP DOWN LEFT RIGHT START SELECT L3 R3 LB RB A B X Y time(ns) timeDelta(ms) error(ms) +0 0 0 0 0 0 0 False False False False False False False False False False False False False False 1605620332292776700 9.9744 1.641067 +1 0 0 0 0 0 0 False False False False False False False False False False False False False False 1605620332301749900 8.9732 0.639867 +2 0 0 0 0 0 0 False False False False False False False False False False False False False False 1605620332310727300 8.9774 0.644067 +3 0 0 0 0 0 0 False False False False False False False False False False False False False False 1605620332319701900 8.9746 0.641267 +4 0 0 0 0 0 0 False False False False False False False False False False False False False False 1605620332328678100 8.9762 0.642867 +Do note that the final three columns are metadata. +``` + +### Hoja de Ruta (Roadmap) +Las características destacadas próximas se enumeran a continuación (más detalles en el [proyecto](https://github.com/PCplays/gamePyd/projects/2) adjunto): +- [ ] Calibración para diferencias de velocidad entre máquinas, para minimizar automáticamente la desviación de la tasa de lectura. +- [ ] Verificación de lag al escribir en los gamepads. +- [ ] Agregar pruebas unitarias. +- [ ] Expandir la wiki. +- [ ] Pruebas de rendimiento. + +## Créditos +* **Ayush Rawat** - *Desarrollador Principal* - [4amvim](https://github.com/4amvim) + +* **Ryan Barnes** - *Autor de [PYXInput](https://github.com/bayangan1991/PYXInput)* - [bayangan1991](https://github.com/bayangan1991) + +Mira también la lista de [contribuyentes](https://github.com/bayangan1991/PYXInput/graphs/contributors) que participaron en PYXinput (del cual este proyecto fue derivado). + +## Agradecimientos + +* A todos en [vJoy](http://vjoystick.sourceforge.net/site/) por la DLL vXboxInterface. +* A [nefarius](https://github.com/nefarius) por [ScpVBus](https://github.com/nefarius/ScpVBus).