Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de rafraichisement

    22 mai 2015 à 20:27:53

    Bonjour à tous,

    Alors voilà j'ai un léger soucis, dans le cadre de mon projet ISN, j'ai réaliser une petit jeu, le principe est simple vous êtes au centre de la fenêtre et des ennemi vous arrive dessus de chaque coté, vous manipuler les flèches, quand un ennemis est à coté de vous si vous toucher le bonne flèche l'ennemi meurs, les bases sont fonctionnelles sauf que mes ennemis s'affiche sur chacune de leurs position ce qui fait que je me retrouve avec 4 fils indiennes et mes "attaques" qui sont censé rester afficher 1/2 secondes reste, donc je voulais savoir si vous pourriez m'aider.

    Merci,

    voila la classe des images:

    import pygame

    from pygame.locals import*


    fenetre = pygame.display.set_mode((600,600))

    pygame.display.set_caption("EBD")


    fond = pygame.image.load("fond.png").convert()


    perso = pygame.image.load("perso.png").convert()

    perso.set_colorkey((255,255,255))

    perso_rect = perso.get_rect()

    perso_rect.center = (300,300)


    atk1 = pygame.image.load("atk1.png").convert()

    atk1.set_colorkey((128,0,128))

    atk1_rect = atk1.get_rect()

    atk1_rect.center = (300,270)


    atk2 = pygame.image.load("atk2.png").convert()

    atk2.set_colorkey((255,255,255))

    atk2_rect = atk2.get_rect()

    atk2_rect.center = (330,300)


    atk3 = pygame.image.load("atk3.png").convert()

    atk3.set_colorkey((255,255,255))

    atk3_rect = atk3.get_rect()

    atk3_rect.center = (300,330)


    atk4 = pygame.image.load("atk4.png").convert()

    atk4.set_colorkey((255,255,255))

    atk4_rect = atk4.get_rect()

    atk4_rect.center = (270,300)


    mechant1 = pygame.image.load("mechant1.png").convert()

    mechant1.set_colorkey((255,255,255))

    mechant1_rect = mechant1.get_rect()

    mechant1_rect.center = (300,0)


    mechant2 = pygame.image.load("mechant2.png").convert()

    mechant2.set_colorkey((255,255,255))

    mechant2_rect = mechant2.get_rect()

    mechant2_rect.center = (600,300)


    mechant3 = pygame.image.load("mechant3.png").convert()

    mechant3.set_colorkey((255,255,255))

    mechant3_rect = mechant3.get_rect()

    mechant3_rect.center = (300,600)


    mechant4 = pygame.image.load("mechant4.png").convert()

    mechant4.set_colorkey((255,255,255))

    mechant4_rect = mechant4.get_rect()

    mechant4_rect.center = (0,300)

    et voila le code:

    # -*- coding: cp1252 -*-

    import pygame

    import os

    import traceback

    from image import*

    from pygame.locals import*


    pygame.init()


    try:

        os.environ['SDL_VIDEO_WINDOW_POS'] = "533,225"

        fenetre = pygame.display.set_mode((600,600))

        pygame.display.set_caption("EBD")

        fenetre.blit(fond, (0,0))

        fenetre.blit(perso, perso_rect)

        pygame.key.set_repeat(400,30)

        pygame.display.flip()

        pygame.mixer.music.load("battle sound1.mp3")

        pygame.mixer.music.play()


        #score

        score = 0


        #Evenement temporisé

        depla1 = USEREVENT+1

        pygame.time.set_timer(depla1,1000)

        depla2 = USEREVENT+2

        pygame.time.set_timer(depla2,2000)

        depla3 = USEREVENT+3

        pygame.time.set_timer(depla3,3000)

        depla4 = USEREVENT+4

        pygame.time.set_timer(depla4,4000)


        continuer = 1


        while continuer:

            fenetre.blit(mechant1, mechant1_rect)

            fenetre.blit(mechant2, mechant2_rect)

            fenetre.blit(mechant3, mechant3_rect)

            fenetre.blit(mechant4, mechant4_rect)


            pygame.display.flip()


            for event in pygame.event.get():


                if event.type == QUIT:

                    continuer = 0


                if event.type == depla1:

                    mechant1_rect = mechant1_rect.move (0,30)

                    fenetre.blit(mechant1, mechant1_rect)

                    pygame.display.flip()


                if event.type == depla2: 

                    mechant2_rect = mechant2_rect.move (-30,0)

                    fenetre.blit(mechant2, mechant2_rect)

                    pygame.display.flip()

                if event.type == depla3:

                    mechant3_rect = mechant3_rect.move (0,-30)

                    fenetre.blit(mechant3, mechant3_rect)

                    pygame.display.flip()


                if event.type == depla4:

                    mechant4_rect = mechant4_rect.move (30,0)

                    fenetre.blit(mechant4, mechant4_rect)

                    pygame.display.flip()

                if mechant1_rect.center == perso_rect.center:

                        continuer = 0

                if mechant2_rect.center == perso_rect.center:

                        continuer = 0

                if mechant3_rect.center == perso_rect.center:

                        continuer = 0

                if mechant4_rect.center == perso_rect.center:

                        continuer = 0


                if event.type == KEYDOWN:

                    if event.key == K_UP:

                        fenetre.blit(atk1, atk1_rect)

                        pygame.time.delay(500)

                        pygame.display.flip()

                        if mechant1_rect.bottom == perso_rect.top:

                            score = score+1

                            mechant1_rect.center = (300,0)

                            atk1_rect.center = (0,-800)

                            fenetre.blit(mechant1, mechant1_rect)

                            fenetre.blit(atk1, atk1_rect)

                            pygame.display.flip()


                        else:

                            atk1_rect.center = (0,-800)

                            fenetre.blit(atk1, atk1_rect)

                            pygame.display.flip()


                    if event.key == K_DOWN:

                        fenetre.blit(atk3, atk3_rect)

                        pygame.time.delay(500)

                        pygame.display.flip()

                        if mechant3_rect.top == perso_rect.bottom:

                            score = score+1

                            mechant3_rect.center = (300,600)

                            atk3_rect.center = (0,800)

                            fenetre.blit(mechant3, mechant3_rect)

                            fenetre.blit(atk3, atk3_rect)

                            pygame.display.flip()


                        else:

                            atk3_rect.center = (0,800)

                            fenetre.blit(atk3, atk3_rect)

                            pygame.display.flip()


                    if event.key == K_LEFT:

                        fenetre.blit(atk4, atk4_rect)

                        pygame.time.delay(500)

                        pygame.display.flip()

                        if mechant4_rect.right == perso_rect.left:

                            score = score+1

                            mechant4_rect.center = (0,300)

                            atk4_rect.center = (-800,0)

                            fenetre.blit(mechant4, mechant4_rect)

                            fenetre.blit(atk4, atk4_rect)

                            pygame.display.flip()


                        else:

                            atk4_rect.center = (-800,0)

                            fenetre.blit(atk4, atk4_rect)

                            pygame.display.flip()


                    if event.key == K_RIGHT:

                        fenetre.blit(atk2, atk2_rect)

                        pygame.time.delay(500)

                        pygame.display.flip()

                        if mechant2_rect.left == perso_rect.right:

                            score = score+1

                            mechant2_rect.center = (600,300)

                            atk4_rect.center = (800,0)

                            fenetre.blit(mechant2, mechant2_rect)

                            fenetre.blit(atk2, atk2_rect)

                            pygame.display.flip()


                        else:

                            atk2_rect.center = (800,0)

                            fenetre.blit(atk2, atk2_rect)

                            pygame.display.flip()


    except:

        traceback.print_exc()


    finally:

        pygame.quit()

        exit()




    • Partager sur Facebook
    • Partager sur Twitter

    Problème de rafraichisement

    × 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