壁球小游戏可以变色"/>
python壁球小游戏可以变色
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)
bgcolor=pygame.Color("black")
# 定义一个参数返回0-255之间的一个整数
# a大于255返回255,小于255大于0返回a,小于0返回0
def RGBChannel(a):return 0 if a<0 else(255 if a>255 else(int(a)))
# 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]bgcolor.r=RGBChannel(ballrect.left*255/width)bgcolor.g=RGBChannel(ballrect.top*255/height)bgcolor.b=RGBChannel(min(speed[0],speed[1])*255/max(speed[0],speed[1],1)) # 设置最大速度不能为0,最小为1screen.fill(bgcolor) # 填充颜色screen.blit(ball,ballrect) # 将图片画到那个矩形区域里面fclock.tick(fps)pygame.display.update() # 更新全部显示# pygame.quit()![在这里插入图片描述](.png)
更多推荐
python壁球小游戏可以变色
发布评论