Pygame

在做这个游戏教程之前,我想了许久,觉得到底应该怎么做这个教程,是把每一个代码给大家讲清楚,还是直接讲如何去使用,后来我想了想,我自己也学习过许多的教程,给我最大的感受就是前期讲得太多,我完全记不住,过程太过无趣,所以我才想以项目入手,让大家感受pygame的乐趣,如果想要了解更多的内容,可以自己先去pygame的使用手册去查询,后续我也会通过项目去让大家学习更多

更要说的是,每个人的编程思维都不一样,有后有坏,如果你有更好的想法可以提出来,我们一起学习

简介

Pygame 简单理解,就是可以用他来做游戏,他相当于Python的一个库,Python有许多许多的库,每个库都有自己的功能,而它的功能就是做游戏

当然pygame需要安装,最简单的方法就是利用pip安装,这个太简单,或者是利用pycharm进行安装

Pygame的实际教程:

游戏是怎么形成的,他是根据图层的切换让你有种快速刷新的感觉,认为人物在进行移动,就像我们小时候的图层书,只要你翻的够快,就能让图像真正的动起来

详情请看飞机大战的演示

  1. 会移动超级玛丽

真正在做一个游戏之前,我们需要做一个环节示例

在网上选择一张你喜欢的背景图片和一个角色图,我们开始做

窗口

例如,我的就是这样,我的代码就在py里面写,

# 1,第一步,要用这个库肯定是先导库

import pygame

# 2,初始化方法,简单理解要用他得先初始化

pygame.init()

# 3,做游戏最重要的是什么,肯定是窗口,你连窗口都没有怎么玩

# 后面填的是列表,就是你要的分辨率

pygame.display.set_mode((400 ,400))

# 然后我们还得刷新,才能出来页面

# 以下两个都是刷新,不过filp只是会第一次刷新,而update则会一直刷新

# 二者选一即可
pygame.display.flip()
pygame.display.update()

如果你在安装了Python并配了环境变量的情况下,你可以用黑窗口运行了

注意到你的文件目录下

你会看见一个黑窗口一闪而过,那是因为Python从上到下执行完了所有程序,自然会关闭

那我们就要让代码永远不会停掉,直到我们强制性停止程序

加上while true,他就进入了死循环

这时再运行,你会发现你无法点击上面的x结束页面

而是要点击黑窗口的x才能结束

结束游戏

对于pygame来说,每一个点击都是一种事件,包括键盘,包括鼠标

而我们的鼠标点击刚好就是一个事件

此时你在点击窗口,就可以关闭了

添加一个角色

person = pygame.image.load('bgpic.png')

screen.blit(person,(200,200))

结果:

移动角色

此时你执行完下面的代码后,你会发现他会往下跑,并且留下残影

我们的窗口是由x,与y组成的,左边和上面都是0,右边和下面是你设置的窗口最大值,也就是,最下面最右面就是400.400

screen = pygame.display.set_mode((400 ,400))

此时先说明残影的问题,那是因为他每隔1就会画一个角色,之前的角色我们并没有清除,这个时候就留下残影了

要解决的话也很简单。我们可以设置一个填充画面,每次画完一个新的主角后,我们就填充一个,通过快速的循环,是可以做出这样的效果的

填充背景

每次填充后,就会绘制一个主角,然后再填充覆盖掉以前的角色,这样我们就将完成了这个要求

If控制角色

角色的控制,要求他到达最下面的时候,又往上跑,到达最下面的时候又往下跑,这个我们要通过if来实现

这段代码还是很好理解的,当他到达最下面的时候speed= -1,这样就是每次-1了,就会往上走了

此时会有一个小问题,就是这个角色会到屏幕外面去

解决方法就是我们要用这个背景的长度,减掉角色的长度

可以看出角色的长度是246.

这样就完美解决了这个问题

此时我们发现主角太大了,pygame提供了缩放图片的方法

缩放图片

新问题来了,小是小了,但是他不会到最下面去了,因为我们的是if y > 400 - 246:

现在他的长已经不是246了,我们缩放是按照小数缩放的,我现在也不知道他是多大了,还好Python提供了获取大小的方法

获取大小

他返回的是两个参数,第一个是x,第二个你猜是什么

此篇教程就结束了,你可以删掉代码,自己重做一遍加上自己的想法,留个小问题,我们如何让他上下的更慢,评论区见

