You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.7 KiB
2.7 KiB
Un semplice motore di gioco 2D sviluppato in Python con supporto per SDL2 e Pyglet.
Caratteristiche
- Supporto per più backend grafici (SDL2, Pyglet)
- Sistema di rendering di sprite e tilesheet
- Gestione delle animazioni tramite file JSON
- Sistema di controllo utente e gestione eventi
- Trasformazioni di coordinate isometriche
- Sistema di selezione entità
- Gestione degli asset semplificata
Prerequisiti
- Python 3.7+
- SDL2 (per l'utilizzo del backend SDL2)
- Pyglet (per l'utilizzo del backend Pyglet)
Installazione
- Clona il repository:
git clone https://github.com/tuousername/enne2engine.git
cd enne2engine
- Installa le dipendenze:
pip install -r requirements.txt
Utilizzo
Avvio della demo
Per avviare la demo con il backend SDL2 (predefinito):
python engine_demo.py
Per avviare la demo con il backend Pyglet:
python engine_demo.py --pyglet
Creazione di un nuovo progetto
from enne2engine.sdl2_wrapper import SDL2Wrapper
from enne2engine.controls import UserControls
class MioGioco(UserControls):
def __init__(self):
super().__init__()
self.graphics = SDL2Wrapper(self)
# Inizializzazione delle risorse e della logica di gioco
self.load_assets()
def run(self):
running = True
while running:
event = self.graphics.handle_events()
if event == "QUIT":
running = False
self.graphics.clear_screen()
# Logica di rendering
self.graphics.present_renderer()
self.graphics.quit()
def load_assets(self):
# Caricamento delle risorse
self.graphics.load_tilesheet("tiles", "assets/tiles/my_tiles.png")
self.graphics.load_spritesheet("player", "assets/player/player_animations.json")
if __name__ == "__main__":
gioco = MioGioco()
gioco.run()
Struttura del Progetto
enne2engine/: Moduli principali del motoresdl2_wrapper.py: Wrapper per SDL2pyglet_wrapper.py: Wrapper per Pygletcontrols.py: Sistema di gestione degli input utente
assets/: Contiene gli asset di esempioKnightBasic/: Animazioni del cavalieretiles/: Tileset di esempio
Entities/: Definizioni delle entità di giocoengine_demo.py: Demo del motore
Gestione degli Asset
Il motore supporta il caricamento di spritesheet e tilesheet:
# Caricamento di un tilesheet
graphics.load_tilesheet("tiles", "percorso/al/tilesheet.png")
# Caricamento di un'animazione tramite file JSON
graphics.load_spritesheet("personaggio", "percorso/al/animazione.json")
Licenza
Questo progetto è rilasciato sotto la licenza MIT.
