2D的跑酷游戏有很多,著名的例如Chrome的彩蛋小游戏,手机上的天天酷跑等。

打开Chrome浏览器输入 chrome://dino/,按空格激活彩蛋

这篇文章来分析一下这类横版跑酷游戏的主角奔跑,跳跃,二段跳还有滑动的原理,说白了就是如何控制主角, 以及pygame中资源的加载。

游戏的资源

一般情况下,游戏加载音频和图片资源就够了。音频主要是背景音乐和游戏音效。比如跳跃的音效,吃金币的音效,撞墙的音效等。

游戏画布

pygame中游戏画布以左上角为原点(0, 0),往右为x轴正方向,往下为y轴正方向。不同的库,坐标系有可能不同,文中以下部分有关坐标的改变皆以pygame的坐标系做参考。

基础地面高度

定义一个基础的地面高度,base_height,主角的在此高度上运动。

主角坐标

定义主角的位置(x, y)时,这里指主角资源图片的左上角在画布上的位置,y值是base_height 加上主角的高度, x值可以自定义。主角运动时,x值并没有改变,是场景内的其他资源在往左移动,所以造成主角一直向前的错觉。

奔跑

奔跑状态时,主角的位置并没有改变,只是在不停的切换图片,就像视频是由一帧帧的图像组成的一样,快速的切换图片,就可以造成主角奔跑的样子。

滑动

主角的奔跑状态改为滑动状态,需要注意的是,只能从奔跑状态切换至滑动状态,不能由跳跃状态切换至滑动状态,滑动是只是把主角的图片切换成了滑动的图片。

跳越

主角的奔跑状态改为跳跃状态,跳跃时会改变主角的y值,由于是往上,所以y值是减少的。跳跃的状态分为上升和下降,上升时,主角的y值减少,减少的速度越来越慢,下降时,下降的速度越来越快,来模仿重力的作用。

做法就是 定义上升速度,下降速度、加速度和跳跃状态四个值。前三个速度值用来跳跃时y值减少,状态值记录是上升还是下降。

当上升时,上升速度减去加速度,然后主角的y值减去上升速度,这样y值在一直减少,但是每次减少的值越来越少,直到上升速度小于等于0, 主角开始下降。

下降时,下降速度的初始值为0,下降速度加上加速度,主角的y值加上下降速度,y值在一直增大, 直到主角的底部y值等于base_height, 切换为奔跑状态。

二段跳

当主角为跳跃状态时,再次跳跃才可触发二段跳。触发时把跳跃状态置为上升,再次定义上升速度。

代码已上传至

coderShenhy/python-games​github.com


重新发布于2020.05.11,之前不知道是不是手滑把之前的文章给删除了。前段时间一直在赶项目,也就没时间去写文章,在此先给大家道个歉,之后会努力更新。

pygame做的著名游戏_用python写游戏之2D跑酷游戏(一)相关推荐

  1. 用python写跑酷游戏脚本_用python写游戏之2D跑酷游戏(二)

    这篇文章介绍2D跑酷游戏中,添加地板资源, 给主角附加重力作用,以及添加游戏控制器和游戏场景的切换. 废话不多说,直接开始. 添加地板资源 定义地板类,继承自pygame.sprite.Sprite ...

  2. python游戏彩蛋_用python写游戏之2D跑酷游戏(一)

    2D的跑酷游戏有很多,著名的例如Chrome的彩蛋小游戏,手机上的天天酷跑等.打开Chrome浏览器输入 chrome://dino/,按空格激活彩蛋 这篇文章来分析一下这类横版跑酷游戏的主角奔跑,跳 ...

  3. 我的世界python写游戏_用python写游戏之 Give it up

    <永不言弃 Give It Up>,这是一款极具虐心色彩的音乐题材闯关游戏. 这篇文章就来分析这款游戏原理,并用python写出来一个简易版.废话不多说,直接开始分析. 游戏元素,暂且把主 ...

  4. python小游戏源码-Python小游戏之300行代码实现俄罗斯方块

    Python小游戏之300行代码实现俄罗斯方块 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: Python小游戏之300行代码实现俄罗斯方块.txt ] (友情提示:右键点上 ...

  5. python开发游戏引擎_用Python写3A?Cygames的游戏引擎做得怎么样

    有句话叫"二流的游戏公司做游戏,一流的游戏公司做平台".索尼.任天堂.微软这些主机公司,除了推出第一方游戏以外,当然也在维护自家的游戏系统. 其实,以<公主连结RE:Dive ...

  6. python实现图片找不同游戏_用Python实现谷歌的小恐龙游戏

    (给Python开发者加星标,提升Python技能) 来源: Charles的皮卡丘-白露未晞me理 谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个"小恐龙游戏". ...

  7. java小恐龙游戏_用Python实现谷歌的小恐龙游戏

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个"小恐龙游戏&quo ...

  8. python实现消消乐游戏_用Python写个开心消消乐小游戏

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 提到开心消消乐这款小游戏,相信大家都不陌生,其曾在 2015 年获得过玩家最喜爱的移动单机游戏奖,受 ...

  9. python制作贪吃蛇游戏_用Python写贪吃蛇游戏的代码实例

    这篇文章主要为大家详细介绍了Python贪吃蛇游戏的编写代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近在学Python,想做点什么来练练手,命令行的贪吃蛇一般是C的练手项目,但是一时之间 ...

最新文章

  1. linux写程序四则运算,Shell编程之变量及四则运算
  2. mysql索引优化实际例子_MySQL索引优化的实际案例分析
  3. CentOS7 安装管理KVM虚拟机
  4. 61850协议服务器端开发,基于IEC61850标准的服务端程序的设计与实现
  5. 优盘中发现计算机病毒怎么办,u盘中毒了文件夹被病毒隐藏怎么办?
  6. php 覆盖写入txt文件内容,PHP使用内置函数file_put_contents覆盖写入文件及追加内容的方法...
  7. 电子表格计算机时间格式,在Excel表格中输入日期的五种方法与技巧
  8. banne图怎么设计才会有更多的点击率
  9. win10任务栏怎么还原到下面_全面win10系统任务栏怎么设置成透明呢?
  10. ChatGPT套壳网站汇总-5月22日更新
  11. 2023二建建筑施工备考第二天Day06水泥
  12. EPLAN 接线端子
  13. oracle 删除数据
  14. 武汉大学和厦门大学计算机,武汉大学和厦门大学谁更强,为什么有人说这两所大学名气大于实力...
  15. 163邮箱自动化登录实现模块化【3】
  16. 微信群打卡小程序_用微信小程序“小打卡”,打造免费的阅读平台!
  17. 2018年诺贝尔物理学奖揭晓:美法加三名科学家因激光物理获奖
  18. argparse简化版图片教程
  19. 周杰伦已经江郎才尽了!
  20. MATLAB神经网络语音去噪-学习笔记

热门文章

  1. ADPRL - 近似动态规划和强化学习 - Note 5 - Banach Fixed Point Theorem in Dynamic Programming
  2. 权威解释IDEA的“Include in project build”打钩或者不打勾有啥区别?
  3. 在Ubuntu 14.04 64bit上安装numpy和matplotlib库
  4. 使用C++ stringstream来进行数据类型转换
  5. chrome 硬件渲染(GPU Accelerated Compositing in Chrome)
  6. SparkSQL和Hadoop(面向数据科学家和大数据分析师)
  7. 从头开始学习Unity着色器
  8. 如何向非技术人员解释“稀疏傅里叶变换”算法?
  9. static String valueOf(XXX xxx)
  10. Java - 框架之 SpringBoot 攻略day01