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

Programmation multimédia/Jeux Python Discussion :

Aide sur les collision avec pygame [Python 3.X]


Sujet :

Programmation multimédia/Jeux Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut Aide sur les collision avec pygame
    Salut !,
    Alors voila mon soucis,
    je n'arrive pas à faire une collision d'une image que je déplace vers un rectangle, en gros l'image doit s’arrêter sur le rectangle, voici le code complet:

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    import pygame
     
    clock = pygame.time.Clock()
    pygame.init()
     
    #Différentes couleurs
    color_rect = (255, 0, 0)
    color_surface = (37, 11, 11)
    green_color = (100, 255, 100)
    black_color = (0, 0, 0)
    blue_color = (0, 255, 255)
     
    #Titre fenêtre
    pygame.display.set_caption("Mélissandre and Cie...")
     
    #Dimensions surface
    window_surface = pygame.display.set_mode([800, 600])
     
    #Chargement du Perso
    perso = pygame.image.load("head.jpg")
    perso_x = 400
    perso_y = 300
    window_surface.blit(perso, [perso_x, perso_y])
    pygame.display.flip()
     
    #Boucle Infinie
    continued = True
    pygame.key.set_repeat(1, 1)
    while continued:
        window_surface.fill(color_surface)
     
        # Ajout du mur de blocage:
        rect_border = pygame.Rect(4, 3, 793, 595)
        pygame.draw.rect(window_surface, color_rect, rect_border, 1)
     
        rect_top = pygame.Rect(7, 6, 788, 30)
        pygame.draw.rect(window_surface, green_color, rect_top, 1)
     
        for event in pygame.event.get():    #Attente des évènements:
     
            if event.type == pygame.QUIT:
                continued = False
     
            if event.type == pygame.KEYDOWN:
     
                if event.key == pygame.K_UP:
                    if perso_y:
                        perso_y -= 3
     
                if event.key == pygame.K_DOWN:
                    if perso_y:
                        perso_y += 3
     
                if event.key == pygame.K_LEFT:
                    if perso_x:
                        perso_x -= 3
     
                if event.key == pygame.K_RIGHT:
                    if perso_x:
                        perso_x += 3
     
     
        window_surface.blit(window_surface, (0, 0))
        window_surface.blit(perso, [perso_x, perso_y])
     
        clock.tick(63)
        arial_font = pygame.font.SysFont("arial", 20)
        text = arial_font.render(f"{clock.get_fps():.0f} FPS", True, blue_color)
        window_surface.blit(text, [11, 8])
        pygame.display.flip()
    Merci

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Je ne vois pas de code pour détecter la collision Est-ce la collision avec la bordure de la fenêtre ?

    Pour vous, que veut dire ce code, et pourquoi l'avait vous mis ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut
    Salut, justement, je ne sais pas quel code il faut mettre, j'ai voulu faire avec colliderect, mais c'est qu'avec les rectangles, et donc j'aimerais pouvoir faire avec mon images qui est le perso principal, pour qu'il s’arrête au bord des deux autres rectangles, c'est à dire, celui qui fait tous le contour de la fenêtre (en rouge) et celui qui fait une bande sur le haut de la fenêtre pour pouvoir afficher d'autres choses par la suite (en vert), dont le compteur de FPS (en bleu).

    Voila j'espère avoir été plus clair, et je précise je suis vraiment débutant donc m'en voulez pas si ce n'est pas très clair.

    Bonne Journée.
    Merci

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Par défaut
    Une question pour te mettre encore plus sur la piste : Quels sont les attributs de ton perso/image ? D'après ton explication, claire au passage, tu chauffes déjà un peu héhé.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut
    Citation Envoyé par ohnomorejmmings Voir le message
    Une question pour te mettre encore plus sur la piste : Quels sont les attributs de ton perso/image ? D'après ton explication, claire au passage, tu chauffes déjà un peu héhé.
    Salut, déjà merci de ta réponse,

    Les attributs de mon perso ? Je crois que c'est une entité que je déplace et qui effectuera des actions qui ne sont lier qu'à lui, c'est plus ou moins le centre de mon programme, mais comment ? vu que c'est une image, tu veut que je la transforme en Objet, pour que ce ne soit plus une image mais un personnage ?

    Dans la logique si je ne m'abuse ce serai sa, mais comment ? ^^ je le set dans une variable ? mais je n'est pas le code pour cela, ou bien je le transforme en rectangle ? ou bien je le set dans une variable = perso + rectangle ? pour effetcuer
    toutes ces actions il me manque les "clefs"

    Bonne Soirée

  6. #6
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Salut.

    Citation Envoyé par Myrmidon201 Voir le message
    Les attributs de mon perso ? Je crois que c'est une entité que je déplace et qui effectuera des actions qui ne sont lier qu'à lui, c'est plus ou moins le centre de mon programme, mais comment ? vu que c'est une image, tu veut que je la transforme en Objet, pour que ce ne soit plus une image mais un personnage ?
    Tu peux déjà regarder des choses simples comme le singe et le pong expliqués dans les tutos du site pour voir comment programmer ça avec des objets assez simples.
    https://jeux.developpez.com/tutoriels/Pygame/

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 252
    Par défaut
    Citation Envoyé par Myrmidon201 Voir le message
    Les attributs de mon perso ?
    Qu'est-ce qui le définit ? Par exemple d'après les variables perso_x/y on peut déduire qu'il est au moins défini par une position. Je l'entendais au sens général et pas POO. On peut aussi parler de caractéristiques, propriétés… Pour t'aider je t'invite à t'appuyer sur ta description des fenêtres (Bords, zones colorées…).

    Citation Envoyé par Myrmidon201 Voir le message
    pour effetcuer
    toutes ces actions il me manque les "clefs"
    En effet mais tes questions sont pertinentes. En fait ça dépend de ce que tu apprends en cours, des contraintes de l'exercice… D'après ton code je me suis dit programmation fonctionnel mais comme avec la biblio on manipule des objets ça peut prêter à confusion.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [débutant] besoin d'aide pour un programme
    Par acdchornet dans le forum C++
    Réponses: 12
    Dernier message: 26/10/2006, 22h32
  2. [Débutant] Besoin d'aide pour modifier un jeu
    Par stoff66 dans le forum Assembleur
    Réponses: 9
    Dernier message: 31/08/2006, 18h24
  3. [Débutant]Besoin d'aide pour gestion d'exceptions
    Par H1B4K dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2006, 10h01
  4. Besoin d'aide pour un débutant en procédure stockée
    Par el gringo dans le forum Débuter
    Réponses: 2
    Dernier message: 06/04/2006, 11h17
  5. [débutant].besoin d'aide pour servlet
    Par 2tsiris dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 30/03/2006, 14h36

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