首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PySDL2生成多个曲面

PySDL2生成多个曲面
EN

Stack Overflow用户
提问于 2015-06-22 02:13:00
回答 1查看 401关注 0票数 1

问题是我不能正确地创建第二个曲面和ad Blit曲面。

下面是一些看起来像这样的代码:

代码语言:javascript
运行
复制
    'Library init'
SDL_Init(SDL_INIT_EVERYTHING)

'Creating window'
window = SDL_CreateWindow(b"Game",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,screen_width,screen_height,SDL_WINDOW_SHOWN)

'Adding resources'
sprite_names = os.listdir(os.path.join(os.path.dirname(os.path.abspath(__file__)),"res")) 

'Sprite loading'
for sprite in sprite_names:
    sprite_list.append(IMG_Load(os.path.join(os.path.dirname(os.path.abspath(__file__)),"res", sprite).encode("utf-8")))
    print(sprite)

'Creating window surface'
window_surface = SDL_GetWindowSurface(window)
'I am trying to create surface in that way'
second_surface = SDL_CreateSurface()
'PNG file with background'
SDL_BlitSurface(sprite_list[0],None,window_surface,SDL_Rect(0,0))
'Second surface with object with transparency, i dont know how define second surface in PySDL to make it work'
SDL_Blitsurface(sprite_list[1],None,second_surface,SDL_Rect(100,100))
SDL_Blitsurface(second_surface,None,window_surface,None) 

SDL_UpdateWindowSurface(window)

我想我需要做一些类似的事情来在屏幕上显示图层,我的意思是它将首先放置我的背景,然后是对象,对吗?当我试图在同一位置绘制两个对象时,我得到闪烁或我得到了对象的背景。有什么办法让它工作吗?

EN

回答 1

Stack Overflow用户

发布于 2015-06-22 22:58:04

我找到了一种定义第二个曲面的方法:

代码语言:javascript
运行
复制
second_surface = SDL_CreateRGBSurface(SDL_SWSURFACE,screen_width,screen_height,32, 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000)

这是透明的表面,现在我发现的下一个问题是每次刷新都会使透明度变暗,因为它绘制了多次相同的表面,我使用该代码,并且它起作用了:

代码语言:javascript
运行
复制
SDL_FillRect(second_surface, None, 0x000000)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30967771

复制
相关文章

相似问题

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