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") # # Встреча с Егором: # # сборщик данных в цикле и перекладчик # модуль автоинпута, принимает поток данных и переводит их в команды движка