使用Python锁定SDL窗口位置

时间:2014-01-16 22:20:51

标签: python window pygame sdl

我正在使用Pygame构建一个基于SDL的游戏,我想知道是否有办法锁定游戏窗口的位置,这样用户就无法通过抓住它的顶部来移动窗口。

2 个答案:

答案 0 :(得分:1)

如果您使用的是SDL2; 首先,在主循环开始时获取窗口起始位置的当前位置。您可以使用此功能获得该职位:

SDL_GetWindowPosition(SDL_Window * window,int * x,int * y)

通过这个,您将获得窗口的起始位置。

其次,您捕获SDL_WINDOWEVENT_MOVED事件(该事件来自SDL_WINDOWEVENT)。当您捕获该事件时,只需使用以下命令覆盖新位置:

SDL_SetWindowPosition(SDL_Window * window,int x,int y)

您可以在此处查阅SDL2文档:http://wiki.libsdl.org/

更具体:http://wiki.libsdl.org/SDL_SetWindowPositionhttp://wiki.libsdl.org/SDL_GetWindowPosition

但是,如果pygame使用SDL 1.2,我认为不可能这样做,因为此功能在SDL 2之前不存在。

编辑:正如我所看到的,pygame已经用SDL2更新了,所以这些函数应该在那里。

答案 1 :(得分:0)

使用标志pygame.NOFRAME创建一个窗口,如下所示:

pygame.display.set_mode(resolution, flags=pygame.NOFRAME)

这里的文档:http://www.pygame.org/docs/ref/display.html