|
|
|
@ -15,7 +15,7 @@ class GameWindow: |
|
|
|
sdl2.ext.init() |
|
|
|
sdl2.ext.init() |
|
|
|
self.window = sdl2.ext.Window(title=title, size=(self.width, self.height)) |
|
|
|
self.window = sdl2.ext.Window(title=title, size=(self.width, self.height)) |
|
|
|
self.window.show() |
|
|
|
self.window.show() |
|
|
|
self.renderer = sdl2.ext.Renderer(self.window, flags=sdl2.SDL_RENDERER_PRESENTVSYNC) |
|
|
|
self.renderer = sdl2.ext.Renderer(self.window, flags=sdl2.SDL_RENDERER_ACCELERATED) |
|
|
|
self.factory = sdl2.ext.SpriteFactory(renderer=self.renderer) |
|
|
|
self.factory = sdl2.ext.SpriteFactory(renderer=self.renderer) |
|
|
|
self.fonts = self.generate_fonts("assets/AmaticSC-Regular.ttf") |
|
|
|
self.fonts = self.generate_fonts("assets/AmaticSC-Regular.ttf") |
|
|
|
self.running = True |
|
|
|
self.running = True |
|
|
|
@ -28,21 +28,9 @@ class GameWindow: |
|
|
|
|
|
|
|
|
|
|
|
def load_image(self, path, transparent_color=None): |
|
|
|
def load_image(self, path, transparent_color=None): |
|
|
|
image_path = os.path.join(os.path.dirname(__file__), "..", "assets", path) |
|
|
|
image_path = os.path.join(os.path.dirname(__file__), "..", "assets", path) |
|
|
|
image = Image.open(image_path) |
|
|
|
image = sdl2.ext.load_image(image_path) |
|
|
|
if transparent_color: |
|
|
|
|
|
|
|
image = image.convert("RGBA") |
|
|
|
|
|
|
|
datas = image.getdata() |
|
|
|
|
|
|
|
new_data = [] |
|
|
|
|
|
|
|
for item in datas: |
|
|
|
|
|
|
|
if item[:3] == transparent_color: |
|
|
|
|
|
|
|
new_data.append((255, 255, 255, 0)) |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
new_data.append(item) |
|
|
|
|
|
|
|
image.putdata(new_data) |
|
|
|
|
|
|
|
# Ridimensiona l'immagine in base a cell_size |
|
|
|
# Ridimensiona l'immagine in base a cell_size |
|
|
|
scale = self.cell_size // 20 |
|
|
|
return self.factory.from_surface(image) |
|
|
|
image = image.resize((image.width * scale, image.height * scale), Image.NEAREST) |
|
|
|
|
|
|
|
return self.factory.from_surface(sdl2.ext.pillow_to_surface(image)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def draw_text(self, text, font, position, color): |
|
|
|
def draw_text(self, text, font, position, color): |
|
|
|
sprite = self.factory.from_text(text, color=color, fontmanager=font) |
|
|
|
sprite = self.factory.from_text(text, color=color, fontmanager=font) |
|
|
|
@ -84,4 +72,4 @@ class GameWindow: |
|
|
|
self.running = False |
|
|
|
self.running = False |
|
|
|
# Disegna qui gli sprite |
|
|
|
# Disegna qui gli sprite |
|
|
|
self.renderer.present() |
|
|
|
self.renderer.present() |
|
|
|
#time.sleep(self.delay / 1000) |
|
|
|
time.sleep(self.delay / 1000) |
|
|
|
|