Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème collisions

Collision

    19 mai 2015 à 15:30:46

    Bonjour, 

    J'ai un petit problème avec la collision de mon personnage, j'aimerais qu'il puisse passer en dessous des "météorites" quand il y a de la place et pas seulement entre.

    Est ce que quelqu'un peut m'aider ? 

    Voici mon programme :

    import  pygame

    import time

    from random import*

    noir = (0,0,0)

    pygame.init()

    #info sur les images

    fenetreH=700            #taille 

    fenetreL=1351

    FuséeH=133

    FuséeL=100

    meteoriteH=81

    meteoriteL=110

    fenetre=pygame.display.set_mode((fenetreL,fenetreH))     #création de la fenètre

    pygame.display.set_caption("Jeux")  #nom de la fenetre

    img = pygame.image.load("brad.jpg")

    img_meteorite = pygame.image.load("meteorite.jpg")

    img_meteorite2 = pygame.image.load("meteorite.jpg")

    def meteorite(x_meteorite,y_meteorite,espace):

        fenetre.blit(img_meteorite,(x_meteorite, y_meteorite))

        fenetre.blit(img_meteorite2,(x_meteorite,y_meteorite+meteoriteH+espace))

    def Fusée(pos_x,pos_y,image):

        fenetre.blit(image,(pos_x,pos_y))

    def fonctionprincipale():

        pos_x=350   #position image

        pos_y=250

        y_mouvement=0

        x_meteorite= fenetreL

        y_meteorite= randint(-100,10)    #aleatoire

        espace = FuséeH*3

        vitesse_meteorite=2 

        fermer=False

        while not fermer:

            for event in pygame.event.get():   #fermeture

                if event.type==pygame.QUIT:

                    fermer=True

                if event.type==pygame.KEYDOWN:          #Evenements

                    if event.key==pygame.K_SPACE:

                        y_mouvement=-1

                if event.type==pygame.KEYUP:

                    y_mouvement= 1

            pos_y+= y_mouvement

            fenetre.fill(noir)

            Fusée(pos_x,pos_y,img)

            meteorite(x_meteorite,y_meteorite,espace)

            x_meteorite -= vitesse_meteorite

            if pos_y> fenetreH -40 or pos_y < -10:

                fermer=True

            if pos_x+ FuséeL > x_meteorite +40:                     #collision

                if pos_y < y_meteorite + meteoriteH +50:

                    if pos_x - FuséeL < x_meteorite + meteoriteL -20:

                        fermer = True

            if pos_y + FuséeH > y_meteorite + meteoriteH + espace + meteoriteH -50:

                    fermer = False

            if pos_x+ FuséeL > x_meteorite +40:    

                if pos_y + FuséeH > y_meteorite + meteoriteH + espace + 50:

                    if pos_x - FuséeL < x_meteorite + meteoriteL -20:

                        fermer = True

            if x_meteorite < (-1*meteoriteL):       # si largeur meteorite negative (*-1)

                x_meteorite = fenetreL

                y_meteorite = randint (-300,10)

            pygame.display.update() #mettre a jour la fenetre

    fonctionprincipale()

    pygame.quit()

    quit()

    • Partager sur Facebook
    • Partager sur Twitter

    Problème collisions

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown