Fond défilant en continu et besoin d'aide

Fermé
DiiKenZ Messages postés 4 Date d'inscription jeudi 31 octobre 2013 Statut Membre Dernière intervention 29 mai 2014 - 27 avril 2014 à 09:07
pols12 Messages postés 1143 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 31 juillet 2019 - 2 mai 2014 à 11:44
Bonjour, donc j'ai mon background mais j'aimerais le faire défiler comme pour le jeu Flappy Bird par exemple. Ensuite si quelqu'un pouvait aussi me dire comment faire car depuis que j'ai mon vackground et bien tout as été deformé c'est à dire que la balle quand elle bouge et bien un trait noir la suit, les obstacles(rectangles) prennent toutes la longeur de l'écran enfin voila tout a été déformé enfaite.
Merci de m'aider
voici mon code :
import pygame # pygame
from random import randint
from pygame.locals import *

black = (0,0,0)
white = (255,255,255)
green = (0,255,0)
red = (255,0,0)
blue = (0,0,255)

pygame.init()
pygame.display.set_caption("Flappy Bird version de merde")

size = 700,445
fenetre = pygame.display.set_mode(size)

#Chargement et collage du fond
fond =pygame.image.load("bg2.jpg").convert()
position_fond=fond.get_rect()
fenetre.blit(fond, (0,0))

done = False

x = 350
y = 250
x_speed = 0
y_speed = 0
ground = 477 # le sol
xloc = 700
yloc = 0 # l'obstacle commence tout en haut au 0
xsize = 70 # l'obstacle fait 70 pixels de longueur
ysize = randint(0,450) # l'obstacle a, au hasard, entre 0 et 350 de largeur
space = 150
obspeed = 2.5
score = 0

def balle(x,y): # la balle
return pygame.draw.circle(fenetre,black,[x,y], 20)

myBall = balle(350, 250)

def Collision(xloc, yloc, xsize, ysize):
rect1=pygame.draw.rect(fenetre, green, [xloc, 0, xsize, ysize])
rect2=pygame.draw.rect(fenetre, green, [xloc, yloc+ysize+space, xsize, ysize+500])
return rect1, rect2

def gameover():
font = pygame.font.SysFont(None, 75) # taille du Game Over
text = font.render("Game over", True, blue) # game over en rouge
fenetre.blit(text, [150, 250]) # position du Game Over

def Score(score):
font = pygame.font.SysFont(None, 75) # taille de score
text = font.render("Score: "+str(score), True, black) # en noir,
fenetre.blit(text, [0,0]) # le score s'affiche en haut a droite



while not done:
for event in pygame.event.get(): # si on veut quitter le jeu
if event.type == pygame.QUIT: # alors done = true donc le
done = True

if event.type == pygame.KEYDOWN: # touche du bas : fait baisser
if event.key == pygame.K_UP: # la position de la
y_speed = -10 # balle de 10 pixels

if event.type == pygame.KEYUP: # touche du haut : fait augmenter
if event.key == pygame.K_UP: # la position de la balle de 5 pix
y_speed = 5


Collision(xloc, yloc, xsize, ysize)
balle(x,y)
Score(score) # le score
y += y_speed
xloc -= obspeed

if y > ground:
gameover() # plus grande que celle du sol, alors Game Over
y_speed = 0 # la balle ne bouge plus
obspeed = 0 #

if xloc < -80:
xloc = 700
ysize = randint(0,350)

if x > xloc and x < xloc+3: # si on se trouve entre les 2 rectangles
score = (score + 100)

pygame.display.flip()
clock = pygame.time.Clock()
clock.tick(60)#limiter le nombre d'image a 60/s

pygame.quit() # fin du programme
A voir également:

1 réponse

pols12 Messages postés 1143 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 31 juillet 2019 119
2 mai 2014 à 11:44
Salut
Peux-tu modifier ton message afin de rajouter les balises code python (grâce à l'icône avec des chevrons prévu par CCM. Sinon on perd l'indentation et en Python on ne peut pas s'en passer.

Par ailleurs peux-tu fournir une version du code qui fonctionnait correctement (avant l'ajout du fond).
0