pygame窗口如何设置位置

pygame窗口如何设置位置?

类似于tkinter的geometry
import pygame
pygame.init()
screen = pygame.display.set_mode((screen_width, screen_height), pygame.NOFRAME)

怎么把screen放到整个屏幕的左上角?

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7699393
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:关于pygame和tkinter窗口的那件事-线程
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以解决这个问题。

    在Pygame中设置窗口位置的一种方法是使用screen对象的set_mode()方法设置窗口大小和位置。可以通过传递一个元组给set_mode()方法来设置窗口大小和位置。

    以下是代码示例:

    import pygame
    
    pygame.init()
    
    screen_width = 640
    screen_height = 480
    screen_size = (screen_width, screen_height)
    screen_position = (0, 0)
    
    screen = pygame.display.set_mode(screen_size)
    pygame.display.set_caption("My Game")
    
    # 设置窗口位置
    screen.set_mode(screen_size, 0, screen_position)
    
    # 运行游戏循环
    while True:
        # 处理事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
    
        # 在显示器上更新屏幕
        pygame.display.update()
    

    在上面的代码示例中,screen_position设置为(0, 0),将窗口设置在了屏幕的左上角。

    另一种方法是通过窗口的Surface对象的set_at()方法来更改窗口上每个像素的颜色,从而设置窗口位置。以下是代码示例:

    import pygame
    
    pygame.init()
    
    screen_width = 640
    screen_height = 480
    screen_size = (screen_width, screen_height)
    screen_position = (0, 0)
    
    screen = pygame.display.set_mode(screen_size)
    pygame.display.set_caption("My Game")
    
    # 设置窗口位置
    screen.get_at(screen_position)
    
    # 运行游戏循环
    while True:
        # 处理事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
    
        # 在显示器上更新屏幕
        pygame.display.update()
    

    在上面的代码示例中,我们通过调用窗口的Surface对象的get_at()方法,获取了窗口左上角的像素颜色。这可以用来设置窗口位置,但这种方法可能会影响窗口的性能和响应时间。

    以上是两种设置Pygame窗口位置的方法,可以根据具体情况选择适合自己的方法。

display.set_mode 试试看

import pygame

# 初始化Pygame
pygame.init()

# 设置屏幕大小和位置
screen_width = 800  # 窗口宽度
screen_height = 600  # 窗口高度
window_position = (0, 0)  # 窗口位置,左上角为(0, 0)
screen = pygame.display.set_mode((screen_width, screen_height), pygame.NOFRAME)
pygame.display.set_caption("My Pygame Window")

# 游戏主循环
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # 绘制游戏内容
    screen.fill((0, 0, 0))  # 填充窗口背景色为黑色

    # 更新屏幕
    pygame.display.flip()

# 退出游戏
pygame.quit()