mon jeu beug et je ne sais pas pourquoi....

mon jeu beug et je ne sais pas pourquoi.... - Python - Programmation

Marsh Posté le 28-04-2015 à 15:40:51    

A certain moment le cheval bouge tout seul vers le bas ( souvent a l’obstacle 12) et du coup sa me fais perdre.
De plus j'aimerai instaurer un changement d'image ( img ----> img2 ) au moment du mouvement. voici le programme.
 je programme avec python et pygame.
 
 
red = (255,177,120) #valeur max =255.
white = (255,255,255)
 
pygame.init()
 
surfaceW = 800
surfaceH = 500
chevalW = 50
chevalH = 66
obstacleW = 300
obstalceH = 300
 
img = pygame.image.load('p1.png')
img2 = pygame.image.load('p21.png')
 
img_obstacle = pygame.image.load('obstacle.png')    
 
surface = pygame.display.set_mode((surfaceW,surfaceH))
pygame.display.set_caption("Horse Rider" )
clock = pygame.time.Clock()
 
 
 
def score(compte) :
    police = pygame.font.Font('BradBunR.ttf', 16)
    texte = police.render("score : " + str(compte), True, white)
    surface.blit(texte, [10,0])
 
def obstacle(x_obstacle, y_obstacle):
    surface.blit(img_obstacle, (x_obstacle, surfaceH-190))
 
 
 
def rejoueOuQuitte():
    for event in pygame.event.get([pygame.KEYDOWN, pygame.KEYUP, pygame.QUIT]):
        if event.type == pygame.QUIT :
            pygame.quit()
            quit()
        elif event.type ==pygame.KEYUP:
            continue
        return event.key
 
    return  None
 
def creaTexteObjs (texte, font):
    texteSurface = font.render(texte,True,white)
    return texteSurface, texteSurface.get_rect()
 
 
def msgSurface (texte):
    GOTexte = pygame.font.Font('BradBunR.ttf', 150)
    petitTexte = pygame.font.Font('BradBunR.ttf',20)
 
    titreTexteSurf, titreTexteRect = creaTexteObjs(texte, GOTexte)
    titreTexteRect.center = surfaceW/2,((surfaceH/2)-50)
    surface.blit(titreTexteSurf, titreTexteRect)
 
    petitTexteSurf, petitTexteRect = creaTexteObjs\
        ("appuyer sur une touche pour continuer", petitTexte )
    petitTexteRect.center = surfaceW/2, ((surfaceH/2) +50)
    surface.blit(petitTexteSurf, petitTexteRect)
 
    pygame.display.update()
    time.sleep(2)
 
    while rejoueOuQuitte() == None :
        clock.tick()
 
    main()
 
def gameOver():
    msgSurface("PERDU" )
 
def winner():
    msgSurface("YOU WIN!" )
 
     
def cheval(x,y, image):
    surface.blit(image, (x,y))
   
 
def main():
    x=150
    y=surfaceH-190
    y_move=0
   
    x_obstacle = surfaceW
    y_obstacle = surfaceH-100
    espace = chevalH*3
    obstacle_vitesse = 0.9
 
    score_actuel = 0
 
    game_over = False
 
    while not game_over:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over= True
 
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_SPACE:
                    y_move = -111
            if event.type == pygame.KEYUP:
                y_move = 111
                 
            y += y_move
                   
        surface.fill(red)
        cheval(x,y,img)
 
        obstacle(x_obstacle,y_obstacle)
 
        score(score_actuel)
 
        x_obstacle -=obstacle_vitesse
 
 
        if y>surfaceH -40 or y <-10:
            gameOver()
         
        if x_obstacle < (-1*obstacleW):
            x_obstacle = surfaceW
            y_obstacle = surfaceH-50
             
             
        if x_obstacle < (x-obstacleW)<x_obstacle+obstacle_vitesse :
            score_actuel +=1
 
        pygame.display.update()
 
 
 
main()
pygame.quit()
quit()

Reply

Marsh Posté le 28-04-2015 à 15:40:51   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed