【问题标题】:How can i change the position of a Surface(Game Window) with respect to computer Screen in PyGame?如何在 PyGame 中更改 Surface(游戏窗口)相对于计算机屏幕的位置?
【发布时间】:2014-07-14 05:43:03
【问题描述】:

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

【问题讨论】:

标签: python pygame pygame-surface


【解决方案1】:

在窗口上,可以使用其句柄 (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)

【讨论】:

    【解决方案2】:

    您可以使用可以通过 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)
    

    我认为不可能改变已经初始化的显示器的位置,但你可以退出当前显示器,设置环境变量,然后重新初始化。

    【讨论】:

      猜你喜欢
      • 2013-01-10
      • 2017-11-15
      • 2011-12-12
      • 2013-12-24
      • 2013-03-08
      • 2016-07-17
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多