Респект, красиво получилось! Только вот, имхо, лучше было бы разбить основную часть программы на процедуры. Код бы стало еще удобней читать, хотя и так хорошо читается, в отличие от моих прог
.
Бродя по карте, я нашел какие-то странные места, где изображение как бы смазывается. Может быть, не загрузился какой-то тайл?
Насчет оптимизации: можно уменьшить размер карты, если она будет храниться в битовом формате. Еще мне не нравится, что главный герой может стоять на месте в позе "шпагат"