首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pysdl2访问冲突显示图像

pysdl2访问冲突显示图像
EN

Stack Overflow用户
提问于 2014-03-25 18:06:06
回答 1查看 596关注 0票数 4

我正在尝试在windows机器上开始使用pysdl2。到目前为止,我只是复制并粘贴了Hello World tutorial,这样我就可以看看它是否真的工作了!事实并非如此。

代码语言:javascript
运行
复制
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()

当我运行该程序时,它短暂地显示了一个窗口,然后崩溃,并显示以下错误:

代码语言:javascript
运行
复制
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像素或更小,那么它将毫无问题地显示出来。我正在使用枕头来改进格式支持,在bmppngjpg上也遇到了同样的问题。

编辑后添加:

今天,我又一次尝试去理解这一点。我的测试图像是245x245像素将不再起作用,除非我在创建spriterenderer和调用render(sprite)之间做了一些事情-出于兴趣,我在这些行之间添加了print sprite,以查看变量中是否确实有什么东西,并且它会显示出来。注释掉print行,它就失败了。然后我将相同的图像放大,500x500,并再次得到access violation错误。我不知道这是怎么回事。

EN

回答 1

Stack Overflow用户

发布于 2014-03-31 09:33:03

您使用的是什么版本的SDL?这是Mercurial的最新开发吗?

如果是这样的话,它可能是不稳定的,并且有一个错误,不允许它在Windows上正常运行,在我的情况下,它在Arch和Windows的稳定版本上都工作得很好。

在那里返回的错误是一个WindowsError,它可能来自于DLL文件的使用。

如果您使用的是不稳定的版本,请尝试使用稳定的版本。之后它可能会起作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22631202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档