如何解决使用Python获取屏幕方向
我使用Python和Pygame做了一个简单的游戏。
由于我的游戏方向与打开游戏时的方向相同,因此游戏可以同时在两个方向(纵向和横向)上运行。
如果我在运行游戏时旋转设备以更改方向,则所有内容都会显示在错误的位置。
问题是我不知道如何检测到设备已旋转以正确重绘屏幕。
然后,我的问题是:
如何检测到用户仅使用Python或Pygame代码旋转了设备?
重要提示:建议不应与任何特定的操作系统有关,因为相同的代码必须在带有触摸屏(运行Linux,Windows或OS X)和移动设备(运行Android或iOS)的笔记本上运行。
观察:我试图创建另一个屏幕以获取其尺寸,并使用pygame.display.set_mode()与实际屏幕进行比较,但是此新屏幕返回的尺寸与实际屏幕相同,而不是其宽度等于实际屏幕高度。
感谢您的帮助。
解决方法
通过set_mode()
生成显示表面时,必须设置RESIZABLE
标志。当逻辑显示分辨率改变时,您将得到VIDEORESIZE
event:
screen = pygame.set_mode((0,0),pygame.FULLSCREEN | pygame.pygame.RESIZABLE)
width,height = screen.get_size()
while run:
for event in pygame.event.get():
if event.type == pygame.VIDEORESIZE:
width,height = event.w,event.h
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。