Files
Elvenbane/problems.txt
2026-02-15 18:17:31 +03:00

38 lines
2.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
pygame.FULLSCREEN create a fullscreen display
pygame.DOUBLEBUF only applicable with OPENGL
pygame.HWSURFACE (obsolete in pygame 2) hardware accelerated, only in FULLSCREEN
pygame.OPENGL create an OpenGL-renderable display
pygame.RESIZABLE display window should be sizeable
pygame.NOFRAME display window will have no border or controls
pygame.SCALED resolution depends on desktop size and scale graphics
pygame.SHOWN window is opened in visible mode (default)
pygame.HIDDEN window is opened in hidden mode
Проблема 2: Копирование Cell
В цикле создания клеток final_cell = Cell(cell_classes[cell["type"]](**cell["cell"]["terrain_obj"])) создаётся terrain_obj, а затем deepcopy(final_cell) копирует Cell. Но если terrain_obj содержит мутабельные атрибуты (например, mutable sprite или вложенные объекты из eb_terrain), все клетки поделят эти вложенные объекты, вызывая визуальные артефакты (одинаковые спрайты изменяются вместе).
Исправление с deepcopy:
Примените deepcopy к terrain_obj перед передачей в Cell:
python
terrain_kwargs = deepcopy(cell["cell"]["terrain_obj"])
final_cell = Cell(cell_classes[cell["type"]](**terrain_kwargs))
self.cells[line].append(final_cell) # Без лишнего deepcopy, если terrain_obj уже глубокая копия
4. Неправильный доступ к JSON
python
for cell in buff[str(line)]: # ❌ buff[line] может отсутствовать
6. Отсутствует проверка существования спрайта
python
scaled = scale_image(sprites[cell.terrain_obj.sprite], self.scale) # KeyError!
Проблемы производительности
7. Масштабирование каждый кадр
scale_image() вызывается 150×150=22,500 раз в секунду при 60 FPS. Кэшируйте масштабированные спрайты.