cars and run 2d
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
5.0 KiB

"""
Jeu cars and run 2D
lien du tuto http://sdz.tdct.org/sdz/interface-graphique-pygame-pour-python.html
lien pour faire des images pixeliser : pixilart.com
Script python:main, classes, constantes
"""
import pygame
from pygame.locals import *
from constantes import *
from classes import *
from random import randint
pygame.init()
#ouverture de la fenetre
fenetre = pygame.display.set_mode((largeur_fenetre, hauteur_fenetre))
fenetre.fill((200,200,200))
#Icone
icone = pygame.image.load(image_icone)
pygame.display.set_icon(icone)
#Titre
pygame.display.set_caption(titre_fenetre)
lst_elements = []
#BOUCLE PRINCIPALE#
continuer = 1
while continuer:
accueil = Image(fenetre, image_acceuil, 0, 0, 205, 205)
accueil.maj()
pygame.display.flip()#Rafraichissement
continuer_jeu, continuer_accueil, continuer_garage = 1, 1, 1 #On remet ces variables à 1 à chaque tour de boucle#cavapas!!!!!!!!!!
#BOUCLE D'ACCUEIL#
while continuer_accueil:
pygame.time.Clock().tick(30) #Limitation de vitesse de la boucle
for event in pygame.event.get():
if event.type == QUIT or event.type == KEYDOWN and event.key == K_ESCAPE:
continuer, continuer_accueil, continuer_garage, continuer_jeu = 0,0,0,0 #Si l'utilisateur quitte, on met les variables de boucle à 0 pour n'en parcourir aucune et fermer
elif event.type == KEYDOWN:
continuer_accueil = 0
#BOUCLE DE GARAGE#
while continuer_garage:
pygame.time.Clock().tick(30) #Limitation de vitesse de la boucle
garage = Image(fenetre, img_garage, 0, -130, 205, 205)
garage.maj()
#voiture =
pygame.display.flip()#Rafraichissement
for event in pygame.event.get():
if event.type == QUIT:
continuer, continuer_accueil, continuer_garage, continuer_jeu = 0,0,0,0#Si l'utilisateur quitte, on met les variables de boucle à 0 pour n'en parcourir aucune et fermer
choix = 0 #Variable de choix du niveau
elif event.type == KEYDOWN:
if event.key == K_ESCAPE:
continuer_garage, continuer_jeu = 0, 0
choix = 0
if event.key == K_F1: #Lancement du niveau 1
continuer_garage = 0#On quitte l'accueil
choix = 'n1'#On définit le niveau à charger
if choix == 'n1': #on vérifie que le joueur a bien fait un choix de niveau pour ne pas charger s'il quitte
fonds = GroupeImage(fenetre)
fonds.creer_Image(img_bg, 0, 0, 290, 57)
fonds.creer_Image(img_goudron, 0, 360, 205, 205)
lst_nuages = [img_n1, img_n2, img_n3, img_n4, img_n5, img_n6,img_n7]
nuages = GroupeImage(fenetre)
nuages.creer_Image(lst_nuages[randint(0,6)], 1280, 0, 290, 57)#(chm_acces, pos_x, pos_y, long, larg)
nuages.creer_Image(lst_nuages[randint(0,6)], 1280, 59, 248, 58)
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, 1688, 360, 844, 40)
ligne_ac = GroupeImage(fenetre)
ligne_ac.creer_Image(img_lgn_discontinu, 0, 500, 104, 5)#(chm_acces, pos_x, pos_y, long, larg)
ligne_ac.creer_Image(img_lgn_discontinu, 640, 500, 104, 5)
voitures = GroupeImage(fenetre)
voitures.creer_Image(img_e30, 50, 360, 205, 205)
fonds.affiche()
nuages.affiche()
barrieres.affiche()
ligne_ac.affiche()
voitures.affiche()
pygame.display.flip()
#BOUCLE DE JEU
while continuer_jeu:
pygame.time.Clock().tick(30) #Limitation de vitesse de la boucle
nuages.avancer(10,205)
barrieres.avancer(10,0)
ligne_ac.avancer(10,1280-104)
fonds.affiche()
nuages.affiche()
barrieres.affiche()
ligne_ac.affiche()
voitures.affiche()
for event in pygame.event.get():
if event.type == QUIT:
continuer_jeu = 0 #Si l'utilisateur quitte, on met la variable qui continue le jeu
continuer = 0 #ET la variable générale à 0 pour fermer la fenêtre
elif event.type == KEYDOWN:
if event.key == K_ESCAPE:
continuer_jeu, continuer_accueil = 0,0 #Si l'utilisateur presse Echap ici, on revient seulement au menu
elif event.key == K_UP: #Touches de déplacement de voiture
lst_elements[2].translater('y',"haut",10)#deplace pas la voiture
elif event.key == K_DOWN:
lst_elements[2].translater('y',"bas",10)
pygame.display.flip()
pygame.display.flip()
pygame.quit()