1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
| #!/usr/bin/python3
# -*- coding: Utf-8 -*
"""
Jeu Donkey Kong Labyrinthe
Jeu dans lequel on doit déplacer DK jusqu'aux bananes à travers un labyrinthe.
Script Python
Fichiers : dklabyrinthe.py, classes.py, constantes.py, n1, n2 + images
"""
import pygame
from pygame.locals import *
from classes import *
from constantes import *
pygame.init()
#Ouverture de la fenêtre Pygame (carré : largeur = hauteur)
fenetre = pygame.display.set_mode((cote_fenetre, cote_fenetre))
#Son
#Tone = pygame.mixer.music.load("mvt.wav")
#pygame.mixer.music.play(-1)
#Icone
icone = pygame.image.load(image_icone)
pygame.display.set_icon(icone)
#Titre
pygame.display.set_caption(titre_fenetre)
#score
points=100
#fond
imf = [image_ac1,
image_ac2]
imon = [0]
#BOUCLE PRINCIPALE
continuer = 1
def imfond():
global continuer, image_selectionner
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_RIGHT and imon ==[0]:
imon = imf[1]
elif pressed[pygame.K_LEFT] and imon ==[1]:
imon = imf[0]
while continuer:
#Chargement et affichage de l'écran d'accueil
imfond()
fenetre.blit(imon, (0,0))
#Rafraichissement
pygame.display.flip()
#On remet ces variables à 1 à chaque tour de boucle
continuer_jeu = 1
continuer_accueil = 1
#BOUCLE D'ACCUEIL
while continuer_accueil:
#Limitation de vitesse de la boucle
pygame.time.Clock().tick(30)
for event in pygame.event.get():
#Si l'utilisateur quitte, on met les variables
#de boucle à 0 pour n'en parcourir aucune et fermer
if event.type == QUIT or event.type == KEYDOWN and event.key == K_ESCAPE:
continuer_accueil = 0
continuer_jeu = 0
continuer = 0
#Variable de choix du niveau
choix = 0
elif event.type == KEYDOWN:
#Lancement du niveau 1
if event.key == K_F1:
continuer_accueil = 0 #On quitte l'accueil
choix = 'n1' #On définit le niveau à charger
#Lancement du niveau 2
elif event.key == K_F2:
continuer_accueil = 0
choix = 'n2'
#Lancement du niveau 3
elif event.key == K_F3:
continuer_accueil = 0
choix = 'n3'
#Lancement du niveau 4
elif event.key == K_F4:
continuer_accueil = 0
choix = 'n4'
#on vérifie que le joueur a bien fait un choix de niveau
#pour ne pas charger s'il quitte
if choix != 0:
#Chargement du fond
fond = pygame.image.load(image_fond).convert()
#Génération d'un niveau à partir d'un fichier
niveau = Niveau(choix)
niveau.generer()
niveau.afficher(fenetre)
#Création de Donkey Kong
dk = Perso("images/dk_droite.png", "images/dk_gauche.png",
"images/dk_haut.png", "images/dk_bas.png", niveau)
#BOUCLE DE JEU
while continuer_jeu:
#Limitation de vitesse de la boucle
pygame.time.Clock().tick(30)
for event in pygame.event.get():
#Si l'utilisateur quitte, on met la variable qui continue le jeu
#ET la variable générale à 0 pour fermer la fenêtre
if event.type == QUIT:
continuer_jeu = 0
continuer = 0
elif event.type == KEYDOWN:
#Si l'utilisateur presse Echap ici, on revient seulement au menu
if event.key == K_ESCAPE:
continuer_jeu = 0
#Touches de déplacement de Donkey Kong
elif event.key == K_RIGHT:
dk.deplacer('droite')
points = points-1
elif event.key == K_LEFT:
dk.deplacer('gauche')
elif event.key == K_UP:
dk.deplacer('haut')
elif event.key == K_DOWN:
dk.deplacer('bas')
#Affichages aux nouvelles positions
fenetre.blit(fond, (0,0))
niveau.afficher(fenetre)
fenetre.blit(dk.direction, (dk.x, dk.y)) #dk.direction = l'image dans la bonne direction
pygame.display.flip()
#Victoire -> Retour à l'accueil
if niveau.structure[dk.case_y][dk.case_x] == 'a':
continuer_jeu = 0 |
Partager