Ваш код работает хорошо, когда к нему добавлен код цикла событий. Поскольку вы еще не опубликовали всю программу, все, что я могу сделать - это опубликовать работающую программу, содержащую ваш код.
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((300, 300))
currtile_x = 0
currtile_y = 0
with open('townhall.map') as f:
for line in f:
for character in line:
if character == '\n':
currtile_y += 10
currtile_x = 0
elif character == 'x':
pygame.draw.rect(screen, (0,0,0), (currtile_x, currtile_y, 10, 10), 0)
currtile_x += 10
elif character == 'a':
pygame.draw.rect(screen, (0,255,255), (currtile_x, currtile_y, 10, 10), 0)
currtile_x += 10
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
pygame.display.update()