Partage
  • Partager sur Facebook
  • Partager sur Twitter

TUPLE index out of range

Sujet résolu
    26 mai 2019 à 20:48:09

    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()
    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      26 mai 2019 à 22:20:48

      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.
      • Partager sur Facebook
      • Partager sur Twitter

      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.
      • Editeur
      • Markdown