Browse Source

nouvelle classe

master
laneury.a 1 week ago
parent
commit
1b4bf03303
  1. 72
      classes.py
  2. 40
      main.py

72
classes.py

@ -3,79 +3,53 @@ from pygame.locals import *
from random import randint
class Image():
def __init__ (self, fenetre, chm_acces, pos_x, pos_y):
def __init__ (self, fenetre, chm_acces, pos_x, pos_y, long, larg):
self.fenetre = fenetre
self.chm_acces = chm_acces
self.pos_x = pos_x
self.pos_y = pos_y
self.image = pygame.image.load(self.chm_acces).convert_alpha()
self.fenetre.blit(self.image, (self.pos_x, self.pos_y))
self.long = long
self.larg = larg
self.maj(3)
def translater (self,axe, sens, vitesse):
self.axe = axe
self.sens = sens
self.vitesse = vitesse
if self.axe == "x":
if axe == "x":
if sens == "gauche":
self.pos_x = self.pos_x - self.vitesse
self.pos_x = self.pos_x - vitesse
else:
self.pos_x = self.pos_x + self.vitesse
self.pos_x = self.pos_x + vitesse
else:
if sens == "haut":
self.pos_y = self.pos_y - self.vitesse
self.pos_y = self.pos_y - vitesse
else:
self.pos_y = self.pos_y + self.vitesse
self.pos_y = self.pos_y + vitesse
self.fenetre.blit(self.image, (self.pos_x, self.pos_y))
self.maj(3)
def maj(self):
def maj(self, nbr):
if self.pos_x <= -self.long :
self.pos_x = self.pos_x + self.long * nbr
self.fenetre.blit(self.image, (self.pos_x,self.pos_y))
def verifier(self, long, nbr):
print("ici")
if self.pos_x <= -long :
self.pos_x = self.pos_x + long * nbr
class Calques():
class GroupeImage():
def __init__ (self, fenetre):
self.fenetre = fenetre
self.lst_calques = []
def ajouter_calque(self,pos_calque):
#pos_calque vas permettre de choisir la position du calque parmis les autres calques - pas encore fncelle
#pr le moment le calque se rajoute a la fin
self.calque = []
self.lst_calques.append(self.calque)
def ajouter_element(self, nom, i_calque, chm_acces, pos_x, pos_y):
self.nom = nom
self.chm_acces = chm_acces
self.pos_x = pos_x
self.pos_y = pos_y
self.nom = Image(self.fenetre, self.chm_acces, self.pos_x, self.pos_y)
self.lst_calques[i_calque].append(self.nom)
print(self.lst_calques)
def deplacer_calque(self, i_calque, axe, sens, vitesse, size, nbr):
self.axe = axe
self.sens = sens
self.vitesse = vitesse
for element in self.lst_calques[i_calque]:
self.nom.verifier(size,nbr)
element.translater(self.axe, self.sens, self.vitesse)
print(self.nom.pos_x)
self.lst = []
def maj_calque(self, i_calque):
def creer_Image(self, chm_acces, pos_x, pos_y, long, larg):
self.lst.append(Image(self.fenetre, chm_acces, pos_x, pos_y, long, larg))
for element in self.lst_calques[i_calque]:
element.maj()
def avancer(self, vitesse):
for image in self.lst:
image.translater("x", "gauche", vitesse)
def affiche(self):
for image in self.lst:
image.maj(len(self.lst))

40
main.py

@ -29,7 +29,7 @@ lst_elements = []
continuer = 1
while continuer:
accueil = Image(fenetre, image_acceuil, 0, 0)
accueil = Image(fenetre, image_acceuil, 0, 0, 205, 205)
#lst_elements.append(accueil)#il me semble quepas besoin de ca
#Rafraichissement
@ -61,19 +61,23 @@ while continuer:
if choix == 'n1': #on vérifie que le joueur a bien fait un choix de niveau pour ne pas charger s'il quitte
monde = Calques(fenetre)
fonds = GroupeImage(fenetre)
fonds.creer_Image(img_bg, 0, 0, 290, 57)
fonds.creer_Image(img_goudron, 0, 360, 205, 205)
monde.ajouter_calque("c_fond")#0
monde.ajouter_element("fond", 0, img_bg, 0, 0)
monde.ajouter_element("route", 0, img_goudron, 0, 360)
nuages = GroupeImage(fenetre)
nuages.creer_Image(img_n1, 1280, 0, 290, 57)
nuages.creer_Image(img_n2, 1280, 59, 248, 58)
monde.ajouter_calque("c_paysage")#2
monde.ajouter_element("nuage", 1, img_n1, 1280, 0)
barrieres = GroupeImage(fenetre)
barrieres.creer_Image(img_barriere, 0, 360, 844, 40)
barrieres.creer_Image(img_barriere, 844, 360, 844, 40)
barrieres.creer_Image(img_barriere, 844+844, 360, 844, 40)
monde.ajouter_calque("c_elem_route")
monde.ajouter_element("barriere", 2, img_barriere, 0, 360)
monde.ajouter_element("barriere", 2, img_barriere, 844, 360)
monde.ajouter_element("barriere", 2, img_barriere, 1688, 360)
voitures = GroupeImage(fenetre)
voitures.creer_Image(img_e30, 50, 360, 205, 205)
pygame.display.flip()
@ -85,14 +89,16 @@ while continuer:
#BOUCLE DE JEU
while continuer_jeu:
pygame.time.Clock().tick(30) #Limitation de vitesse de la boucl
nuages.avancer(10)
barrieres.avancer(10)
#pygame.time.Clock().tick(30) #Limitation de vitesse de la boucl
monde.deplacer_calque(1,"x", "gauche", 3, 20,1)
monde.deplacer_calque(2,"x", "gauche", 3, 844, 3)
monde.maj_calque(0)
monde.maj_calque(1)
monde.maj_calque(2)
fonds.affiche()
nuages.affiche()
barrieres.affiche()
voitures.affiche()
for event in pygame.event.get():

Loading…
Cancel
Save