从本期开始,我们将利用几天的时间用python来做个小游戏,当然,在做小游戏之前,我们必须学会一个做小游戏的第三方库——pygame。可能有人会说,python不擅长或者说不适合用来做游戏,的确是这样,但是我们可以通过以做游戏的方式来巩固我们学过的知识,何乐而不为呢?废话不多说,开始干起来。pygame的安装如果你之前在安装python的时候,把环境变量等等都配置好了,那么安装pygame是很容易的事,只要打开cmd输入pip install pygame即可

当看到Successfully installed xxx 的字样即说明已经成功安装。另外说一句,如果想要查看自己安装的所有库,则使用pip list;如果想要卸载某库,则使用pip uninstall xxx;如果想要更新某库,则使用pip install --upgrade xxx。进击的小球我将和大家一起来制作一款小游戏,从而一步一步了解pygame的用法。这款游戏实现起来非常简单,没有''超级玛丽''那么复杂,因为所有的素材我们自己都可以做,我把这款游戏命名为''进击的小球'',效果如下:因为动图太大上传不了,所以我只能录制两个了

玩法:通过键盘的↑键来控制小球往上走,当松开↑键时,小球以一定速度向下掉,小球每越过一根棒加1000分,越过一个飞镖加2000分,当小球碰到棒或者飞镖时,生命减一,同时还设置了暂停键,开始键,本局分数和历史最高分。实现过程黑色背景和游戏名背景颜色为黑色,游戏名为''进击的小球''。代码示例

运行以上程序,就可以看到名为''进击的小球''的黑色窗口。主角登场下面我们把主角,就是那个绿色的小球给请出来。首先我们需要一张小球的图片,我把所有的图片都放在了images文件下,并且将小球图片命名为ball导入图片

我们首先看看将它显示在(0,0),也就是左上角的位置的代码。

也就是说,以左上角为原点,越往右下,坐标就越大,注意这里的坐标对应的是图片的左上角。但是我们不希望小球一开始出现在左上角,我们希望它出现在顶部的中间位置,小球不仅有位置,还有上升和下落的速度等等,考虑到这一点,我们要定义一个Ball类。

这里我简单说一下为什么要继承pygame.sprite.Sprite,因为这是一个可见游戏对象的基类,以后可能会用到的碰撞检测等等都需要用到这个类的一些方法,不仅仅是球类,以后的棒类等等也要继承它。然后把小球渲染到屏幕上(注意一定要先填充屏幕,再显示小球,要不小球会被覆盖)

这样,我们就得到了一个位置在顶部中间的小球。但是,小球总不能呆在顶部中间吧?要不然我们定义的上升速度和下降速度也就没有意义了,所以我们要给小球添加方法,分别是上升和下降。实现的方法很简单,我们的游戏是小球在屏幕中间上下移动,也就是说小球左边的位置不变,顶部的位置发生变化即可,所以当小球上升时,顶部位置的坐标减小,下降时,顶部位置的坐标增大。所以上升和下降的方法可以写为:

方法已经写好,下面我们来写控制部分的代码,我们的思路是这样的,当按下↑键时,小球上升,当松开时,小球下降。因为这是一个不断刷新的过程,我们要写在while循环中。

来看一下效果

小球的速度稍微快了一点,看起来不太连贯,因为每秒的帧数太高,如果直接改小小球的速度,后面的棒和飞镖我又怕躲不过,经过多次尝试,我发现比较好的方法是调低每秒的帧数。

效果

最后附上本节完整代码

