Modifica il renderer SDL per utilizzare la modalità accelerata e semplifica il caricamento delle immagini
This commit is contained in:
+4
-16
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user