2

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

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()

编辑:重新措辞几句话以更好地解释问题

4

1 回答 1

2

我在任何地方都找不到这个,所以这就是我想出来的,以防其他人需要这个:

arcade 模块是在 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()在初始化期间或游戏窗口需要居中的任何时候调用。

于 2020-06-19T01:30:20.650 回答