python做一个小游戏_利用python做个小游戏相关推荐

  1. python做一个星座分析_利用python输出星座的方法

    利用python输出星座的方法 发布时间:2020-09-23 12:12:36 来源:亿速云 阅读:84 作者:小新 这篇文章将为大家详细讲解有关利用python输出星座的方法,小编觉得挺实用的,因 ...

  2. 用python做一个购物车编程_利用python实现简单的循环购物车功能示例代码

    本文主要给大家介绍了关于python实现循环购物车功能的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 示例代码 # -*- coding: utf-8 -*- __author__ = ...

  3. python抽奖游戏_利用Python写一个抽奖程序,解密游戏内抽奖的秘密

    原标题:利用Python写一个抽奖程序,解密游戏内抽奖的秘密 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客 ...

  4. 钉钉python 自动发消息软件_利用Python自动发送钉钉数据消息,一个简单的上手小项目...

    现在大部分公司都使用钉钉作为内部的主要沟通工具,钉钉消息基本都上都能快速有效的被阅读,打开率会比邮件高上不少.所以准备使用钉钉来播报平台每日的成交额,并附上一些鼓励的话和图片.起到一个激励团队的作用 ...

  5. python写出雷霆战机_利用Python自制雷霆战机小游戏,娱乐编程,快乐学习!

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 先睹为快 在cmd ...

  6. python写一个表白程序_用Python个女神做一个表白神器

    用Python给女神表白 情人节刚刚过去,但男同胞们对女神的暗恋愈加热烈,想尽一切办法表白,今天,咱们就用Python制作一个表白神器. 程序介绍 运用pygame制作一个小游戏,当女神用鼠标点击&q ...

  7. 用html5做一个简单网页_用Python做一个简单的翻译工具

    编程本身是跟年龄无关的一件事,不论你现在是十四五岁,还是四五十岁,如果你热爱它,并且愿意持续投入其中,必定会有所收获. 本文就来自编程教室一位"小"读者的投稿(互助学习1群里的同学 ...

  8. python写一个表白程序_用Python写一个能算出自己年龄的小程序

    用Python写一个能算出自己年龄的小程序. 其实我连我今年多少岁都不知道,最近看到了python的datetime库里面有很多好用的方法,于是就写了这样一个程序作为练习,然后又写了这样一篇文章来梳理 ...

  9. python如何创建一个文件夹_利用Python怎么创建一个文件夹

    利用Python怎么创建一个文件夹 发布时间:2020-12-08 14:48:04 来源:亿速云 阅读:91 作者:Leah 这期内容当中小编将会给大家带来有关利用Python怎么创建一个文件夹,文 ...

最新文章

  1. GridView单元格取值显示为nbsp;
  2. 机器人达到指定位置方法数
  3. split逗号分割中文出现乱码java_Java中URL传中文时乱码的问题解决方案
  4. 哈哈,终于想着注册博客了
  5. 配置高性能ElasticSearch集群的9个小贴士
  6. java emoji显示乱码_Java 解决Emoji表情过滤问题
  7. 谁在使用Docker?
  8. coloros11跟Android,安卓10与安卓11究竟差异在哪里?我们拿这两台新机试了一下
  9. 12月25日服务器例行维护公告,12月25日维护公告 技能修改测试
  10. 2021-2025年中国中压额定母线槽行业市场供需与战略研究报告
  11. 未能正确加载“ProviderPackage”包。
  12. vim基础学习之自动补全功能
  13. python tushare
  14. (快速下载)百度 apollo 开源代码
  15. 计算机应用主要学PS,计算机应用专业PS模块考试标准.doc
  16. 动态规划问题经典例题
  17. 三流Offer看薪资、二流的Offer看平台,一流的Offer看...
  18. 优盘里文件夹变成html,U盘里面的文件跟文件夹突然乱码了怎么办
  19. 给基于HEXO的博客添加gitter在线交流
  20. 谷粒商城-08-p139-p172

热门文章

  1. cron表达式 每天0点10分和30分_揭开考研阅卷的内幕,注意这些多得20分!
  2. 边栏实现过程中,导入style.css没用
  3. Java Web学习笔记04:JSP隐含对象
  4. Scala学习笔记04:内建控制结构
  5. 【codevs2912】反素数,好好学习天天向上
  6. 17.立体匹配——介绍,匹配,寻找最佳匹配 Matlab实战_1
  7. 2017.10.11 Problem c 失败总结
  8. 【英语学习】【Level 07】U01 Making friends L1 New kid on the block
  9. GLSurfaceView基础学习笔记
  10. H2O Wave教程---基于浏览器的实时显示工具---教程01