""" Ceci est un exemple de comment l'on peut utiliser le moteur du jeu. """ from engine import * from engine.math import Vec2 from engine.plugins.render import Order, RenderPlugin, Position, Texture from engine.plugins.timing import Delta, TimePlugin from engine.plugins.pygame import Display, Keyboard, PygamePlugin from random import random # Initialisation game = Game(TimePlugin(), PygamePlugin(), RenderPlugin()) # On créer une tache pour afficher des sprites def spawn_sprites(world: World) -> None: """ Ajoute des sprites au monde. """ for i in range(100): red = random() < 0.1 world.create_entity( Position(random() * Display.WIDTH, random() * Display.HEIGHT), Texture("test2.png") if red else Texture("test.png"), Order(1 if red else 0), ) # On ajoutant la tache game.add_startup_tasks(spawn_sprites) def move_sprites(world: World) -> None: """ Change la position des sprites. """ move = Vec2( (-1.0 if world[Keyboard].is_key("q") else 0.0) + (1.0 if world[Keyboard].is_key("d") else 0.0), (-1.0 if world[Keyboard].is_key("z") else 0.0) + (1.0 if world[Keyboard].is_key("s") else 0.0), ) for entity in world.query(Position): if entity[Order] == 1: continue entity.set(Position(entity[Position] + (move * world[Delta] * 1000.0))) # On ajoute la tache game.add_update_tasks(move_sprites) # On créer une tache pour tester si les plugins fonctionnent def salutations(world: World) -> None: """ Affiche "Bonjour" si la touche B est pressé et "Au revoir" si la touche B est relachée. """ if world[Keyboard].is_key_pressed("b"): print("Bonjour") if world[Keyboard].is_key_released("b"): print("Au revoir") # On ajoute la tache de test game.add_update_tasks(salutations) # On lance la boucle game.run()