Skip to main content

moteur de jeu de plateforme

Project description

Guide d'utilisation rapide du package lplateforme pour la création d'un jeu de plateforme

Introduction

Le package lplateforme permet de créer facilement des jeux de plateforme en Python. Il fournit des outils pour gérer les objets, les plateformes, les collisions et les événements dans un environnement graphique interactif.

Installation

Avant de commencer, assurez-vous que le package lplateforme est installé. Si ce n'est pas le cas, installez-le via pip :

pip install lplateforme

Initialisation du jeu

Le jeu commence par l'importation du package et la définition des fonctions d'événements interactifs.

from lplateforme.plateforme import *

Création et gestion des plateformes

Les plateformes sont définies en utilisant la classe BoxContainer, qui stocke les différents éléments du niveau.

plateformes = BoxContainer()
# Ajout des plateformes fixes tout autour de l'écran (1260x490) pour empêcher le joueur de tomber
plateformes.ajouter_bords(1260, 420)
# Ajout des plateformes fixes
plateformes.ajouter(Box(140, 70, 350, 278))

On peut également ajouter des plateformes mobiles :

# Ajout des plateformes mobiles
# Plateforme horizontale qui se déplace et rebondit sur les autres plateformes
plateformes.ajouter(MovableBox(800, 70, 210, 70, "assets/platbois3.png", ['stop', "bounce"], 1, 1, obstacles=plateformes))

Ajout d'objets interactifs

Les objets interactifs sont définis en tant que EventBox :

plateformes.ajouter(EventBox(15, 385, 0, 0, "cle", "assets/cle.png", saisir_cle))
plateformes.ajouter(EventBox(400, 370, 0, 0, "coffre", "assets/coffre_ferme.png", ouvrir_coffre))

Création des événements

Les fonctions d'événements permettent de définir le comportement des objets lors des interactions avec le joueur. Ces fonctions doivent être placées en début de programme. Exemple :

Ramasser un objet et le placer dans l'inventaire du joueur

def saisir_cle(player, objet):
    if player.name == "player":
        # Transférer l'objet de la plateforme à l'inventaire du joueur
        player.obstacles.transferer(objet, player.inventaire)
        # Rendre l'objet inventaire visible
        player.inventaire.visible = True

Ouvrir un coffre avec une clé

def ouvrir_coffre(player, objet):
    # Vérifier si le joueur possède une clé
    if player.name == "player":
        cle = player.inventaire.find("cle")
        if cle is not None:
            # Retirer la clé de l'inventaire du joueur
            player.inventaire.retirer(cle)
            # changer l'image du coffre par une image de coffre ouvert
            objet.image = loadImage("assets/coffre_ouvert_plein.png")
            objet.y -= 20

Création du joueur

Le joueur est créé à l'aide de la classe Player en lui attribuant une image et des plateformes pour ses interactions :

p = Player(70, 0, 20, 65, "assets/marche0.png", plateformes)

remplacement de l'image du joueur par une animation

animation = ImageAnimee()
animation.add_images("marche","assets/marche0.png",6)
animation.add_images("idle","assets/idle0.png",6)

p = Player(70, 0, 20, 65, animation, plateformes)

Boucle principale du jeu

La boucle du jeu est structurée en trois parties : setup, compute, et draw.

Initialisation du décor

def setup():
    createCanvas(1260, 490)
    background(loadImage("assets/img.png"))

Mise à jour des mouvements

def compute():
    p.scan_keys()
    p.move()
    plateformes.move()

Affichage des éléments

def draw():
    plateformes.draw()
    objets.draw()
    p.draw()
    title(str(mouseXY()))

Lancement du jeu

Le jeu est lancé en exécutant :

run(globals())

Conclusion

Ce guide vous a montré comment créer un jeu de plateforme simple avec lplateforme. Vous pouvez enrichir votre jeu en ajoutant plus d'événements, d'objets interactifs et de mécaniques de gameplay.

Passe en revu des classes et fonctions du package

Classes

Box

Classe de base pour les plateformes fixes. Elle hérite de la classe Rect de pygame et ajoute une méthode draw pour afficher l'image de la plateforme. paramètres:

  • x, y : coordonnées du coin supérieur gauche de la plateforme
  • w, h : largeur et hauteur de la plateforme
  • image : chemin de l'image de la plateforme (optionnel). On peut aussi utiliser une ImageAnimee.
  • collision_behavior : comportement de collision de la plateforme (optionnel). Par défaut, la plateforme est solide et empêche le joueur de passer à travers. ["stop"]. On peut utiliser "stopx" pour arrêter suivant l'axe x et stopy pour arrêter suivant l'axe y.On peut aussi utiliser "bounce" pour rebondir sur la plateforme.

MovableBox

Classe pour les plateformes mobiles. Elle hérite de la classe Box et ajoute des méthodes pour gérer le mouvement de la plateforme. paramètres:

  • x, y : coordonnées du coin supérieur gauche de la plateforme
  • w, h : largeur et hauteur de la plateforme
  • image : chemin de l'image de la plateforme (optionnel). On peut aussi utiliser une ImageAnimee.
  • collision_behavior : comportement de collision de la plateforme (optionnel). Par défaut, la plateforme est solide et empêche le joueur de passer à travers. ["stop"]. On peut utiliser "stopx" pour arrêter suivant l'axe x et stopy pour arrêter suivant l'axe y.On peut aussi utiliser "bounce" pour rebondir sur la plateforme.
  • velocity_x : vitesse de déplacement suivant l'axe x
  • velocity_y : vitesse de déplacement suivant l'axe y
  • obstacles : liste des plateformes fixes pour gérer les collisions

EventBox

Classe pour les objets interactifs. Elle hérite de la classe Box et ajoute une méthode event pour déclencher un événement lorsqu'un joueur entre en collision avec l'objet. paramètres:

  • x, y : coordonnées du coin supérieur gauche de l'objet
  • w, h : largeur et hauteur de l'objet
  • name : nom de l'objet
  • image : chemin de l'image de l'objet (optionnel). On peut aussi utiliser une ImageAnimee.
  • event : fonction d'événement à déclencher

MovableGravityBox

Classe pour les plateformes mobiles avec gravité. Elle hérite de la classe MovableBox et ajoute un attribut gravity pour gérer la gravité de la plateforme.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lplateforme-0.1.5.1.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lplateforme-0.1.5.1-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file lplateforme-0.1.5.1.tar.gz.

File metadata

  • Download URL: lplateforme-0.1.5.1.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.1 Windows/11

File hashes

Hashes for lplateforme-0.1.5.1.tar.gz
Algorithm Hash digest
SHA256 f544f85e2bd8c429ee6c0b2e4d4094ca00c3ca1f38775dcefc07e56db363ef60
MD5 b70cb3118b64d00632057307e8921ffc
BLAKE2b-256 646bb4391baed80d8dd6052c48026ad05255e6f0911f5bb266ef575a4b758620

See more details on using hashes here.

File details

Details for the file lplateforme-0.1.5.1-py3-none-any.whl.

File metadata

  • Download URL: lplateforme-0.1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.1 Windows/11

File hashes

Hashes for lplateforme-0.1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5355e9c5ce93d7b621a39894c00595315aefc64f0c97d4ee03d8e868272c21e8
MD5 0afb46839ba13eaba7c0499fae91fdb3
BLAKE2b-256 63a352e7dc2985fd393e9dcd7d0872b8bec9c281b5c1e08f22f8cbfc49564d8c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page