【python】小游戏程序——弹跳小球

大概在一年前写了一篇使用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()  %刷新函数

​​​​​​​

  • 16
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

师兄师兄怎么办

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值