2014-08-30 4 views
0

나는 pygame으로 게임을 만들고 있는데, 타일 타일에 대해 다양한 것을 파싱하려면 ConfigParser을 사용하고 있습니다. 나는이 부분에 도착하면 그러나 나는 내가 parse.read(filename) 대신 의도 한 개체의 목록을 반환 같은데요이 오류Pythons ConfigParser가 내 파일을 목록으로 읽기.

self.level = self.config.get("level","map") 
    AttributeError: 'list' object has no attribute 'get' 

를 출력

parse.read(filename) 

하는 곳. 다음은 제 코드입니다. 나는 구글을 찾고 있었지만 이것과 관련된 것을 찾을 수 없었다.

import pygame 
import ConfigParser 

parse = ConfigParser.ConfigParser() 

class MakeLevel(): 
    def MapMake(self,spriteList,filename): 
     self.config = parse.read(filename) 
     self.level = self.config.get("level","map") 
     self.LegendDict = self.config.get("dictionary") 
     self.Proper = [] 
     self.newTile = None 
     self.x = 0 
     self.y += 50 
     #Get propper legend stats 
     for items in LegendDict: 
      for row in level: 
       for col in row: 
        if col == items: 
         #LegendDict[items] 
         self.image = self.config.get(items, "image") 
         self.newTile = MapTile(self.image,self.x,self.y) 
         return spriteList.add(self.newTile) 
       x += 50 
      y += 50 
      x = 0 


class MapTile(pygame.sprite.Sprite): 
    def __init__(self,image,x,y): 
     pygame.sprite.Sprite.__init__(self) 
     self.image = pygame.image.load(image) 
     self.rect = Rect(x, y, 32, 32) 


class Controller(): 
    def __init__(self): 
     pass 

    def Keys(self): 
     for event in pygame.event.get(): 
      if event.type == pygame.KEYDOWN: 
       if event.key == pygame.K_a: 
        return 'a' 
       if event.key == pygame.K_d: 
        return 'd' 

      if event.type == pygame.KEYUP: 
       if event.key == pygame.K_a: 
        return 'a up' 
       if event.key == pygame.K_d: 
        return 'd up' 

AllSprites = pygame.sprite.Group() 

makeLevel = MakeLevel() 

makeLevel.MapMake(AllSprites,"level1.ini") 

AllSprites.draw() 

또한 파일을 미리 열어 보았지만 여전히 작동하지 않았습니다.

mapFile = open("level1.ini") 
makeLevel.MapMake(AllSprites, mapFile) 

은 내가 level1.ini 파일이 main.py 파일과 같은 폴더에 있는지 확인했다. 문제가 너무 분명하지 않기를 바랍니다.

답변

1

ConfigParser.read은 성공적으로 파싱 된 파일 목록을 반환하므로 예제에서 self.config은 가능성이있는 파일 이름 목록입니다. ['level1.ini']입니다. 파싱 ​​후, ​​아마도 파서로부터 .get이 필요합니다. 이와 비슷한 것 :

+0

오케이, 작동합니다. 고맙습니다! –