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.
Matteo Benedetto c7cfe6b0c6 Remove unused configuration files and binaries related to keybindings and engine demo 7 months ago
Entities Refactor code structure for improved readability and maintainability 7 months ago
assets Refactor code structure for improved readability and maintainability 7 months ago
enne2engine Refactor code structure for improved readability and maintainability 7 months ago
.gitignore Refactor code structure for improved readability and maintainability 7 months ago
README.md Remove unused configuration files and binaries related to keybindings and engine demo 7 months ago
engine_demo.py Refactor code structure for improved readability and maintainability 7 months ago
fg.png Aggiungi il supporto per la creazione di ombre in base ai canali alfa delle immagini 10 months ago
final_image.png Aggiungi il supporto per la creazione di ombre in base ai canali alfa delle immagini 10 months ago
shadow.py Aggiungi il supporto per la creazione di ombre in base ai canali alfa delle immagini 10 months ago
textarget.py Correggi importazione di TileManager e modifica la trasformazione inversa isometrica 9 months ago

README.md

Enne2Engine

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

  1. Clona il repository:
git clone https://github.com/tuousername/enne2engine.git
cd enne2engine
  1. 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 motore
    • sdl2_wrapper.py: Wrapper per SDL2
    • pyglet_wrapper.py: Wrapper per Pyglet
    • controls.py: Sistema di gestione degli input utente
  • assets/: Contiene gli asset di esempio
    • KnightBasic/: Animazioni del cavaliere
    • tiles/: Tileset di esempio
  • Entities/: Definizioni delle entità di gioco
  • engine_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.