十分钟利用python_pygame做个小游戏_01相关推荐

  1. python做一个小游戏_利用python做个小游戏

    从本期开始,我们将利用几天的时间用python来做个小游戏,当然,在做小游戏之前,我们必须学会一个做小游戏的第三方库--pygame.可能有人会说,python不擅长或者说不适合用来做游戏,的确是这样 ...

  2. 教你用十分钟编写一个贪吃蛇小游戏

    贪吃蛇,大家应该都玩过.当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎.今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最主要 ...

  3. 利用python做一个小游戏_如何使用python做一个简单的猜数字的小游戏

    1 首先小编先打开IDLE,如下图: 2 然后这里点击菜单栏的'File',然后点击菜单"New File",如下图: 3 然后我们就在idle中新建了一个python文件,如下图 ...

  4. python手机版做小游戏代码大全-Python大牛手把手教你做一个小游戏,萌新福利!...

    原标题:Python大牛手把手教你做一个小游戏,萌新福利! 引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规 ...

  5. python拼图_利用python制作拼图小游戏的全过程

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 关注公众号:Python学习指南,回复"拼图"即可获取源码 环境搭建 安装P ...

  6. 利用原生js制作小游戏

    1.编写函数: 该函数对游戏间隔时间.影响游戏的对象的绑定.开始.结束进行编写 /*** * @param {*} duration 间隔时间* @param {*} thisObj 绑定的this对 ...

  7. 仿照贪吃蛇大作战的原型做的小游戏

    仿照贪吃蛇大作战的原型做的小游戏,通过摇杆移动小蛇,吃掉食物可以增加身体的长度.有加速功能,还有不太智能的AI电脑. 文件:590m.com/f/25127180-493401547-1ed8d3(访 ...

  8. html做的小游戏,用Html做一个“快乐鸟”小游戏

    入门学习前端的时候做了这么一个简单的小游戏,为了将自己所学到的知识运用起来. 这里可以看出还是有BUG的,死亡动画不是在死亡的瞬间触发 做这个小游戏用到了: html css jQuery 然后这个小 ...

  9. 使用PixiJS做一个小游戏

    PixiJS PixiJS使用WebGL,是一个超快的HTML5 2D渲染引擎.作为一个Javascript的2D渲染器,Pixi.js的目标是提供一个快速的.轻量级而且是兼任所有设备的2D库. 官方 ...

最新文章

  1. python【数据结构与算法】PriorityQueue and Huffuman树
  2. lucene源代码学习之 lucene的经典打分过程
  3. GPU神经网络和JAVA神经网络速度对比
  4. 《闪耀暖暖》可增加“心之门”爆闪耀的方法?网友:巧合罢了
  5. mac无法访问samba共享 提示输入用户名密码
  6. 基于SpringBoot+mybatis+layui就业管理系统设计和实现
  7. 好文推荐 | 从数据的属性看数据资产
  8. [有限元] Ansys Workbench Mechanical 中的应力应变显示类型的文档翻译
  9. webClient请求JAVA超时解决方案
  10. Java 集合系列 16 HashSet
  11. 网站繁简体切换(二)
  12. Android 四大组件学习之Service五
  13. Sublime中使用livereload插件实时预览html文件
  14. c语言指针 汇编间接寻址,C语言指针和汇编语言间接寻址的关省略探讨从存储空间图的视角加以分析.pdf...
  15. 2300专项:D. Stressful Training(二分 充电)
  16. linux越狱时手机怎么进入dfu,iPhone12如何进入DFU模式?IPhone12进DFU教程
  17. 文件共享——HHFM
  18. 智慧零售企业向服务升级进行时,全面实时监控成重点
  19. 计算机毕业设计springboot交通违章管理系统的设计与实现s7830源码+系统+程序+lw文档+部署
  20. 【Lintcode】125. Backpack II

热门文章

  1. ubuntu18 将/目录挂载到/home 目录下导致无法正常启动
  2. 每天复习Shell —cat,tail,head
  3. C语言实现查找一组数中的最大和最小值
  4. 计算机1级 英语怎么说,计算机1级考试全称是什么
  5. python电商数据预处理
  6. Linux常用命令总结(建议收藏)
  7. 高斯核函数初始化邻接矩阵_转:谱聚类(spectral clustering)原理总结
  8. 【华为机试题 HJHJ100】等差数列
  9. Johnson–Lindenstrauss Lemma(2)attention
  10. PHP html生成pdf 并且加上电子骑缝章