python pygame 屏幕疯狂变换颜色_pygame的屏幕显示

# 设置全屏以及按esc键退出

import sys

import pygame

pygame.init()

vInfo=pygame.display.Info()

size=width,height=vInfo.current_w,vInfo.current_h

# print(pygame.display.Info())

screen=pygame.display.set_mode(size,pygame.FULLSCREEN) # 将窗口显示到屏幕上

# print(pygame.display.Info()) # 在set_mode前后调用是有区别的

pygame.display.set_caption("Pygame壁球") # 设置壁球

# color=(0,0,0) # 设置刷新的颜色

black=0,0,0

ball=pygame.image.load("ball.png") # 加载图片

"""

这里的ball可以理解为surface对象,对象.get_rect()可以形成一个和对象内切的一个对象

这样就可以方便的使用坐标了

"""

ballrect=ball.get_rect() # 获取矩形区域

fps=300 # 1秒钟小球运行300个像素

fclock=pygame.time.Clock()

speed=[1,1] # 设置移动的X轴,Y轴的矩形 左上角的坐标是(0,0)

# clock=pygame.time.Clock() # 设置时钟

"""

运行上述代码,会出现一个一闪而过的黑色窗口,这是因为程序执行完成后,会自动关闭,如果让窗口一直显示,需要

使用while True让程序一直执行,此外,还需要设置关闭按钮

"""

while True:

# clock.tick(60) # 每秒执行60次

# 检查事件

for event in pygame.event.get():

if event.type==pygame.QUIT: # 如果单机关闭窗口,则退出

sys.exit()

elif event.type==pygame.KEYDOWN:

if event.key==pygame.K_ESCAPE:

sys.exit()

ballrect=ballrect.move(speed[0],speed[1]) # 移动小球

# 碰到左右边缘

if ballrect.left<0 or ballrect.right>width:

speed[0]=-speed[0] # 这里的0代表的是第一个索引,不是速度为0

# 碰到上下边缘

if ballrect.top<0 or ballrect.bottom>height:

speed[1]=-speed[1]

screen.fill(black) # 填充颜色

screen.blit(ball,ballrect) # 将图片画到那个矩形区域里面

fclock.tick(fps)

pygame.display.update() # 更新全部显示

# pygame.quit()

窗口可以伸缩

import sys

import pygame

pygame.init()

size=width,height=640,480 # 设置窗口的大小

# print(pygame.display.Info())

screen=pygame.display.set_mode(size) # 将窗口显示到屏幕上

# print(pygame.display.Info()) # 在set_mode前后调用是有区别的

pygame.display.set_caption("Pygame壁球") # 设置壁球

# color=(0,0,0) # 设置刷新的颜色

black=0,0,0

ball=pygame.image.load("ball.png") # 加载图片

"""

这里的ball可以理解为surface对象,对象.get_rect()可以形成一个和对象内切的一个对象

这样就可以方便的使用坐标了

"""

ballrect=ball.get_rect() # 获取矩形区域

fps=300 # 1秒钟小球运行300个像素

fclock=pygame.time.Clock()

speed=[1,1] # 设置移动的X轴,Y轴的矩形 左上角的坐标是(0,0)

# clock=pygame.time.Clock() # 设置时钟

"""

运行上述代码,会出现一个一闪而过的黑色窗口,这是因为程序执行完成后,会自动关闭,如果让窗口一直显示,需要

使用while True让程序一直执行,此外,还需要设置关闭按钮

"""

while True:

# clock.tick(60) # 每秒执行60次

# 检查事件

for event in pygame.event.get():

if event.type==pygame.QUIT: # 如果单机关闭窗口,则退出

sys.exit()

elif event.type==pygame.VIDEORESIZE:

size=width,height=event.size[0],event.size[1]

screen=pygame.display.set_mode(size,pygame.RESIZABLE)

ballrect=ballrect.move(speed[0],speed[1]) # 移动小球

# 碰到左右边缘

if ballrect.left<0 or ballrect.right>width:

speed[0]=-speed[0] # 这里的0代表的是第一个索引,不是速度为0

# 碰到上下边缘

if ballrect.top<0 or ballrect.bottom>height:

speed[1]=-speed[1]

screen.fill(black) # 填充颜色

screen.blit(ball,ballrect) # 将图片画到那个矩形区域里面

fclock.tick(fps)

pygame.display.update() # 更新全部显示

# pygame.quit()

设置窗口图标

感知窗口是否被图表化

图标化,最小化返回false

Pygame提供了两个刷新屏幕的函数

filp函数将重新绘制正在屏幕对应的窗口

update()仅仅绘制窗口中有变化的区域

所以update执行的速度更快

import sys

import pygame

pygame.init()

size=width,height=640,480 # 设置窗口的大小

# print(pygame.display.Info())

screen=pygame.display.set_mode(size) # 将窗口显示到屏幕上

# print(pygame.display.Info()) # 在set_mode前后调用是有区别的

pygame.display.set_caption("Pygame壁球") # 设置壁球

# color=(0,0,0) # 设置刷新的颜色

black=0,0,0

ball=pygame.image.load("ball.png") # 加载图片

"""

这里的ball可以理解为surface对象,对象.get_rect()可以形成一个和对象内切的一个对象

这样就可以方便的使用坐标了

"""

ballrect=ball.get_rect() # 获取矩形区域

fps=300 # 1秒钟小球运行300个像素

fclock=pygame.time.Clock()

speed=[1,1] # 设置移动的X轴,Y轴的矩形 左上角的坐标是(0,0)

# clock=pygame.time.Clock() # 设置时钟

"""

运行上述代码,会出现一个一闪而过的黑色窗口,这是因为程序执行完成后,会自动关闭,如果让窗口一直显示,需要

使用while True让程序一直执行,此外,还需要设置关闭按钮

"""

while True:

# clock.tick(60) # 每秒执行60次

# 检查事件

for event in pygame.event.get():

if event.type==pygame.QUIT: # 如果单机关闭窗口,则退出

sys.exit()

elif event.type==pygame.VIDEORESIZE:

size=width,height=event.size[0],event.size[1]

screen=pygame.display.set_mode(size,pygame.RESIZABLE)

# 设置图标最小化

if pygame.display.get_active():

ballrect=ballrect.move(speed[0],speed[1]) # 移动小球

# 碰到左右边缘

if ballrect.left<0 or ballrect.right>width:

speed[0]=-speed[0] # 这里的0代表的是第一个索引,不是速度为0

# 碰到上下边缘

if ballrect.top<0 or ballrect.bottom>height:

speed[1]=-speed[1]

screen.fill(black) # 填充颜色

screen.blit(ball,ballrect) # 将图片画到那个矩形区域里面

fclock.tick(fps)

pygame.display.update() # 更新全部显示

# pygame.quit()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值