北京理工大学-Python游戏开发入门学习笔记04

窗口尺寸和模式

pygame.display.set_mode(r=(0,0),flags=0) 设置相关屏幕模式
r是屏幕的分辨率,采用(width,height)方式输入
flags用来控制显示类型
pygame.RESIZABLE 窗口大小可调
pygame.NOFRAME 窗口没有边界显示
pygame.FULLSCREEN 窗口全屏显示
#每种显示模式要配合相关的处理机制

pygame.display.Info() 生成屏幕相关信息
产生一个显示信息对象VideoInfo,表达当前屏幕的参数信息
current_w:当前显示模式或窗口的像素宽度
current_h:当前显示模式或窗口的像素高度

pygame.VIDEORESIZE
窗口大小更改的事件。
事件发生后,返回event.size元组,包括新窗口的宽度和高度
.size[0]宽度,也可用event.w
.size[1]高度,也可用event.h
返回参数仅在事件发生时有效

对应于pygame.FULLSCREEN

vInfo=pygame.display.Info()
size=width,height=vInfo.current_w,vInfo.current_h   #尺寸设置为当前屏幕的大小
print(pygame.display.Info())   #调用set_mode前的信息
#screen=pygame.display.set_mode(size,pygame.RESIZABLE)   #需要改变相应的图片大小和区域
#screen=pygame.display.set_mode(size,pygame.NOFRAME)  #需要增加退出方式
screen=pygame.display.set_mode(size,pygame.FULLSCREEN)  #考虑游戏和屏幕的对应关系和退出
print(pygame.display.Info())  #调用set_mode后的信息
event.type==pygame.KEYDOWN:    #事件类型为键盘输入
            if event.key==pygame.K_UP:
                speed[1]=speed[1]+1 if speed[1]>0 else speed[1]-1
                 # 语句1(条件成立) if 条件 else 语句2(条件不成立)
            elif event.key==pygame.K_DOWN:
                speed[1] = speed[1] if speed[1]==0 else (abs(speed[1]) - 1) * int(speed[1] / abs(speed[1]))
            elif event.key==pygame.K_LEFT:
                speed[0] = speed[0]  if speed[0]==0 else (abs(speed[0]) - 1) * int(speed[0] / abs(speed[0]))
            elif event.key==pygame.K_RIGHT:
                speed[0] = speed[0] + 1 if speed[0] > 0 else speed[0] - 1
            elif event.key==pygame.K_ESCAPE:     #对应于退出键的操作
                sys.exit()

对应于pygame.RESIZABLE

size=width,height=600,400
screen=pygame.display.set_mode(size,pygame.RESIZABLE) 
 if event.type==pygame.QUIT:
            sys.exit()
        elif event.type==pygame.KEYDOWN:    #事件类型为键盘输入
            if event.key==pygame.K_UP:
                speed[1]=speed[1]+1 if speed[1]>0 else speed[1]-1
                 # 语句1(条件成立) if 条件 else 语句2(条件不成立)
            elif event.key==pygame.K_DOWN:
                speed[1] = speed[1] if speed[1]==0 else (abs(speed[1]) - 1) * int(speed[1] / abs(speed[1]))
            elif event.key==pygame.K_LEFT:
                speed[0] = speed[0]  if speed[0]==0 else (abs(speed[0]) - 1) * int(speed[0] / abs(speed[0]))
            elif event.key==pygame.K_RIGHT:
                speed[0] = speed[0] + 1 if speed[0] > 0 else speed[0] - 1
            elif event.key==pygame.K_ESCAPE:     #对应于退出键的操作
                sys.exit()
        elif event.type==pygame.VIDEORESIZE:
            size=width,height=event.w,event.h  #事件发生后的尺寸
            screen=pygame.display.set_mode(size,pygame.RESIZABLE)

ps:学习链接 https://www.icourse163.org/course/BIT-1001873001

你可能感兴趣的:(北京理工大学-Python游戏开发入门学习笔记04)