Кажется, что Perl модуль SDL использует SDL версии 1.2.14, тогда как документация гласит:
Наилучшим способом действий является переход на SDL 2.0 или более позднюю версию как можно быстрее
Итак, я бы рекомендовал вместо этого использовать привязки Python PySDL2. Следующее работает для меня на Windows 10:
Скачано Python 3.8 с здесь :
https://www.python.org/ftp/python/3.8.2/python-3.8.2-amd64.exe
Затем добавили следующее в переменные среды пользователя для «Путь» (ПРИМЕЧАНИЕ: в начале, а не в конце):
%USERPROFILE%\AppData\Local\Programs\Python\Python38
%USERPROFILE%\AppData\Local\Programs\Python\Python38\Scripts
Затем из командной строки install pysdl2 :
>pip install pysdl2
Collecting pysdl2
Downloading https://files.pythonhosted.org/packages/60/ba/ddb48261848874eeb3d54963edbf3c74fff86499746aeb23151f123953bb/PySDL2-0.9.7-py3-none-any.whl (541kB)
|████████████████████████████████| 542kB 2.2MB/s
Installing collected packages: pysdl2
Successfully installed pysdl2-0.9.7
>pip install pysdl2-dll
Collecting pysdl2-dll
Downloading https://files.pythonhosted.org/packages/01/37/f9aa5472fb85ce94507c69110916133ad29b650d2bf277de2cce37d7ad7d/pysdl2_dll-2.0.12-py2.py3-none-win_amd64.whl (2.5MB)
|████████████████████████████████| 2.5MB 3.2MB/s
Installing collected packages: pysdl2-dll
Successfully installed pysdl2-dll-2.0.12
Затем добавьте новую переменную среды пользователя PYTHONPATH
со значением:
%USERPROFILE%\AppData\Local\Programs\Python\Python38\Lib\site-packages
Закройте командную строку и снова откройте новую, чтобы обновить переменные среды , Затем я создал тестовый Python скрипт:
import sys
import sdl2.ext
resource_dir=r'C:\Users\hakon\AppData\Local\Programs\Python\Python38\Lib\site-packages\sdl2\examples'
RESOURCES = sdl2.ext.Resources(resource_dir, "resources")
sdl2.ext.init()
window = sdl2.ext.Window("Hello World!", size=(640, 480))
window.show()
factory = sdl2.ext.SpriteFactory(sdl2.ext.SOFTWARE)
sprite = factory.from_image(RESOURCES.get_path("hello.bmp"))
spriterenderer = factory.create_sprite_render_system(window)
spriterenderer.render(sprite)
processor = sdl2.ext.TestEventProcessor()
processor.run(window)
sdl2.ext.quit()
и, наконец, запустил его из командной строки:
> python test.py