IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Exercices Python Discussion :

aide exercice NSI


Sujet :

Exercices Python

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Novembre 2023
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1
    Par défaut aide exercice NSI
    Bonjour, je dois pendant mes vacances réaliser un mini jeu... mais j'ai besoin de votre aide.
    j'ai réussi à gérer les déplacements, mais je bute sur le déclencheement à la souris d'une banane que je souhaite faire tomber...
    en réalité je voudrai qu'un clic de souris déclenche la chute. il me faudrait aussi rendre possible qu'à chaque clic une banane tombe, et que si une banane tombe dans le chariot alors qu'un message "gagné" s'affiche.
    si vous pouvez m'expliquer les étapes, l'intérêt pour moi étant d'apprendre.
    merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    from p5 import *
    liste=0
    x_chariot=26
    y_chariot=510
    pas_chariot=11
    chariot_en_vie=True
    x_banane=400
    y_banane=26
    pas_banane=10
    banane_en_vie=True
    tempo=400
     
     
    def setup():
        global fond
        global chariot
        global banane
        createCanvas(926, 717)
        fond=loadImage("https://capytale2.ac-paris.fr/web/sites/default/files/2023/11-02/14-49-20/8800560.jpg")
        chariot=loadImage("https://capytale2.ac-paris.fr/web/sites/default/files/2023/11-02/15-01-28/chariot.png")
        banane=loadImage("https://capytale2.ac-paris.fr/web/sites/default/files/2023/11-02/15-01-28/banana.png")
     
     
     
    def draw():
     
        global x_chariot,pas_chariot,y_chariot,chariot_en_vie,x_banane,pas_banane,y_banane,banane_en_vie
        if chariot_en_vie:
            if x_chariot>900-chariot.width:
                pas_chariot = -pas_chariot
            if x_chariot<26:
                pas_chariot=-pas_chariot
            x_chariot=x_chariot+pas_chariot
     
        #if banane_en_vie:
        if mouseIsPressed :
            if tempo== True:
               # tempo=True #tempo pour éviter les tirs en rafale
               if y_banane>650-banane.width:
                pas_banane = -pas_banane
            #if y_banane<26:
                pas_banane=-pas_banane
            y_banane=y_banane+pas_banane     
     
     
        background(fond)
        #global banane
        #image(banane,380,20)
     
        if chariot_en_vie:
            image(chariot,x_chariot,y_chariot)
        if banane_en_vie:
            image(banane,x_banane,y_banane)    
     
     
        #image(banane,mouseX - banane.width/2,mouseY-banane.height/2)
     
     
    run()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 716
    Par défaut
    Salut,

    Citation Envoyé par dampecc Voir le message
    si vous pouvez m'expliquer les étapes, l'intérêt pour moi étant d'apprendre.
    Pour apprendre, il est préférable d'utiliser une bibliothèque graphique plus populaire et moins exotique que P5. Au moins il y a de monde qui utilisera les bibliothèques avec lesquelles vous voulez jouer, au plus il sera difficile de trouver de l'aide et donc nécessaire d'être "auto-suffisant".

    Puis si vous voulez apprendre, il est quand même plus recommandable d'ouvrir un tuto. ou concepts et exercices sont introduits avec une certaine progression pédagogique plutôt que de vous lancer tout seul dans un truc ou vous n'avez aucune idée des difficultés à résoudre (et du niveau à atteindre pour ne pas être perdu).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre chevronné
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2023
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Août 2023
    Messages : 387
    Par défaut
    Bonjour,

    Vous devez en premier lieu déclarer un gestionnaire d'évènement pour capturer l'évènement de clique du bouton de souris.

    Avec p5 cela est réalisé en déclarant une fonction `mouseClicked`

    https://p5js.org/reference/#/p5/mouseClicked

    Cette fonction aura pour tâche d'ajouter une banane dans une liste de bananes en cours d'affichage,
    qui existe sur la scène.

    Il faudra donc déclarer une variable de type tableau tel que `bananes` dont chaque élément
    fournira les propriétés d'affichage d'une `banane`, par exemple, la position X/Y.

    https://p5js.org/reference/#/p5/append
    https://p5js.org/reference/#/p5/pmouseX

    Afin d'animer ces `bananes`, il faudra parcourir la liste de ces éléments durant
    l'appel de la fonction `draw` et mettre à jour les propriétés de chaque banane
    préalablement à l'affichage de ces dernières.
    C'est probablement aussi ici qu'on testera si la position d'une banane correspond
    à la position du chariot. Si tel devait être le cas, j'imagine que le joueur gagne 1 point,
    que la banane disparait de l'écran, donc, doit être retirée de la liste des bananes.

    De manière plus général vous allez devoir parcourir la documentation pour apprendre
    les diverses fonctions de bases. C'est en utilisant cette connaissance nouvelle que vous
    parviendrez à comprendre comment implémenter la fonction désirée.
    Ce que vous apprenez durant cette lecture vous est utile dans tout autre
    activités de programmation.
    Ne vous mettez pas en tête d'apprendre toute la doc d'un bloc,
    contentez vous de la butiner avec curiosité.

    J'ai pris pour référence p5js, mais cela ne doit en rien changer avec p5, hormis
    les spécificités de votre langages de choix.

    Bonne journée.

Discussions similaires

  1. Aide exercice de math/Algorithmique
    Par laurent2628 dans le forum Mathématiques
    Réponses: 11
    Dernier message: 10/06/2008, 13h24
  2. Aide exercices Java débutant
    Par dalil777 dans le forum Général Java
    Réponses: 9
    Dernier message: 08/02/2008, 22h19
  3. Aide exercice C
    Par lkaiman dans le forum C
    Réponses: 3
    Dernier message: 31/12/2007, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo