gpt4 book ai didi

python - Pygame 在全屏模式下不返回鼠标位置

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:26 25 4
gpt4 key购买 nike

尝试创建一段简单的代码,用于在窗口中以及全屏中注册单击时的鼠标位置。

目前,在窗口模式下(假设光标位于窗口上方)将返回正确的值,但是在全屏模式下,无论鼠标位置如何,我都会返回值 800,480(屏幕分辨率)。这是我的代码:

import pygame

windowwidth = 800
windowheight = 480
pygame.init()
pygame.display.init()
screen = pygame.display.set_mode((windowwidth, windowheight))
pygame.display.flip()

running = 1
while running:
LEFT = 1
event1 = pygame.event.get()
for event in event1:
if event.type == pygame.MOUSEBUTTONDOWN and event.button == LEFT:
print(event.pos)
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_f:
pygame.display.set_mode((800,480), pygame.FULLSCREEN)
if event.key == pygame.K_g:
pygame.display.set_mode((800, 480))
else:
break

pygame.display.flip()

最佳答案

虽然 @Michael O'Dwyer 的答案已经足够了,但除了他对预先确定 PyGame 窗口的 Canvas 大小的澄清之外,您还可以使用 pygame.display.Info() 自动检测系统的宽度和高度。方法以获得更好的清晰度。这是自动检测宽度和高度的代码:

import pygame

# Initialize Pygame
pygame.init()

# Get system display information
displayInfo = pygame.display.Info()
windowwidth = displayInfo.current_w
windowheight = displayInfo.current_h

# Commented out - No need to reinitialize other Pygame modules
# after pygame.init() is called
# pygame.display.init()

screen = pygame.display.set_mode((windowwidth, windowheight))
pygame.display.flip()

running = 1
while running:
LEFT = 1
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN and event.button == LEFT:
print(event.pos)
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_f:
pygame.display.set_mode((windowwidth, windowheight), pygame.FULLSCREEN)
if event.key == pygame.K_g:
pygame.display.set_mode((800, 480))
else:
break

pygame.display.flip()

Herepygame.display.Info() 的 PyGame 文档方法。

希望这有帮助!

关于python - Pygame 在全屏模式下不返回鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47059749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com