Sobre el proyecto
Godot-Python es un proyecto que busca llevar el soporte del lenguaje Python al motor de juegos Godot como un módulo de scripting. Permite a los desarrolladores escribir guiones de juego en Python en lugar de GDScript, aprovechando el ecosistema y la sintaxis de Python.
**Características principales:**
- **Scripting en Python en Godot:** Usar clases Python que heredan de nodos de Godot (por ejemplo, `Node2D`, `KinematicBody`) y exponerlas al motor mediante el decorador `@exposed`.
- **Exports:** Definir atributos y propiedades exportados usando `export(<tipo>)` para integrarlos con el inspector de Godot.
- **Acceso completo a la API:** Acceder a la API de Godot a través de bindings generados (por ejemplo, `Vector2`, `ResourceLoader`).
- **Clases auxiliares:** Las clases Python no expuestas pueden usarse internamente para lógica.
- **Sistema de compilación:** Basado en Scons, Cython y Jinja2, con soporte para Linux, Windows y macOS.
- **Pruebas y ejemplos:** Incluye pruebas basadas en pytest y un proyecto de ejemplo de Pong.
**Estado actual:** El proyecto está en plena refactorización para soportar Godot 4, que es incompatible con la base de código actual. El desarrollo se realiza en la rama `godot4-meson`. La rama master apunta a Godot 3.x.
**Instalación:** Los usuarios pueden instalarlo mediante la biblioteca de activos de Godot, descargarlo desde el sitio web de la biblioteca de activos o obtener compilaciones específicas de plataforma desde la página de versiones.
**Ejemplo de uso:**
```python
from godot import exposed, export, Vector2, Node2D, ResourceLoader
@exposed
class Player(Node2D):
name = export(str)
@export(int)
@property
def age(self):
return self._age
@age.setter
def age(self, value):
self._age = value
def talk(self, msg):
print(f"I'm saying {msg}")
def _ready(self):
self._age = 42
print(self.get_name())
def _process(self, delta):
self.position += Vector2(10, 10) * delta
```
**Compilación desde el código fuente:** Requiere Python >= 3.7 y un compilador C. Los pasos incluyen inicializar los submódulos para las cabeceras de GDNative, crear un entorno virtual, instalar las dependencias y ejecutar Scons con comandos específicos de plataforma (por ejemplo, `scons platform=x11-64 release`).
**Preguntas frecuentes destacadas:**
- **Exportación de proyectos:** Se necesita una exportación manual; copie el entorno de Python y el binario de Godot a la carpeta de release.
- **Uso de paquetes de Python:** Instale pip mediante `ensurepip` y luego use `pip install` para añadir paquetes al intérprete integrado.
- **Depuración con PyCharm:** Cambie el nombre del binario de Godot para que incluya 'python' y use "Attach to Local Process".
- **Carga automática de guiones:** Configúrelo en `project.godot` bajo `[autoload]` y `[gdnative]`.
- **PoolArrays:** Use el administrador de contexto `arr.raw_access()` para un acceso eficiente, pero tenga cuidado con la seguridad de la memoria.
**Nota:** El proyecto no se mantiene activamente para Godot 3, y los usuarios deben consultar la rama `godot4-meson` para futuras actualizaciones.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.