大概在一年前写了一篇使用C语言编写的弹跳小球小游戏:【c语言】小游戏程序——弹跳小球
如今学了python,所以就想使用python来写个小游戏练习下手感
———————————————LINE————————————————
先来看看最后的效果:
——————————————下面是正文———————————————
相比C语言,python中提供了很多第三方库用以简便开发,其中就有一个叫 “pygame” 的第三方库可以用以开发一些简便的游戏,本篇博文就用到了这个第三方库。下面说明下编译环境以及pygame的配置方法:
编译环境:pycharm
在pycharm中配置pygame的方法:其实加载第三方库的方法有很多,如使用pip工具等,以下介绍我用起来十分方便的方法。
按照以上图示选择之后,将进入第三方库配置页面:
之后按照以下指示即可将第三方库安装完成:
安装 pygame 之后,我们即可在窗口进行程序的编写。
——————————————下面是代码———————————————
首先我们把需要用到的库导入进来:
import pygame,sys
import time
之后进行初始化设置:
pygame.init()
screen = pygame.display.set_mode((600,400))
pygame.display.set_caption("弹跳小球")
ball = pygame.image.load("1.jpg")
ballrect = ball.get_rect()
此处,先对代码进行解析:
- pygame.init() — 初始化所有导入的 pygame 模块
- pygame.display.set_mode() — 设置游戏窗体大小,此处将窗体设置成600x400
- pygame.display.set_caption() — 设置游戏窗体名称
- pygame.image.load() — 导入小球的照片,可上网百度
- pygame.get_rect() — 将图片控制在矩形之内,这里可能需要更加详细地说明,对导入的图片进行控制,实际上是对图片的矩形进行控制,如下图我在博文中所使用的球为例:
则可以根据坐标系获取更多的属性:比如top,left,bottom,right,size,width,height等。
初始化完成之后,我们就可以进行小球的属性设置:
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
time.sleep(0.003)
ballrect = ballrect.move(speed[0],speed[1])
if ballrect.left < 0 or ballrect.right > 600 :
speed[0] =- speed[0]
if ballrect.top < 0 or ballrect.bottom > 400 :
speed[1] =- speed[1]
我们可以知道,当小球碰到左右上下的框的时候,小球需要反弹回来,所以当包裹小球的矩形超过了窗体的大小时,将其速度设置为负,即反向速度,以实现 “弹” 这个特性。 在代码中我添加了一个延时,如果没有添加延时的话效果就是如下:
最后添加一些收尾工作:
screen.fill(0,0,0) %因为小球划过的区域系统会默认填充为白色,所以使用该函数将划过的区域填充为黑色,RGB(0,0,0)即黑色
screen.blit(ball,ballrect) %将一个平面的一部分或全部图象整块从这个平面复制到另一个平面
pygame.display.update() %刷新函数