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.
116 lines
3.7 KiB
116 lines
3.7 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((0,0,0))
|
|
|
|
#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)
|
|
#lst_elements.append(accueil)#il me semble quepas besoin de ca
|
|
|
|
#Rafraichissement
|
|
pygame.display.flip()
|
|
|
|
continuer_jeu, continuer_accueil = 1, 1 #On remet ces variables à 1 à chaque tour de boucle
|
|
|
|
#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_accueil,continuer_jeu,continuer = 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_F1: #Lancement du niveau 1
|
|
continuer_accueil = 0#On quitte l'accueil
|
|
choix = 'n1'#On définit le niveau à charger
|
|
|
|
elif event.key == K_F2: #Lancement du niveau 2
|
|
continuer_accueil = 0
|
|
choix = 'n2'
|
|
|
|
|
|
if choix == 'n1': #on vérifie que le joueur a bien fait un choix de niveau pour ne pas charger s'il quitte
|
|
accueil = Image(fenetre, image_acceuil, 0, 0)
|
|
lst_elements.append(accueil)
|
|
|
|
for i in range (5):
|
|
b, c = randint(0,1280), randint(0,300)
|
|
print(b,c)
|
|
nuage = Image(fenetre, img_n1, b, c)
|
|
lst_elements.append(nuage)
|
|
|
|
lst_goudron, a = [],0
|
|
for i in range (2):
|
|
goudron = Image(fenetre, img_goudron, a, 720/2)
|
|
lst_elements.append(goudron)
|
|
lst_goudron.append(goudron)
|
|
a = a + 2163
|
|
|
|
lst_barriere, a = [],0
|
|
for i in range (3):
|
|
barriere = Image(fenetre, img_barriere, a, 720/2)
|
|
lst_elements.append(barriere)
|
|
a = a + 844
|
|
|
|
voiture = Image(fenetre, img_e30,0 ,0 )
|
|
lst_elements.append(voiture)
|
|
|
|
#BOUCLE DE JEU
|
|
while continuer_jeu:
|
|
pygame.time.Clock().tick(30) #Limitation de vitesse de la boucle
|
|
|
|
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 = 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)
|
|
|
|
for i in range(1,6):
|
|
print(i)
|
|
lst_elements[i].translater("x", "gauche", 5)
|
|
|
|
for element in lst_elements:
|
|
element.maj()
|
|
pygame.display.flip()
|
|
|
|
pygame.display.flip()
|
|
pygame.quit()
|