united custom Sprite and Label in better_pyglet, they now have a default_kwargs. "Century Gothic Bold" is now the default font

This commit is contained in:
Faraphel 2023-03-06 10:11:42 +01:00
parent e64439b622
commit 316de05525
14 changed files with 39 additions and 12 deletions

View file

@ -4,6 +4,13 @@ from source.gui.scene import MainMenu
from source.gui.window import GameWindow
from source import path_font
from source.gui.better_pyglet import Label
pyglet.font.add_directory(path_font)
Label.default_kwargs["font_name"] = "Century Gothic" # NOQA: Label à un "default_kwargs" avec la metaclass
# Create a new window
window = GameWindow(resizable=True, vsync=False, caption="Bataille Navale")
window.set_minimum_size(720, 480)

View file

@ -0,0 +1,8 @@
import pyglet
from source.gui.better_pyglet.abc import Element
class Label(Element, pyglet.text.Label):
def __init__(self, *args, **kwargs):
super().__init__(*args, **(self.default_kwargs | kwargs))

View file

@ -1,13 +1,15 @@
import pyglet
from source.gui.better_pyglet.abc import Element
class Sprite(pyglet.sprite.Sprite):
class Sprite(Element, pyglet.sprite.Sprite):
"""
Same as the pyglet sprite, but allow to set a width and height easier
"""
def __init__(self, width: int = None, height: int = None, *args, **kwargs):
super().__init__(*args, **kwargs)
super().__init__(*args, **(self.default_kwargs | kwargs))
self._orig_width: int = self.width
self._orig_height: int = self.height

View file

@ -1 +1,2 @@
from .Sprite import Sprite
from .Label import Label

View file

@ -0,0 +1,7 @@
from abc import ABC
from typing import Any
class Element(ABC):
def __init_subclass__(cls, **kwargs):
cls.default_kwargs: dict[str, Any] = {} # all subclasses will have their own "default_kwargs" dict

View file

@ -0,0 +1 @@
from .Element import Element

View file

@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Type
import pyglet
from source.gui.sprite import Sprite
from source.gui.better_pyglet import Sprite, Label
from source.gui.texture.abc import Style
from source.gui.widget.abc import BoxWidget
from source.type import Distance
@ -38,7 +38,7 @@ class Button(BoxWidget):
**dict_filter_prefix("background_", kwargs)
)
self.label = pyglet.text.Label(
self.label = Label(
width=None, height=None,
anchor_x="center", anchor_y="center",
batch=self.scene.batch,

View file

@ -1,6 +1,6 @@
from typing import TYPE_CHECKING, Type
from source.gui.sprite import Sprite
from source.gui.better_pyglet import Sprite
from source.gui.texture.abc import Style
from source.gui.widget.abc import BoxWidget
from source.type import Distance

View file

@ -7,7 +7,7 @@ import pyglet.shapes
from source.core import Board, Boat
from source.core.enums import Orientation, BombState
from source.core.error import InvalidBoatPosition
from source.gui.sprite import Sprite
from source.gui.better_pyglet import Sprite
from source.gui.texture.abc import Style
from source.gui.widget.abc import BoxWidget
from source.type import Distance, ColorRGB, Point2D

View file

@ -2,7 +2,7 @@ from typing import TYPE_CHECKING
import pyglet.image
from source.gui.sprite import Sprite
from source.gui.better_pyglet import Sprite
from source.gui.widget.abc import BoxWidget
from source.type import Distance

View file

@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Optional, Type
import pyglet.image
from source.gui.sprite import Sprite
from source.gui.better_pyglet import Sprite, Label
from source.gui.texture.abc import Style
from source.gui.widget.abc import BoxWidget
from source.type import Distance
@ -46,7 +46,7 @@ class Input(BoxWidget):
**dict_filter_prefix("background_", kwargs)
)
self.label = pyglet.text.Label(
self.label = Label(
width=None, height=None,
anchor_x="center", anchor_y="center",
batch=self.scene.batch,

View file

@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Callable, Any, Type
import pyglet.image
from source.gui.sprite import Sprite
from source.gui.better_pyglet import Sprite, Label
from source.gui.texture.abc import Style
from source.gui.widget.abc import BoxWidget
from source.type import Distance
@ -54,7 +54,7 @@ class Scroller(BoxWidget):
**dict_filter_prefix("cursor_", kwargs)
)
self.label = pyglet.text.Label(
self.label = Label(
anchor_x="center", anchor_y="center",
batch=self.scene.batch,
**dict_filter_prefix("label_", kwargs)

View file

@ -1,5 +1,6 @@
from typing import TYPE_CHECKING
from source.gui.better_pyglet import Label
from source.gui.widget.abc import BoxWidget
import pyglet
@ -25,7 +26,7 @@ class Text(BoxWidget):
**kwargs):
super().__init__(scene, x, y, width, height)
self.label = pyglet.text.Label(
self.label = Label(
x=self.x, y=self.y, width=self.width, height=self.height,
batch=self.scene.batch,
**kwargs