使用Python 3在Arcade中将窗口居中

时间:2018-09-22 17:28:41

标签: python python-3.x

我正在使用街机模块编写游戏,并且不知道如何将窗口居中,因此窗口直接出现在屏幕中间而不是左上方。 我当前用于创建窗口的代码如下:

class MyGame(arcade.Window):
    def __init__(self, width, height):
        super().__init__(width, height, "Pong!")
        arcade.set_background_color(arcade.color.BLACK)

完成此类的方法后,我的主要功能是:

def main():
    """ Main method """
    game = MyGame(SCREEN_WIDTH, SCREEN_HEIGHT)
    arcade.run()

编辑:用几个句子重新措词以更好地解释问题

1 个答案:

答案 0 :(得分:2)

在任何地方我都很难找到这个,所以这是我想出的,以防万一其他人需要这个:

街机模块写在pyglet模块上,因此您可以使用pyglet类pyglet.canvas.Screen查找屏幕尺寸,然后使用arcade.Window.set_location(x, y)设置窗口位置。因此,首先import pyglet,然后您可以从当前的Screen中获取Display

import pyglet

# set up the screen
SCREEN_NUM = 0
SCREENS = pyglet.canvas.Display().get_screens()
SCREEN = SCREENS[SCREEN_NUM]

(如果您使用多台显示器,则可以更改{SCREEN_NUM。)

然后在MyGame内,您可以添加以下方法:

def center_on_screen(self):
    """Centers the window on the screen."""
    _left = SCREEN_WIDTH // 2 - self.width // 2
    _top = SCREEN_HEIGHT // 2 - self.height // 2
    self.set_location(_left, _top)

在初始化期间或游戏窗口需要居中时只需调用MyGame.center_on_screen()