Commit 1d929b46 authored by BRULE's avatar BRULE
Browse files

Nouvelles textures

parent e06d0e31
# -*- encoding: utf-8 -*- # -*- encoding: utf-8 -*-
from pygame import * from pygame import *
import time import time
import os
display.init() # Initialise la fenêtre graphique os.chdir("C:\Users\Quiesan\Desktop\Projet\outil_pour_jeu")
#Jeu Fonctionne que sur un ratio 16:9
ORANGE = 255, 100, 0 # Définition d'une couleur utilisé par la suite #ctrl+Q utile pour commenter
info = display.Info() # Récupère des informations sur l'écran #Mettre le son en pause et le ratrraper après
largeur = info.current_w # Récupère la largeur de l'écran display.init() # Initialise la fenêtre graphique
hauteur = info.current_h # Récupère la hauteur de l'écran
ORANGE = 204, 102, 51 # Définition d'une couleur utilisée par la suite
info = display.Info() # Récupère des informations sur l'écran
def lecture_carte (carte): # Permet de lire le .txt contenant la carte largeur = info.current_w # Récupère la largeur de l'écran
global herbe hauteur = info.current_h # Récupère la hauteur de l'écran
global route font.init() #Initialise la police
global arbre type_ecriture = font.SysFont('Bauhaus 93', 64) # Définition d'une police d'écriture
global contour type_ecriture_titre = font.SysFont('Bauhaus 93', 64, False, True)
global base
global sortie_ennemie def son_fond(verif):
liste_herbe = [] mixer.init()
liste_route = [] son_fond = mixer.Sound("nyan_cat.wav")
liste_arbre = [] if verif == 1:
liste_contour = [] son_fond.play()
liste_base = [] son_fond.set_volume(1.0)
liste_sortie_ennemie = [] elif verif == 2:
ouverture_dico = open(carte, "r") mixer.pause()
numLigne = 0 elif verif == 3:
for ligne in ouverture_dico : mixer.unpause()
numColonne = 0
for trouve_lettre in ligne : def fond_depart(ecran):
if trouve_lettre == "X": image_depart = image.load("ecran_depart.jpg")
liste_herbe.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920))) image_depart = transform.scale(image_depart,(largeur, hauteur))
if trouve_lettre == "O": ecran.blit(image_depart, (0 ,0))
liste_route.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920)))
if trouve_lettre == "A": def saut_ligne(texte, ecran):
liste_herbe.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920))) bulle = Rect(largeur/5, hauteur/4, 500,500)
liste_arbre.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920))) x,y = bulle.topleft
if trouve_lettre == "C": for ligne in texte.splitlines():
liste_contour.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920))) x,y = ecran.blit(type_ecriture_titre.render(ligne , 1, ORANGE),(x,y)).bottomleft
if trouve_lettre == "B":
liste_herbe.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920))) def ecran_depart():
liste_base.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920))) continuer = 1
if trouve_lettre == "S": ecran_depart = display.set_mode((largeur, hauteur), FULLSCREEN)
liste_herbe.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920))) fond_depart(ecran_depart)
liste_sortie_ennemie.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920))) titre_jeu = """ Bienvenue dans \n\n POLYDENFENSE \n\n\nAppuyez sur "Entrer" pour commencer le Jeu"""
numColonne = numColonne + 1 saut_ligne(titre_jeu, ecran_depart)
numLigne = numLigne + 1 display.flip()
ouverture_dico.close() while continuer:
herbe = liste_herbe for evenement_joueur in event.get():
route = liste_route if evenement_joueur.type == KEYDOWN:
arbre = liste_arbre if evenement_joueur.key == K_RETURN:
contour = liste_contour continuer = 0
base = liste_base nom_joueur(1)
sortie_ennemie = liste_sortie_ennemie
def sim_nom(verif, ecran):
font.init() def lecture_carte (carte): # Permet de lire le .txt contenant la carte
titre = "Rentrer le nom du joueur" + " " + str(verif) global herbe
type_ecriture = font.SysFont('Hungry Snake', 36) global route
texte_titre = type_ecriture.render(titre, True, ORANGE) global arbre
ecran.blit(texte_titre, (largeur/4, hauteur/4)) global contour
display.flip() global base
global sortie_ennemie
def nom_joueur (verif): liste_herbe = []
display.init() liste_route = []
conti = 1 liste_arbre = []
if verif == 1 : liste_contour = []
global nom liste_base = []
nom = '' liste_sortie_ennemie = []
elif verif == 2 : ouverture_dico = open(carte, "r")
global nom_2 numLigne = 0
nom_2 = '' for ligne in ouverture_dico :
ecran_joueur = display.set_mode((largeur, hauteur), FULLSCREEN) numColonne = 0
sim_nom(verif, ecran_joueur) for trouve_lettre in ligne :
while conti: if trouve_lettre == "X":
for evenement_joueur in event.get(): liste_herbe.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920)))
if evenement_joueur.type == KEYDOWN: if trouve_lettre == "O":
if evenement_joueur.unicode.isalpha(): liste_route.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920)))
font.init() if trouve_lettre == "A":
if verif == 1 : liste_herbe.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920)))
nom = nom + evenement_joueur.unicode liste_arbre.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920)))
type_ecriture = font.SysFont('Hungry Snake', 36) if trouve_lettre == "C":
texte = type_ecriture.render(nom, True, ORANGE) liste_contour.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920)))
ecran_joueur.blit(texte, (largeur/2, hauteur/2)) if trouve_lettre == "B":
elif verif == 2 : liste_herbe.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920)))
nom_2 = nom_2 + evenement_joueur.unicode liste_base.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920)))
type_ecriture = font.SysFont('Hungry Snake', 36) if trouve_lettre == "S":
texte = type_ecriture.render(nom_2, True, ORANGE) liste_herbe.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920)))
ecran_joueur.blit(texte, (largeur/2, hauteur/2)) liste_sortie_ennemie.append ((numColonne*((60*largeur)/1920), numLigne*((60*largeur)/1920)))
display.flip() numColonne = numColonne + 1
if evenement_joueur.key == K_RETURN: numLigne = numLigne + 1
if verif == 2 : ouverture_dico.close()
conti = 0 herbe = liste_herbe
ecran_accueil() route = liste_route
else : arbre = liste_arbre
conti = 0 contour = liste_contour
nom_joueur(2) base = liste_base
if evenement_joueur.key == K_BACKSPACE: sortie_ennemie = liste_sortie_ennemie
font.init()
if verif == 1: def sim_nom(verif, ecran):
nom = nom[:-1] titre = "Rentrer le nom du joueur" + " " + str(verif) + " :"
type_ecriture = font.SysFont('Hungry Snake', 36) texte_titre = type_ecriture.render(titre, 1, ORANGE)
texte = type_ecriture.render(nom, True, ORANGE) # texte_titre = type_ecriture.render(titre, 1, ORANGE, (204, 204, 255)) permet de mettre un fond de couleur
elif verif == 2: ecran.blit(texte_titre, (largeur/4, hauteur/4))
nom_2 = nom_2[:-1] display.flip()
type_ecriture = font.SysFont('Hungry Snake', 36)
texte = type_ecriture.render(nom_2, True, ORANGE) def nom_joueur (verif):
ecran_joueur = display.set_mode((largeur, hauteur), FULLSCREEN) display.init()
sim_nom(verif, ecran_joueur) continuer = 1
ecran_joueur.blit(texte, (largeur/2, hauteur/2)) if verif == 1 :
display.flip() global nom
nom = ''
elif verif == 2 :
def ecran_accueil (): global nom_2
conti = 1 nom_2 = ''
display.init() # Initialise la fenêtre graphique ecran_joueur = display.set_mode((largeur, hauteur), FULLSCREEN)
ecran_accueil = display.set_mode((largeur, hauteur), FULLSCREEN) fond_depart(ecran_joueur)
accueil = image.load("accueil.jpg") sim_nom(verif, ecran_joueur)
bouton_jouer = image.load("bouton_jouer.png") while continuer:
bouton_regle = image.load("bouton_regle.png") for evenement_joueur in event.get():
accueil = transform.scale(accueil,(largeur, hauteur)) if evenement_joueur.type == KEYDOWN:
bouton_jouer = transform.scale(bouton_jouer,(hauteur/5, hauteur/5)) if evenement_joueur.unicode.isalpha():
bouton_regle = transform.scale(bouton_regle,(hauteur/3, hauteur/3)) if verif == 1 :
ecran_accueil.blit(accueil, (0, 0)) nom = nom + evenement_joueur.unicode
ecran_accueil.blit(bouton_jouer, (hauteur/5, hauteur/5)) texte = type_ecriture.render(nom, True, ORANGE)
ecran_accueil.blit(bouton_regle, (6*hauteur/5, 3*hauteur/5)) ecran_joueur.blit(texte, (float(largeur)/2.5, float(hauteur)/2.5))
display.flip() elif verif == 2 :
while conti: nom_2 = nom_2 + evenement_joueur.unicode
for evenement_joueur in event.get(): texte = type_ecriture.render(nom_2, True, ORANGE)
if evenement_joueur.type == KEYDOWN: ecran_joueur.blit(texte, (float(largeur)/2.5, float(hauteur)/2.5))
if evenement_joueur.key == K_SPACE: display.flip()
conti = 0 if evenement_joueur.key == K_RETURN:
ecran_principal() if verif == 2 :
if evenement_joueur.type == MOUSEBUTTONDOWN : continuer = 0
x, y = evenement_joueur.pos ecran_accueil()
if hauteur/5 <= x <= (2*hauteur)/5 and hauteur/5 <= y <= (2*hauteur)/5: else :
conti = 0 continuer = 0
ecran_principal() nom_joueur(2)
elif 6*hauteur/5 <= x <= (23*hauteur)/15 and 3*hauteur/5 <= y <= (14*hauteur)/15: if evenement_joueur.key == K_BACKSPACE:
conti = 0 if verif == 1:
ecran_regle() nom = nom[:-1]
texte = type_ecriture.render(nom, True, ORANGE)
def ecran_regle (): elif verif == 2:
conti = 1 nom_2 = nom_2[:-1]
display.init() texte = type_ecriture.render(nom_2, True, ORANGE)
ecran_regle = display.set_mode((largeur, hauteur), FULLSCREEN) ecran_joueur = display.set_mode((largeur, hauteur), FULLSCREEN)
fond_regle = image.load("ecran_regle.jpg") fond_depart(ecran_joueur)
fond_regle = transform.scale(fond_regle,(largeur, hauteur)) sim_nom(verif, ecran_joueur)
ecran_regle.blit(fond_regle, (0, 0)) ecran_joueur.blit(texte, (float(largeur)/2.5, float(hauteur)/2.5))
display.flip() display.flip()
while conti:
for evenement_joueur in event.get():
if evenement_joueur.type == KEYDOWN: def ecran_accueil ():
if evenement_joueur.key == K_SPACE: continuer = 1
conti = 0 display.init() # Initialise la fenêtre graphique
ecran_principal() ecran_accueil = display.set_mode((largeur, hauteur), FULLSCREEN)
if evenement_joueur.type == MOUSEBUTTONDOWN : accueil = image.load("accueil.jpg")
x, y = evenement_joueur.pos bouton_jouer = image.load("bouton_jouer.png")
if largeur/2.3 <= x <= largeur/1.8 and hauteur/2.6 <= y <= hauteur/1.6: bouton_regle = image.load("bouton_regle.png")
conti = 0 accueil = transform.scale(accueil,(largeur, hauteur))
ecran_accueil() bouton_jouer = transform.scale(bouton_jouer,(hauteur/5, hauteur/5))
bouton_regle = transform.scale(bouton_regle,(hauteur/3, hauteur/3))
ecran_accueil.blit(accueil, (0, 0))
ecran_accueil.blit(bouton_jouer, (hauteur/5, hauteur/5))
def ecran_principal (): ecran_accueil.blit(bouton_regle, (6*hauteur/5, 3*hauteur/5))
continuer = 1 display.flip()
verif_base = 0 while continuer:
ORANGE = 255, 100, 0 for evenement_joueur in event.get():
display.init() # Initialise la fenêtre graphique if evenement_joueur.type == KEYDOWN:
font.init() if evenement_joueur.key == K_SPACE:
fond = display.set_mode((largeur, hauteur), FULLSCREEN) # Definis la taille de l'écran de fond en fonction de l'écran du joueur continuer = 0
terre_image = image.load("herbe.png") # Charge l'image de la pelouse ecran_principal()
route_image = image.load("route.png")# Charge l'image de la route if evenement_joueur.type == MOUSEBUTTONDOWN :
arbre_image = image.load("arbre.png").convert_alpha() # Charge l'image des arbres x, y = evenement_joueur.pos
contour_image = image.load("contour.png") if hauteur/5 <= x <= (2*hauteur)/5 and hauteur/5 <= y <= (2*hauteur)/5:
sortie_ennemie_image = image.load("milieu_soldat.png").convert_alpha() continuer = 0
base_image = image.load("base.png").convert_alpha() ecran_principal()
base2_image = image.load("base2.png").convert_alpha() elif 6*hauteur/5 <= x <= (23*hauteur)/15 and 3*hauteur/5 <= y <= (14*hauteur)/15:
terre_finale = transform.scale(terre_image,((61*largeur)/1920, (61*largeur)/1920)) continuer = 0
route_finale = transform.scale(route_image,((61*largeur)/1920, (61*largeur)/1920)) ecran_regle()
arbre_finale = transform.scale(arbre_image,(2*((61*largeur)/1920), 2*((61*largeur)/1920)))
contour_finale = transform.scale(contour_image,((61*largeur)/1920, (61*largeur)/1920)) def ecran_regle ():
base_finale = transform.scale(base_image,(3*((60*largeur)/1920), 3*((60*largeur)/1920))) continuer = 1
base2_finale = transform.scale(base2_image,(3*((60*largeur)/1920), 3*((60*largeur)/1920))) display.init()
sortie_ennemie_finale = transform.scale(sortie_ennemie_image,((61*largeur)/1920, (61*largeur)/1920)) ecran_regle = display.set_mode((largeur, hauteur), FULLSCREEN)
fond_regle = image.load("ecran_regle.jpg")
lecture_carte("dico_carte.txt") # Lis le dictionnaire contenant la carte fond_regle = transform.scale(fond_regle,(largeur, hauteur))
ecran_regle.blit(fond_regle, (0, 0))
for i in herbe : # Parcours la liste comportant la position de l'herbe display.flip()
fond.blit(terre_finale, i) # Met l'image dans le fond while continuer:
for v in route : # Parcours la liste comportant la position de la route for evenement_joueur in event.get():
fond.blit(route_finale, v) # Met l'image dans le fond if evenement_joueur.type == KEYDOWN:
for p in arbre : # Parcours la liste comportant la position des arbres if evenement_joueur.key == K_SPACE:
fond.blit(arbre_finale, p) # Met l'image dans le fond continuer = 0
for c in contour : ecran_principal()
fond.blit(contour_finale, c) if evenement_joueur.type == MOUSEBUTTONDOWN :
for b in base : x, y = evenement_joueur.pos
if verif_base == 0 : if largeur/2.3 <= x <= largeur/1.8 and hauteur/2.6 <= y <= hauteur/1.6:
fond.blit(base_finale, b) continuer = 0
verif_base = verif_base + 1 ecran_accueil()
else :
fond.blit(base2_finale, b)
for s in sortie_ennemie :
fond.blit(sortie_ennemie_finale, s) def ecran_principal ():
son_fond(1)
type_ecriture = font.SysFont('Hungry Snake', 50) verif_son = 0
texte_joueur = type_ecriture.render(nom, True, ORANGE) continuer = 1
texte_joueur2 = type_ecriture.render(nom_2, True, ORANGE) verif_base = 0
fond.blit(texte_joueur, ((60*largeur)/1920, ((60*largeur)/1920))) ORANGE = 255, 100, 0
fond.blit(texte_joueur2, (largeur - largeur/8, hauteur - hauteur/8)) display.init() # Initialise la fenêtre graphique
fond = display.set_mode((largeur, hauteur), FULLSCREEN) # Definis la taille de l'écran de fond en fonction de l'écran du joueur
display.flip() # Fais apparaître les différents éléments chargés terre_image = image.load("herbe.png") # Charge l'image de la pelouse
route_image = image.load("route.png")# Charge l'image de la route
while continuer: arbre_image = image.load("arbre.png").convert_alpha() # Charge l'image des arbres
for evenement_joueur in event.get(): contour_image = image.load("contour.png")
if evenement_joueur.type == KEYDOWN: sortie_ennemie_image = image.load("milieu_soldat.png").convert_alpha()
if evenement_joueur.key == K_SPACE: base_image = image.load("base.png").convert_alpha()
continuer = 0 base2_image = image.load("base2.png").convert_alpha()
terre_finale = transform.scale(terre_image,((61*largeur)/1920, (61*largeur)/1920))
route_finale = transform.scale(route_image,((61*largeur)/1920, (61*largeur)/1920))
nom_joueur(1) arbre_finale = transform.scale(arbre_image,(2*((61*largeur)/1920), 2*((61*largeur)/1920)))
contour_finale = transform.scale(contour_image,((61*largeur)/1920, (61*largeur)/1920))
base_finale = transform.scale(base_image,(3*((60*largeur)/1920), 3*((60*largeur)/1920)))
base2_finale = transform.scale(base2_image,(3*((60*largeur)/1920), 3*((60*largeur)/1920)))
sortie_ennemie_finale = transform.scale(sortie_ennemie_image,((61*largeur)/1920, (61*largeur)/1920))
lecture_carte("dico_carte.txt") # Lis le dictionnaire contenant la carte
for i in herbe : # Parcours la liste comportant la position de l'herbe
fond.blit(terre_finale, i) # Met l'image dans le fond
for v in route : # Parcours la liste comportant la position de la route
fond.blit(route_finale, v) # Met l'image dans le fond
for p in arbre : # Parcours la liste comportant la position des arbres
fond.blit(arbre_finale, p) # Met l'image dans le fond
for c in contour :
fond.blit(contour_finale, c)
for b in base :
if verif_base == 0 :
fond.blit(base_finale, b)
verif_base = verif_base + 1
else :
fond.blit(base2_finale, b)
for s in sortie_ennemie :
fond.blit(sortie_ennemie_finale, s)
texte_joueur = type_ecriture.render(nom, True, ORANGE)
texte_joueur2 = type_ecriture.render(nom_2, True, ORANGE)
fond.blit(texte_joueur, ((60*largeur)/1920, ((60*largeur)/1920)))
fond.blit(texte_joueur2, (largeur - largeur/8, hauteur - hauteur/8))
display.flip() # Fais apparaître les différents éléments chargés
while continuer:
for evenement_joueur in event.get():
if evenement_joueur.type == KEYDOWN:
if evenement_joueur.key == K_SPACE:
continuer = 0
if evenement_joueur.key == K_s:
if verif_son % 2 == 0:
verif_son = verif_son + 1
son_fond(2)
elif verif_son % 2 == 1:
verif_son = verif_son + 1
son_fond(3)
ecran_depart()
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment