2014-01-20 4 views
0

외부 파일 (level.lev)에서 읽은 프로그램을 작성하여 해당 파일의 x와 o를 빨강 및 녹색 사각형으로 변환하여 파이 게임 창에 표시합니다. 이 코드는 텍스트 파일에 몇 개의 문자가 있는지 감지하는 데 효과적이며 그 많은 사각형을 그립니다. 그러나 x와 o를 구분하는 방법을 알지 못합니다. 이 문제를 처리하는 코드 만 아래에 있습니다.파이썬/파이 게임 2.7 텍스트에서 이미지로 변환

level_file = open("level.lev") 

read_num = 0 

for word in level_file: 
    for ch in word: 
     read_num+=1 

while(True): 
    while read_num > 0: 
     screen.blit(x_spr,(((64*read_num)-64),0)) 
     read_num-=1 
+0

질문에 대한 답변을 통해 문제가 해결되면이를 수락하십시오. 시간을 절약 할뿐만 아니라 다른 사람들에게 도움이 될 것입니다. – gravetii

답변

0

코드에 몇 가지 문제점이 있습니다. 당신은 하나의 문자를 읽어에 관심이 있기 때문에

, 당신은 하나에 루프에 대한 두 가지를 줄일 수

characters = level_file.read() 
for ch in characters: 

대신 파일을 읽은 후 X를 bliting, 스프라이트의 목록을 구성하는 것이 좋습니다. 다음과 같이 수행 할 수 있습니다.

sprites = []  
characters = level_file.read() 
for x in range(len(characters),0,-1): 
    pos = (((64*x)-64),0)) 
    sprites.append((some_sprite,pos)) 

그런 다음 적절하게 블리팅 할 수 있습니다.

for sprite in sprites: 
    screen.blit(sprite[0],sprite[1]) 

스프라이트 목록을 만드는 동안, char에 포함 된 내용을보고 해당 객체를 추가 할 수 있습니다. 다음 행의 항목 :

for x in range(len(characters)-1,-1,-1): 
    pos = (((64*x)-64),0)) 
    if characters[x] == 'X': 
     sprites.append((x_spr,pos)) 
    else: 
     sprites.append((o_spr,pos))