import eb_engine def main(): e = eb_engine.Engine() e.main_loop() if __name__ == "__main__": # Отрисовка голой сетки, прокрутка, масштаб + # Отрисовка спрайтов: # - сделать масштабирование в соотв. с клеткой + # - посмотреть класс спрайта или сделать свой + # - добавить отрисовку существ и предметов с анимацией + # - оптимизация - рисуем только те клетки, которые рядом с камерой # - оптимизация - не рисуем клетки по отдельности - собираем из них одну поверхность и её рисуем # # Начало гуя: # - общая идея гуя # - кнопка отключить сетку # - строка ввода # - клик # - вывод stdout на отдельную панель, полный экран, потом масштабирование всего под размер экрана # Поиск пути, очередь задач для существ # Редактор карты # Охотник -> деревня # Простой, но основательный гуй внизу экрана, глобальная карта и перемещение # деревня на соседской локации и торговля с ней # перемещение по воде, течение #техдолг: # pydantic instead of dataclasses? # почитать про Surface, Display, доку к pygame-gui # проверить дефолтдикт field и None = None # изучить pypmler # настроить логирование всего # SLOP: load_sprites # проверить у ллм на ошибки - РЕГУЛЯРНАЯ АКТИВНОСТЬ: # - deepcopy + # - общие + main() # # ДОДЕЛАТЬ move для Creature - хранить pos в объекте # # ПРОВЕРИТЬ МЕНЯЕТСЯ ЛИ ПЕРЕДАННЫЙ В ОБЪЕКТ cells и еслт да, # перенести всё взаимодействие с картой в объекты, карта только хранит cells # и готовит данные для отрисовки Render'ом # # ИГРОВОЙ ТАКТ? или только для действий их длительность? # # ПОСМОТРЕТЬ ПО КОММИТАМ ЗАЧЕМ БЫЛ НУЖЕН path_exists, удалить? # # добавил гуй, динамическая консоль, всё работает, но: # - слоп, почистить # - мини-баг - если первые вводимые буквы совпадают с клавишами управления, один раз успевает проскочить до лока. некритично. # - при вводе текста нет прокрутки к концу # - плавающий баг - если повводить текст, а потом закрыть консоль, игра не закроется по эскейпу. # # исправить поиск пути чтобы он учитывал других существ # # в дальнейшем вся отрисовка переедет в класс рендер, # карта будет только вовзращать поверхность для отрисовки или даже просто Cells # active_cell переедет в класс Control # # НАЙТИ В КОДЕ ГДЕ Я ТАК НЕ СДЕЛАЛ И ИСПРАВИТЬ - НАШЕЛ ОДНУ, ПОИСКАТЬ ЕЩЕ #if a is None: # print("a это точно None") # # Альтернатива #if a is not None: # print("a не None") # #