On met un maximum de char. au typing

This commit is contained in:
CoCo_Sol 2023-10-30 16:11:55 +01:00
parent c4fefba8a9
commit 67492fbabe
3 changed files with 11 additions and 4 deletions

View file

@ -5,11 +5,15 @@ Definit un plugin qui crée un texte avec les touches frappées
from engine import Keyboard, Scene, Sound, Text, World
class Typing(str):
class Typing:
"""
Marque une entité comme un texte qui s'ecrit en fonction du clavier
"""
def __init__(self, accepted_chars: str, max_chars: int = 10) -> None:
self.accepted_chars = accepted_chars
self.max_chars = max_chars
def __update(world: World):
"""
@ -24,7 +28,10 @@ def __update(world: World):
text = text[:-1]
if key.startswith("["): # pavé numerique
key = key[1]
if key in entity[Typing]:
if (
key in entity[Typing].accepted_chars
and len(text) < entity[Typing].max_chars
):
world.create_entity(Sound("click"))
text += key
entity[Text] = Text(text)

View file

@ -83,7 +83,7 @@ def __initialize_world(world: World):
Position(Display.WIDTH / 2, 750),
Order(2),
Centered(),
typing.Typing("1234567890"),
typing.Typing("1234567890", 2),
Text(""),
COLOR_TEXT,
TextSize(150),

View file

@ -84,7 +84,7 @@ def __initialize_world(world: World):
Position(Display.WIDTH / 2, 750),
Order(2),
Centered(),
typing.Typing("1234567890"),
typing.Typing("1234567890", 2),
Text(""),
COLOR_TEXT,
TextSize(150),