如何在PyGame中更改Surface(游戏窗口)相对于计算机屏幕的位置?

时间:2014-07-14 05:43:03

标签: python pygame pygame-surface

我想改变游戏窗口相对于电脑屏幕的位置。但是在文档中找不到任何东西。请帮我。

2 个答案:

答案 0 :(得分:0)

您可以使用可以使用os.environ访问的环境变量来设置pygame显示初始化的位置。来自http://www.pygame.org/wiki/SettingWindowPosition?parent=CookBook的示例:

x = 100
y = 0
import os
os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % (x,y)

import pygame
pygame.init()
screen = pygame.display.set_mode((100,100))

# wait for a while to show the window.
import time
time.sleep(2)

我认为不可能更改已初始化的显示的位置,但您可以退出当前显示,设置环境变量并重新初始化。

答案 1 :(得分:0)

可以使用其句柄(hwnd)更改初始化窗口的位置。在User32.dll中有一个名为MoveWindow的函数,它接收窗口的句柄并更改其位置。您可以使用python的标准ctypes模块调用它。

from ctypes import windll

def moveWin(x, y):
    # the handle to the window
    hwnd = pygame.display.get_wm_info()['window']

    # user32.MoveWindow also recieves a new size for the window
    w, h = pygame.display.get_surface().get_size()

    windll.user32.MoveWindow(hwnd, x, y, w, h, False)