Assets pour Tricheur #48
|
@ -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)
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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),
|
||||
|
|
Loading…
Reference in a new issue