initial sprite animation support

This commit is contained in:
shiva404
2026-02-15 18:17:31 +03:00
parent ffc87c9591
commit ab58803373
30 changed files with 228 additions and 173 deletions

View File

@@ -1,15 +1,11 @@
#o = eb_terrain.Ground(1, 1, 1)
#c = eb_creatures.Unit(1, 1, 1)
#print(isinstance(o, eb_objects.Object))
#print(isinstance(o, eb_objects.Terrain))
#print(isinstance(c, eb_objects.Terrain))
o = eb_terrain.Ground(1, 1, 1)
c = eb_creatures.Unit(1, 1, 1)
print(isinstance(o, eb_objects.Object))
print(isinstance(o, eb_objects.Terrain))
print(isinstance(c, eb_objects.Terrain))
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
original = pygame.image.load('sprite.png').convert_alpha()
orig_rect = original.get_rect(center=(200, 300))
@@ -18,7 +14,6 @@ def scale_image(image, n):
new_size = (int(orig_size[0] * n), int(orig_size[1] * n))
return pygame.transform.scale(image, new_size)
n = 1.5 # Example: 1.5x larger
scaled = scale_image(original, n)
scaled_rect = scaled.get_rect(center=(600, 300))
@@ -27,46 +22,30 @@ screen.blit(scaled, scaled_rect) # Scaled by n
def load_sprites_from_folder(self, folder_path = sprites_dir):
"""
Загружает все PNG изображения из указанной папки в словарь.
Ключи - имена файлов без расширения, значения - pygame.Surface
"""
# Полный путь к папке со спрайтами относительно скрипта
script_dir = os.path.dirname(os.path.abspath(__file__))
full_path = os.path.join(script_dir, folder_path)
sprites = {}
if not os.path.exists(full_path):
print(f"❌ Папка не найдена: {full_path}")
return sprites
print(f"🔍 Сканируем папку: {full_path}")
# Проходим по всем файлам в папке
for filename in os.listdir(full_path):
if filename.lower().endswith('.png'):
# Убираем расширение .png для ключа
name = os.path.splitext(filename)[0]
filepath = os.path.join(full_path, filename)
try:
# Загружаем изображение
surface = pygame.image.load(filepath).convert_alpha()
self.sprites[name] = surface
print(f"✅ Загружен: {name} ({surface.get_size()})")
except pygame.error as e:
print(f"❌ Ошибка загрузки {filename}: {e}")
print(f"🎉 Загружено {len(sprites)} спрайтов")
def load_sprites_from_folder(self, folder_path = sprites_dir):
"""
Загружает все PNG изображения из указанной папки в словарь.
Ключи - имена файлов без расширения, значения - pygame.Surface
"""
# Полный путь к папке со спрайтами относительно скрипта
script_dir = os.path.dirname(os.path.abspath(__file__))
full_path = os.path.join(script_dir, folder_path)
sprites = {}
if not os.path.exists(full_path):
print(f"❌ Папка не найдена: {full_path}")
return sprites
print(f"🔍 Сканируем папку: {full_path}")
# Проходим по всем файлам в папке
for filename in os.listdir(full_path):
if filename.lower().endswith('.png'):
# Убираем расширение .png для ключа
name = os.path.splitext(filename)[0]
filepath = os.path.join(full_path, filename)
try:
# Загружаем изображение
surface = pygame.image.load(filepath).convert_alpha()
self.sprites[name] = surface
print(f"✅ Загружен: {name} ({surface.get_size()})")
except pygame.error as e:
print(f"❌ Ошибка загрузки {filename}: {e}")
print(f"🎉 Загружено {len(sprites)} спрайтов")