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()