я, конечно, нуб, но мне видится, что небольшой рефактор обработки загрузки не помешает, т.к. редактировать текстовый файл пользователем - дело тоже важное, тем более, что многие игры берут именно строки, или даже блоки строк из текстового файла. Это пока мой лучший и *рабочий* вариант, мы избавились от двух циклов (сократив вложенность на 1), файлы закрываются сами, и сами текстовые файлы выглядят красивее. [____if event.type == pygame.KEYDOWN and event.key == pygame.K_s: with open('test_map.txt', 'w') as file: for row in world: # Нам не нужно перебирать колонки, возьмем сразу ряды целиком из самого "мира" file.writelines(f'{(str(row))} ') # и запишем их построчно; для этого форматированная строка с символом переноса строки
print('Карта сохранена!') if event.type == pygame.KEYDOWN and event.key == pygame.K_l: try: with open('test_map.txt', 'r') as file: lines = file.read() row, col = 0, 0 for letter in lines: if letter.isdigit(): # т.к. мы знаем, что храним числа - проверяем, если символ является строковой записью числа - вытаскиваем. world[row][col] = int(letter) col += 1 if col >= worldWidth: row += 1 col = 0 except: print('Файл карты не найден')___]
спасибо за туториал! щас буду для игровго движка редактор писать!
Братан спасибо что объяснил, я не знал как делать карты. Очень помог!!!!
классный урок!
Йоу у тебя рабочий стол как и мой лол!
Молодец , советую почитать об "сериализации"
я, конечно, нуб, но мне видится, что небольшой рефактор обработки загрузки не помешает, т.к. редактировать текстовый файл пользователем - дело тоже важное, тем более, что многие игры берут именно строки, или даже блоки строк из текстового файла. Это пока мой лучший и *рабочий* вариант, мы избавились от двух циклов (сократив вложенность на 1), файлы закрываются сами, и сами текстовые файлы выглядят красивее.
[____if event.type == pygame.KEYDOWN and event.key == pygame.K_s:
with open('test_map.txt', 'w') as file:
for row in world: # Нам не нужно перебирать колонки, возьмем сразу ряды целиком из самого "мира"
file.writelines(f'{(str(row))}
') # и запишем их построчно; для этого форматированная строка с символом переноса строки
print('Карта сохранена!')
if event.type == pygame.KEYDOWN and event.key == pygame.K_l:
try:
with open('test_map.txt', 'r') as file:
lines = file.read()
row, col = 0, 0
for letter in lines:
if letter.isdigit(): # т.к. мы знаем, что храним числа - проверяем, если символ является строковой записью числа - вытаскиваем.
world[row][col] = int(letter)
col += 1
if col >= worldWidth:
row += 1
col = 0
except:
print('Файл карты не найден')___]
а как можно наложить текстуру ?