Я хотел бы сделать очень большую карту прокрутки для пигмеев.Мой экран определяется 17x11 плитками размером 120 px X 120 px (плитка в рамке обрезается, 60 на 6 пикселей) для мода с низким разрешением).Для создания моей прокрутки у меня появилась идея использовать 'with open (' map.txt ',' r ') как m', чтобы избежать загрузки очень большой картинки, которая приводит к сбою моей программы.Давайте предположим, что я получил это в моем файле (1 = стена и 0 = воздух):
111111111101111111111
100000000000000000001
101000000000000000101
100000000000000000001
100000000000000000001
100000000000000000001
100000000000000000001
100000000000000000001
101000000000000000101
100000000000000000001
111111111111111111111
игрок появляется в (9, 5), слева вверху (0, 0).Итак, я хотел бы, чтобы когда мой игрок шел вверх, влево, вниз или вправо, фоновая перезагрузка для обновления была позицией на карте.Или ... я не знаю, как мне вообще это сделать ...
Я попробовал этот маленький скрипт, но он совсем не работает:
import pygame, os
pygame.init()
os.environ['SDL_VIDEO_CENTERED'] = '1'
w = pygame.display.set_mode(1920,1080),pygame.NOFRAME)
wall = pygame.image.load('wall.png').convert_alpha
player = pygame.image.load('hero.png').convert_alpha
p_x = 9
p_y = 5
continue = True
def scroll(x,y):
p_x = p_x + x
p_y = p_y + y
with open('map.txt','r') as m:
**On your answer, complete this part for aloow the code to work properly**
pygame.display.update()
while continue:
for event in pygame.event.get():
if event.type == K_d: # I use a Qwerty keyboard
scroll(1,0)
elif event.type == K_a:
scroll(-1,0)
elif event.type == K_z:
scroll(0,-1)
elif event.type == K_s:
scroll(0,1)
ТакЯ уже попробовал:
for line in m():
for sprite in line():
....
И я думаю, что это невозможно с этим методом.Кто-нибудь может мне помочь?