problème position personnage
bonjour a tous,
je fais un jeu labyrinthe , mais j'ai un problème tout bête, quand je n'arrive pas a positionner mon personnage sur le point de départ
je précise que j'ai un fichier.txt pour mon labyrinthe
j'ai essayé de faire plusieurs solution sans réussite
fichier dk.py :
Code:
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
|
"""
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
"""
# -*-coding:Utf-8 -*
from pygame.locals import *
import os
from const import *
from classs import *
import pygame
pygame.init()
fenetre = pygame.display.set_mode((tailleFenetre, tailleFenetre), RESIZABLE)
pygame.event.pump()
maCarte = Niveau()
maCarte.niveau()
maCarte.carte()
continuer = 1
continuer_accueil = 1
continuer_partie = 1
while continuer:
pygame.time.Clock().tick(30)
accueil = pygame.image.load(image_accueil).convert()
fenetre.blit(accueil, (0, 0))
pygame.display.flip()
while continuer_accueil:
for event in pygame.event.get():
if event.type == KEYDOWN and event.key == K_ESCAPE:
continuer_accueil = 0
continuer = 0
continuer_partie = 0
if event.type == KEYDOWN:
if event.key == K_F1:
num = 0
continuer_accueil = 0
if event.key == K_F2:
num = 1
continuer_accueil = 0
fond = pygame.image.load(image_fond).convert_alpha()
fenetre.blit(fond, (0, 0))
print(maCarte.position_depart)
dk = pygame.image.load(dk_bas).convert_alpha()
mur = pygame.image.load(image_mur).convert_alpha()
depart = pygame.image.load(image_depart).convert_alpha()
arrivee = pygame.image.load(image_arrivee).convert_alpha()
position_perso = dk.get_rect()
fenetre.blit(dk, position_perso)
pygame.key.set_repeat(300, 20)
sortie = maCarte.position_arrivee
while continuer_partie:
for event in pygame.event.get():
if event.type == QUIT:
continuer = 0
if event.type == KEYDOWN and event.key == K_ESCAPE:
continuer_partie = 0
if event.type == KEYDOWN:
if event.key == K_DOWN:
position_perso = position_perso.move(0, 1)
dk = pygame.image.load(dk_bas).convert_alpha()
if event.key == K_UP:
position_perso = position_perso.move(0, -1)
dk = pygame.image.load(dk_haut).convert_alpha()
if event.key == K_LEFT:
position_perso = position_perso.move(-1, 0)
dk = pygame.image.load(dk_gauche).convert_alpha()
if event.key == K_RIGHT:
position_perso = position_perso.move(1, 0)
dk = pygame.image.load(dk_droite).convert_alpha()
fenetre.blit(fond, (0, 0))
for position_mur in maCarte.liste_position_mur:
fenetre.blit(mur, position_mur)
for position_depart in maCarte.position_depart:
fenetre.blit(depart, position_depart)
for position_arrivee in maCarte.position_arrivee:
fenetre.blit(arrivee, position_arrivee)
fenetre.blit(dk, position_perso)
pygame.display.flip() |
fichier const.py:
Code:
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
|
# -*-coding:Utf-8 -*
import os
import pygame
pygame.init()
# fenetre
nbCote = 15
tailleSprite = 30
tailleFenetre = nbCote * tailleSprite
# image du jeu
image_accueil = "images/accueil.jpg"
image_arrivee = "images/arrivee.png"
image_depart = "images/depart.png"
dk_bas = "images/dk_bas.png"
dk_haut = "images/dk_haut.png"
dk_gauche = "images/dk_gauche.png"
dk_droite = "images/dk_droite.png"
image_fond = "images/fond.jpg"
image_mur = "images/mur.png" |
fichier classs.py :
Code:
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
|
# -*-coding:Utf-8 -*
import os
from const import *
from pygame.locals import *
class Niveau:
def __init__(self):
self.liste_position_mur = []
self.position_depart = []
self.position_arrivee = []
def niveau(self):
niveau = os.listdir("niveau")
num = 0
niveauFile = open("./niveau/"+niveau[num], "r")
self.enregistrement = niveauFile.read().splitlines()
def carte(self):
self.liste_position_mur = []
self.position_depart = []
self.position_arrivee = []
for i, ligne in enumerate(self.enregistrement):
for j, case in enumerate(ligne):
if case == "O":
mur = pygame.image.load(image_mur).convert_alpha()
position_mur = mur.get_rect()
position_mur.x = i * tailleSprite
position_mur.y = j * tailleSprite
self.liste_position_mur.append(position_mur)
if case == "X":
depart = pygame.image.load(image_depart).convert_alpha()
position_depart = depart.get_rect()
position_depart.x = i * tailleSprite
position_depart.y = j * tailleSprite
self.position_depart.append(position_depart)
if case == "G":
arrivee = pygame.image.load(image_arrivee).convert_alpha()
position_arrivee = arrivee.get_rect()
position_arrivee.x = i * tailleSprite
position_arrivee.y = j * tailleSprite
self.position_arrivee.append(position_arrivee)
def passage(self, depart, arrive, mur):
self.depart = pygame.image.load(depart).convert_alpha()
self.arrivee = pygame.image.load(arrivee).convert_alpha()
self.mur = pygame.image.load(mur).convert_alpha()
def personnage(self, haut, bas, gauche, droite):
self.haut = pygame.image.load(dk_droite).convert_alpha()
self.bas = pygame.image.load(dk_bas).convert_alpha()
self.gauche = pygame.image.load(dk_gauche).convert_alpha()
self.droite = pygame.image.load(dk_droite).convert_alpha() |