Bonjour à tous,
je suis un élève en Terminale S, et j'aurais besoin de votre aide. Alors voila, je suis en spé ISN (informatique) et je dois créer un jeu pour la fin de l'année. Le seul problème est que mon programme d’après mon prof, me mène droit dans un mur et il me conseille donc de transformer le code en code s'apparentant à la programmation orientée objet(classes,self..), Mais le problème est que je ne sais pas du tout par ou commencer. Donc si vous pouviez juste me dire par ou commencer, ce serait génial. Merci beaucoup d'avance.
Voici mon code :
import pygame
import random
from GIFImage import *
pygame.init()
fenetre = pygame.display.set_mode( (700,400), RESIZABLE )
pygame.display.set_caption("Twisted fates")
pygame.Surface((700,400))
imageLogo = pygame.image.load("logo.png")
imageLogo = pygame.transform.scale(imageLogo,(400,150))
imagejouer = pygame.image.load("Play.png")
imagejouer = pygame.transform.scale(imagejouer,(100,50))
imagecontrol = pygame.image.load("Controls.png")
imagecontrol = pygame.transform.scale(imagecontrol,(100,50))
background = pygame.image.load("fond.jpg")
imagebs = pygame.image.load("Best_scores.png")
imagebs = pygame.transform.scale(imagebs,(100,50))
imagecarre = pygame.image.load("Carre.png")
imagecarre = pygame.transform.scale(imagecarre,(100,3))
monde=pygame.image.load("Fond2.png")
imgMarcelineDroite = GIFImage("Marceline(normal).gif")
imgMarcelineStatique = pygame.image.load("MarcelineStatique.png")
imgMarcelineJump=pygame.image.load("Marceline(Jump).png")
imgMarcelineJumpGauche=pygame.image.load("Marceline(Jump)2.png")
imgMarcelineGauche=GIFImage("Marceline(2)(normal).gif")
imgMarcelineStatiqueGauche=pygame.image.load("Marceline(2)1.png")
imagebarre = GIFImage("ajax.gif")
imagecontrolecran = pygame.image.load("controlsecran.png")
imagecoeur = pygame.image.load("heart.png")
positionbackground=(0,0)
positionlogo = (150,0)
positionjouer = (325,125)
positionbs = (325,325)
positioncontrols = (325,225)
positioncarre= (325,175)
projectile=None
xMarceline = 10
yMarceline=322
mouvementMarceline = 0
xMonde=0
etapeSaut = -1
carre=0
modedejeu=1
loading = 0
a=0
direction = 0
Plateformes = [
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
]
def dessinermenu():
global fenetre,imagejouer,imageLogo,background,positionbackground,imagebs,positionbs,imagecontrol,positioncontrols,imagecarre,positioncarre
fenetre.blit(background,positionbackground)
fenetre.blit(imageLogo,positionlogo)
fenetre.blit(imagejouer,positionjouer)
fenetre.blit(imagebs,positionbs)
fenetre.blit(imagecontrol,positioncontrols)
fenetre.blit(imagecarre,positioncarre)
pygame.display.flip()
def dessinerchargement():
global imagebarre,fenetre,background,positionbackground,loading,modedejeu
fenetre.blit(background,positionbackground)
imagebarre.render(fenetre,(325,175))
loading=loading+1
if loading==200:
modedejeu=3
pygame.display.flip()
def gererClavierEtSouris():
global positioncarre,carre,continuer,i,positioncarre1,positioncarre2,modedejeu,loading
for event in pygame.event.get():
if event.type == pygame.QUIT:
continuer = False
touchesPressees = pygame.key.get_pressed()
if touchesPressees[pygame.K_ESCAPE] == True:
modedejeu = 1
loading = 0
if carre == 1:
positioncarre = positioncarre1
if carre == 2:
positioncarre = positioncarre2
if carre == 0:
positioncarre = positioncarre
sourisXY = pygame.mouse.get_pos()
sourisBoutons = pygame.mouse.get_pressed()
if 125<sourisXY[1]<175:
if 325<sourisXY[0]<425:
positioncarre = (325,175)
if sourisBoutons[0]==1:
modedejeu = 2
if 225<sourisXY[1]<275:
if 325<sourisXY[0]<425:
positioncarre = (330,260)
if sourisBoutons[0]==1:
modedejeu = 4
if 325<sourisXY[1]<375:
if 325<sourisXY[0]<425:
positioncarre = (330,355)
def controls():
global fenetre,background,positionbackground,imagecontrolecran
fenetre.blit(background,positionbackground)
fenetre.blit(imagecontrolecran,(0,0))
pygame.display.flip()
def modemenu():
dessinermenu()
def calculerHauteurSaut(x):
return int(((-1)*((x-8)*(x-8)))+64)
def dessinerjeu():
##On génère le monde.
global monde,positionmonde, xMonde
fenetre.blit(monde,(xMonde,0))
##On définit le scrolling et on le stoppe aux deux extrêmités de l'image.
touchesPressees=pygame.key.get_pressed()
if touchesPressees[pygame.K_RIGHT]== True and xMonde>-2800:
xMonde=xMonde-4
fenetre.blit(monde,(xMonde,0))
if touchesPressees[pygame.K_LEFT]== True and xMonde<0: #On empêche le scrolling en arrière en début de monde.
xMonde=xMonde+4
fenetre.blit(monde,(xMonde,0))
##On place notre personnage dans le monde et on lui permet de sauter.
global mouvementMarceline, xMarceline, imgMarcelineDroite, imgMarcelineStatique,yMarceline,modedejeu,loading,a,imgMarcelineJump, imgMarcelineStatiqueGauche, imgMarcelineGauche, Plateformes
a=yMarceline-calculerHauteurSaut(etapeSaut)-18
if mouvementMarceline == 0:
if etapeSaut<0:
fenetre.blit(imgMarcelineStatique, (xMarceline,a))
elif etapeSaut>0:
fenetre.blit(imgMarcelineJump,(xMarceline,a))
elif mouvementMarceline == 1:
if etapeSaut<0:
imgMarcelineDroite.render(fenetre, (xMarceline,a))
elif etapeSaut>0:
fenetre.blit(imgMarcelineJump,(xMarceline,a))
pygame.display.flip() #Rafraichissement complet de la fenêtre avec les dernières opérations de dessin.
if 137<xMarceline<159 or 417<xMarceline<442 or 509<xMarceline<532:
if yMarceline == 322:
yMarceline=350
else:
yMarceline=322
if a ==349:
modedejeu = 1
loading = 0
xMarceline = 10
def ClavierEtSourisJeu():
global continuer, xMarceline, mouvementMarceline, yMarceline, etapeSaut, imgMarcelineJump, direction, mouvementMarceline, xMarceline, imgMarcelineDroite, imgMarcelineStatique, imgMarcelineJump, imgMarcelineStatiqueGauche, imgMarcelineGauche
##On crée un bouton pour quitter la fenètre.
for event in pygame.event.get():
if event.type == pygame.QUIT:
continuer = False
##On définit le déplacement.
touchesPressees = pygame.key.get_pressed()
if touchesPressees[pygame.K_RIGHT] == True:
mouvementMarceline = 1
xMarceline = xMarceline + 1
elif touchesPressees[pygame.K_LEFT] == True:
mouvementMarceline = 1
xMarceline = xMarceline - 1
else:
mouvementMarceline = 0
##On permet d'afficher un personnage qui va soit vers la gauche soit vers la droite.
if touchesPressees[pygame.K_LEFT]== True:
imgMarcelineJump=imgMarcelineJumpGauche
imgMarcelineStatique=imgMarcelineStatiqueGauche
imgMarcelineDroite=imgMarcelineGauche
elif touchesPressees[pygame.K_RIGHT]== True:
imgMarcelineJump=pygame.image.load("Marceline(jump).png")
imgMarcelineStatique=pygame.image.load("MarcelineStatique.png")
imgMarcelineDroite=GIFImage("Marceline(normal).gif")
##On active le calcul des x pour permettre le saut.
if touchesPressees[pygame.K_UP]==True and etapeSaut == -1:
etapeSaut = 0
def modejeu():
global etapeSaut
ClavierEtSourisJeu()
dessinerjeu()
if etapeSaut >= 0: #Si etapeSsaut est >0, on saute. On va faire avancer etapeSaut pas à pas de 0 à 16.
etapeSaut += 0.6
if etapeSaut > 16:#Le saut étant fini, on réinitialise à etapeSaut=-1.
etapeSaut = -1
clock = pygame.time.Clock()
continuer=True
while continuer:
clock.tick(50)
if modedejeu ==1:
modemenu()
if modedejeu == 2:
dessinerchargement()
if modedejeu == 3:
modejeu()
if modedejeu ==4:
controls()
gererClavierEtSouris()
print (a)
print (yMarceline)
pygame.quit()