跳跃小球的关键就是要利用pychram中的pygame软件包;
1.下载pygame软件包,可以在pycharm终端输入此命令下载------pip install pygame
或者在pycharm设置中下载:
2.初始化窗口界面
import sys
import pygame
pygame.init() #初始化pygame
size=width,height=900,800 #设置窗口大小
screen=pygame.display.set_mode(size) #显示窗口
color=(255,255,254) #设置颜色
3.为了满足界面一直显示,并且手动可以进行关闭,我们需要设置一个死循环,直到手动关闭,循环终止;
while True:
#将显示窗口视作一个事件,点击关闭也是一个事件
for event in pygame.event.get():
#如果手动点击关闭则退出
if event.type==pygame.QUIT:
pygame.quit() #退出pygame
sys.exit()
4.接着就是初始化界面的背景,确定小球的区域,并导入小球的图片;
导入图片等素材,记得要把素材和项目放在一个文件夹中,否则会导入失败!
如果只改变界面的颜色,而不引用背景素材,可以利用color()函数
例:color(R,G,B/R,G,B,A)中含有三个参数,表示两种色彩模式:
color(255,255,255)------白色
color(0,0,0)----黑色
color(190,190,190)---灰色
color(0,100,0)---深绿色
color(255,215,0)----金色
color(238.130,238)----紫罗兰色
color(160,32,240)----紫色
import sys
import pygame
pygame.init() #初始化pygame
size=width,height=900,800 #设置窗口大小
screen=pygame.display.set_mode(size) #显示窗口
color=(255,255,254) #设置颜色
background=pygame.image.load('mn.png').convert() #导入背景图片
ball=pygame.image.load('ball.png') #导入小球图片
ballrect=ball.get_rect() #获取矩形区域,小球所占的区域
5.最后就是给小球赋予横向和纵向的运行速度,并且考虑小球碰到边缘时需要反弹的情况,以及界面的时间;
speed=[5,5] #设置移动的x轴和y轴
clock=pygame.time.Clock() #设置时间
#设置死循环,确保窗口一直显示,直到手动关闭
while True:
clock.tick(60) #每秒执行60次
#将显示窗口视作一个事件,点击关闭也是一个事件
for event in pygame.event.get():
#如果手动点击关闭则退出
if event.type==pygame.QUIT:
pygame.quit() #退出pygame
sys.exit()
ballrect=ballrect.move(speed) #移动小球
#左右边缘碰撞的时候反弹
if ballrect.left < 0 or ballrect.right > width:
speed[0]=-speed[0]
#上下边缘碰撞反弹
if ballrect.top < 0 or ballrect.bottom > height:
speed[1]=-speed[1]
screen.fill(color) #填充窗口颜色
screen.blit(background,(0,0))
screen.blit(ball,ballrect) #将ball的照片填充到窗口
pygame.display.flip() #更新全部显示
最后就是完整代码:
import sys
import pygame
pygame.init() #初始化pygame
size=width,height=900,800 #设置窗口大小
screen=pygame.display.set_mode(size) #显示窗口
color=(255,255,254) #设置颜色
background=pygame.image.load('mn.png').convert() #导入背景图片
ball=pygame.image.load('ball.png') #导入小球图片
ballrect=ball.get_rect() #获取矩形区域,小球所占的区域
speed=[5,5] #设置移动的x轴和y轴
clock=pygame.time.Clock() #设置时间
#设置死循环,确保窗口一直显示,直到手动关闭
while True:
clock.tick(60) #每秒执行60次
#将显示窗口视作一个事件,点击关闭也是一个事件
for event in pygame.event.get():
#如果手动点击关闭则退出
if event.type==pygame.QUIT:
pygame.quit() #退出pygame
sys.exit()
ballrect=ballrect.move(speed) #移动小球
#左右边缘碰撞的时候反弹
if ballrect.left < 0 or ballrect.right > width:
speed[0]=-speed[0]
#上下边缘碰撞反弹
if ballrect.top < 0 or ballrect.bottom > height:
speed[1]=-speed[1]
screen.fill(color) #填充窗口颜色
screen.blit(background,(0,0))
screen.blit(ball,ballrect) #将ball的照片填充到窗口
pygame.display.flip() #更新全部显示
运行截图: