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.7.tar.gz (15.9 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.7-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lplateforme-0.1.5.7.tar.gz
  • Upload date:
  • Size: 15.9 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.7.tar.gz
Algorithm Hash digest
SHA256 43eb5cf94e6e8ed6eff895da863d97f625c51383f2c0f0f84b4bddcb84f66e3a
MD5 14e4c4069694731ce1ea9ebc1a52c562
BLAKE2b-256 0e5100280d59268dc5d257dc478cb2dd4d861cfed96a1fff1c559cfbe64100c0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lplateforme-0.1.5.7-py3-none-any.whl
  • Upload date:
  • Size: 14.8 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 de907c0bd165d2fea7897685f07bfce56a98a31a162faddf4201ebb6946903ef
MD5 28bced6cd1aa108263dae472985be20c
BLAKE2b-256 1478dcb7db622dc9e2c1f97fcf2c4e34c18365234ba604d9c1f6b8fa7e033f2f

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