python3.5 的flappy bird pygame编的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3.5 的flappy bird pygame编的相关的知识,希望对你有一定的参考价值。

python3.5 的flappy bird pygame编的课业作业,小弟实在是不会了,上网查全是python2.0的。求大侠帮帮忙,给点思路也行啊

  总结几个关键词吧,将来如果看到这篇博文,自己还能对当时用到的技术有点印象:
  1. 状态机:重构了游戏代码,主循环使用了状态机分接不同状态,update 游戏逻辑 , 使代码变得清晰利于维护
  2. OBB 碰撞检测:AABB 碰撞检测 无法 达到需求,参考了 OBB 碰撞检测的原理,实现了游戏的碰撞检测
  3. cx_Freeze:python 代码打包 exe ,使用了 cx_Freeze 这个库,这个库非常好用,更难得的是支持 python3
  遇到的问题有:
  1. 没有仔细研究 pygame 如何操作 surface 的 alpha 透明度
  2. cx_Freeze 打包出来的 exe, 在遇到调用 pygame.mixer.music 的 load() 函数时,会报错。没有仔细查原因。
  3. 对 python 语言本身的一些特性不熟悉,一些特性的实现可能并不符合 python 的标准用法。
  总的来说,我对这套代码的质量还算满意,对这个游戏核心玩法的还原度也比较认可。写在这里,记录我第一次用 python 写了个行数较多的,面向对象的程序。
  可惜用 pygame 写出来的东西没法移植到手机,每每想到这一点,就让我觉得这东西实在没啥前途。。我对 python 的理解 可能不够,但是我印象里 python 也是一个解释执行的语言,也可以和 c++ 相互调用,为啥不能在手机上 搞个python 解释器来运行 python 程序 ? 如果 python 解释器是 c++ 写的,python 不能像 lua 等脚本语言一样,内嵌到 手机 开发的 app 里?如果 python 程序可以移植到手机上执行的话, pygame 基于 SDL ,理论上 SDL 也是基于 OpenGL 的,那么理论上 pygame 写出来的游戏,应该也能移植到 手机上 才对。。
  所以说。。我对 python 的理解还是不足,暂时没法从知识上解答上面的几个问题。下个目标还是专心本职工作,学习 ios android 原生开发,更深入的去学习平台跨越性更好的 游戏引擎,争取多写一些 在手机上跑的,完成度最少达到这次写的 flappy bird 的程度的 东西吧。
  主要参考的文章地址是:
  http //simple-is-better.com/news/361
  全部代码以及打包出来的 exe 都上传在这里,给N年后回头看的自己留个念想,也提供给比我更新的手, 想了解 pygame 的人做个参考
  http //download.csdn.net/detail/korekara88730/9416635
参考技术A http://blog.csdn.net/flyfish1986/article/details/53885465
Windows环境下搭建机器学习玩flappy bird(1)
代码下载:https://github.com/yanpanlau/Keras-FlappyBird
这个是可以在python3下运行的,需要修改的地方
(1)提示错误TabError: inconsistent use of tabs and spaces in indentation,说空格和tab键混用,把FPSCLOCK.tick(FPS)改为空格就好了
File "game\wrapped_flappy_bird.py", line 144
FPSCLOCK.tick(FPS)
(2)注释以下两行,因为没用到和已经改为from keras import initializers了

# from keras import initializations
# from keras.initializations import normal, identity
(3)如果import flappy_bird_utils
出现红色,因为是自定义包的关系(也可上网百度如果去掉红线),不影响运行。
参考技术B 老师没有给例子吗?追问

只教了class 和 list

然后就让我们下个pygame自己练

参考技术C 把py2的照着改一下不就好了追问

不会改啊,没学过

以上是关于python3.5 的flappy bird pygame编的的主要内容,如果未能解决你的问题,请参考以下文章

vb写程序:flappy bird

谁能帮我用processing做出flappy bird

Flappy Bird (Java实现)

自主学习Flappy Bird游戏

4 flappy bird

强化学习DQN:Flappy Bird实例分析