SpritePro автоматически создаёт SpriteProGame с глобальной камерой. Основные функции доступны через spritePro:
s.process_camera_input(speed=250.0, keys=None, mouse_drag=False)— обрабатывает клавиатуру/мышь и смещает камеру.s.set_camera_position(x, y)иs.move_camera(dx, dy)— прямое управление.s.set_camera_follow(sprite, offset=(0, 0))— режим слежения за спрайтом (например, за игроком). Смещение задаётся в мировых координатах.s.clear_camera_follow()— возвращает ручное управление.s.get_camera_position()— текущая позиция камеры.s.shake_camera(strength=(12, 12), duration=0.35)— дрожание камеры с перезапуском.
Вызов s.update(...) внутри игрового цикла автоматически обновляет время, события, камеру и все зарегистрированные спрайты, поэтому ручных вызовов get_game().update(...) больше не требуется.
Вы можете зарегистрировать объекты (TweenManager, Animation, Timer и т.д.) для автоматического обновления в spritePro.update():
import spritePro as s
# Создать объекты
tween_manager = s.TweenManager()
animation = s.Animation(...)
timer = s.Timer(...)
# Зарегистрировать для автоматического обновления
s.register_update_object(tween_manager)
s.register_update_object(animation)
s.register_update_object(timer)
# В игровом цикле - все зарегистрированные объекты обновятся автоматически с dt
while True:
s.update() # Автоматически обновит все зарегистрированные объекты
# Если нужно отменить регистрацию
s.unregister_update_object(tween_manager)Важно: Параметр dt автоматически передается зарегистрированным объектам из spritePro.dt, поэтому не нужно передавать его вручную.
Модуль spritePro.particles содержит простую систему частиц:
from spritePro.particles import ParticleEmitter, ParticleConfig
config = ParticleConfig(
amount=80,
size_range=(4, 7),
speed_range=(80, 200),
lifetime_range=(500, 900),
colors=[(255, 200, 40), (255, 120, 200)],
)
emitter = ParticleEmitter(config)
# В любой момент:
emitter.emit((player.rect.centerx, player.rect.centery))ParticleConfig управляет всеми параметрами: количеством частиц, размерами, скоростью, временем жизни, гравитацией, списком цветов и т.д. При необходимости можно задать custom_factory, чтобы программно модифицировать каждую частицу.
Каждая частица — полноценный Sprite, поэтому она учитывает камеру. Для HUD-частиц можно установить screen_space=True.
Все спрайты поддерживают метод set_screen_space(True), который фиксирует объект к экрану. Для позиционирования добавлен Sprite.set_position(...) с поддержкой якорей (center, topleft, midbottom и т.д.).
По умолчанию спрайты мировые (screen_space=False), а Button и TextSprite автоматически закрепляются на экране, что облегчает создание интерфейсов.
- Используйте
sprite.set_parent(parent)чтобы прикрепить один спрайт к другому. - Параметр
keep_world_positionпозволяет сохранить мировые координаты или принять локальные. - При перемещении родителя его дети автоматически следуют за ним; локальный сдвиг хранится в
local_offset. set_screen_space(True)у родителя фиксирует всех его детей на экране.- Для точного позиционирования применяйте
set_position(position, anchor=spritePro.Anchor.TOP_LEFT)и другие якоря изspritePro.Anchor.