Windows 컴퓨터에서 pysdl2를 시작하려고합니다. 지금까지 나는 단지 복사 및 붙여 넣기를 마치 Hello World tutorial에 붙였습니다. 그래서 실제로 작동하는지 볼 수 있습니다! 그렇지 않습니다. 나는이 프로그램을 실행하면pysdl2 액세스 위반 표시 이미지
import sys
import sdl2.ext
RESOURCES = sdl2.ext.Resources(__file__, "resources")
sdl2.ext.init()
window = sdl2.ext.Window("Hello World!", size=(640, 580))
window.show()
factory = sdl2.ext.SpriteFactory(sdl2.ext.SOFTWARE)
sprite = factory.from_image(RESOURCES.get_path("testimage.png"))
spriterenderer = factory.create_sprite_render_system(window)
spriterenderer.render(sprite)
processor = sdl2.ext.TestEventProcessor()
processor.run(window)
sdl2.ext.quit()
, 그것은 간단히 윈도우가이 오류와 충돌 표시 주소마다 다른
Traceback (most recent call last):
File "test.py", line 15, in <module>
spriterenderer.render(sprite)
File "C:\Python27\lib\site-packages\sdl2\ext\sprite.py", line 643, in render
surface.SDL_BlitSurface(sprites.surface, None, self.surface, r)
WindowsError: exception: access violation reading 0x03F3B000
있지만.
큰 이미지에만 나타납니다. 이미지 크기를 245 x 245
픽셀 이하로 조정하면 불만없이 표시됩니다. 개선 된 형식 지원을 위해 베개를 사용 중이며 bmp
, png
및 jpg
과 같은 문제가 발생합니다.
편집은 추가 :
오늘, 나는 다시 이해하려고 노력이에 파고했습니다. 245x245
픽셀이었던 나의 테스트 이미지는 spriterenderer를 만들고 나서을 호출하는 경우를 제외하고는 더 이상 작동하지 않습니다. 실제로 변수에 뭔가가 있는지 관심이있는 부분에 print sprite
을 추가했습니다. , 그리고 그것을 표시합니다. print
행을 주석 처리하면 실패합니다. 그런 다음 동일한 이미지를 500x500
으로 만들고 access violation
오류가 다시 발생했습니다. 나는 그것이 어떻게 진행되는지 전혀 모른다.
안녕하세요, 답변 해 주셔서 감사합니다. 여기에서 안정 버전 2.0.3을 사용하고 있습니다. http://www.libsdl.org/download-2.0.php 방금 런타임 바이너리에서 .dll을 내 system32 폴더로 다운로드 한 다음 pySDL2를 설치했습니다. – MalphasWats