Bonjour, j'ai un probleme avec mon code, l'erreur est DISPLAYSURF.blit(Pac,(PacPos[0]*TILESIZE,PacPos[1]*TILESIZE))
IndexError: tuple index out of range. J'ai essayé de changer la valeur mais rien ne change, et les float ne sont pas acceptés.
import pygame, sys, random
from pygame.locals import *
#constants representing the different resources
H = 0
D = 2
O =1
#a dictionary linking resources to textures
textures = {
H : pygame.image.load('MUR.png'),
D : pygame.image.load('MURPENCHE.png'),
O : pygame.image.load('BASE.png'),
}
TILEMAP = [
[O,O,O,O,O,H,O,H,O,O,O,O,O,H,O,O,H,O,O,O,O,O,O,H,O,H,O,O,O,O,O,H,O,O,H,O],
[D,D,D,D,O,H,O,H,O,H,O,O,O,H,O,O,D,D,D,D,D,D,O,H,O,H,O,H,O,O,O,H,O,O,D,D],
[O,O,O,O,O,D,D,D,D,D,O,O,O,D,D,O,O,O,O,O,O,O,O,D,D,D,D,D,O,O,O,D,D,O,O,O],
[D,D,D,H,O,O,O,O,H,O,D,D,O,O,O,O,H,D,D,D,D,O,O,O,O,O,O,O,O,D,O,O,O,O,H,D],
[O,O,H,O,O,O,O,O,H,O,H,O,O,O,O,O,H,D,O,O,H,O,O,O,O,O,O,O,H,H,O,O,O,O,H,D],
[D,D,H,O,O,O,O,O,O,O,O,O,O,O,H,O,O,O,D,D,H,O,O,O,O,O,D,O,O,O,H,O,H,O,O,O],
[O,O,O,O,O,H,O,H,O,O,O,O,O,H,O,O,H,O,O,O,O,O,O,H,O,H,O,O,O,O,O,H,O,O,H,O],
[D,D,D,D,O,H,O,H,O,H,O,O,O,H,O,O,D,D,D,D,D,D,O,H,O,H,O,H,O,O,O,H,O,O,D,D],
[O,O,O,O,O,D,D,D,D,D,O,O,O,D,D,O,O,O,O,O,O,H,O,D,D,D,D,D,O,O,O,D,D,O,O,O],
[D,D,D,H,O,O,O,O,H,O,D,D,O,O,O,O,H,D,D,D,D,H,O,O,O,O,O,O,O,D,O,O,O,O,H,D],
[O,O,H,O,O,O,O,O,H,O,H,O,O,O,O,O,H,O,O,O,O,O,O,O,O,O,O,O,H,H,O,O,O,O,H,D],
[D,D,H,O,O,O,O,O,O,O,O,O,H,O,H,O,O,O,D,D,H,O,O,O,O,O,D,O,O,O,H,O,H,O,O,O],
[O,O,O,O,O,H,O,H,O,O,O,O,O,H,O,O,H,O,O,O,O,O,O,H,O,H,O,O,O,O,O,H,O,O,H,O],
[D,D,D,D,O,H,O,H,O,H,O,O,O,H,O,O,D,D,D,D,D,D,O,H,O,H,O,H,O,O,O,H,O,O,D,D],
[O,O,O,O,O,D,D,D,D,D,O,O,O,D,D,O,O,O,O,O,O,O,O,D,D,D,D,D,O,O,O,D,D,O,O,O],
[D,D,D,H,O,O,O,O,H,O,D,D,O,O,O,O,H,D,D,D,D,O,O,O,O,O,O,O,O,D,O,O,O,O,H,D],
[O,O,H,O,O,O,O,O,H,O,H,O,O,O,O,O,H,D,O,O,H,O,O,O,O,O,O,O,H,H,O,O,O,O,H,D],
[D,D,H,O,O,O,O,O,O,O,O,O,O,O,H,O,O,O,D,D,H,O,O,O,O,O,D,O,O,O,H,O,H,O,O,O],
[O,O,O,O,O,H,O,H,O,O,O,O,O,H,O,O,H,O,O,O,O,O,O,H,O,H,O,O,O,O,O,H,O,O,H,O],
[D,D,D,D,O,H,O,H,O,H,O,O,O,H,O,O,D,D,D,D,D,D,O,H,O,H,O,H,O,O,O,H,O,O,D,D],
[O,O,O,O,O,D,D,D,D,D,O,O,O,D,D,O,O,O,O,O,O,H,O,D,D,D,D,D,O,O,O,D,D,O,O,O],
[D,D,D,H,O,O,O,O,H,O,D,D,O,O,O,O,H,D,D,D,D,H,O,O,O,O,O,O,O,D,O,O,O,O,H,D],
[O,O,H,O,O,O,O,O,H,O,H,O,O,O,O,O,H,O,O,O,O,O,O,O,O,O,O,O,H,H,O,O,O,O,H,D],
[D,D,H,O,O,O,O,O,O,O,O,O,H,O,H,O,O,O,D,D,H,O,O,O,O,O,D,O,O,O,H,O,H,O,O,O],
]
#useful game dimensions
TILESIZE = 20
MAPWIDTH = 36
MAPHEIGHT = 24
pygame.init()
DISPLAYSURF = pygame.display.set_mode((MAPWIDTH*TILESIZE, MAPHEIGHT*TILESIZE))
#DISPLAYSURF.blit(textures[item],(placePosition,MAPHEIGHT*TILESIZE+20))
#DISPLAYSURF.blit(TILEMAP, (0,0))
#update the display
Pac = pygame.image.load('PACMAN.png'),
PacPos = [0,0],
DISPLAYSURF.blit(Pac,(PacPos[0]*TILESIZE,PacPos[1]*TILESIZE))
while True:
#get all the user events
for event in pygame.event.get():
#if the user wants to quit
if event.type == QUIT:
#and the game and close the window
pygame.quit()
sys.exit()
elif event.type == KEYDOWN:
if (event.key == K_RIGHT):
PacPos[0] += 1
#loop through each row
for row in range(MAPHEIGHT):
#loop through each column in the row
for column in range(MAPWIDTH):
#draw the resource at that position in the tilemap, using the correct image
DISPLAYSURF.blit(textures[TILEMAP[row][column]], (column*TILESIZE,row*TILESIZE))
#update the display
pygame.display.update()
lignes 56 et 57, il y a des virgules en trop à la fin des lignes. essaye de print Pac et PacPos, tu va comprendre le problème.
TUPLE index out of range
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.