pygame开发的游戏放在微信小程序,pygame开发的游戏占用GPU和CPU资源很高
简介博客是笔记本的一种,刚开始,尝试记录自己最近学到的东西。最近想开始学Python。因为我觉得Python是一门很有意思的语言。我一直想学习。它的功能非常强大,可以用于科学计算、数字图像处理或任务自动化。另外,你也可以建立一个动态网站。如果你多听,你会有有趣的领悟。你可以找到更多关于Python的信息,但这里我就不赘述了。
当你开始学习一门新的编程语言时,很多童鞋会马上说:“嗯,我哥在买书!”你可能会想。结果大部分书我都买了,都是枯燥的语法知识,看完就忘了过去,工作也少了。我记得一个朋友曾经告诉我,他想学习新技术。从项目一开始,这句话就很值得思考。(服气)))所以!言归正传!让我们玩一个小游戏。熟悉Python语法,不怕被锁在自己家里~
Python的库是Python的重要组成部分,你可以用这些库实现很多功能。我们的目标是在pygame上实现小游戏!那到底是什么?找准方向!就是在PC端打微信平面战。这款游戏模型简单,功能清晰,界面简洁,符合我们的预期目标。不过,我想在这里重申一下,这个想法不是我想出来的。是在github上找到的,附上了地址。PyShootGame(使用的资源也在这里。看吧。
最后,本系列博文使用Python 3.3.5 + pygame 1.9.2a0。我就不比较Python 2.x和3.x版本了,但是能理解其中的含义就不错了。我记得Python的pygame版本~
本文开头~ 1。准备工作1.1 Python是你安装pygame首先需要做的事情。做pygame最简单的方法就是从官网下载。但是现在有问题了。官网列出的pygame版本似乎只针对Python 2.5/2.6/2.7/3.1/3.2。如果你的Python版本大于3.2怎么办?关于堆栈溢出,我哥哥说,“MainpyGamePageseem似乎是StoberarelyUpdated。”每个人都笑了,好像他们明白了什么。“去做这个下载。(附:bitbucket.org/pygame/pygame)“这里的版本似乎比官网更新更频繁。因为版本号写的很清楚,需要什么就拿什么也可以~
最后,确定自己安装正确~
如果ImportPyGamePrint(pygame . ver)1 . 9 . 2 A0不报错,应该已经安装了~
如果误找不到模块,很可能是安装版本。
找不到指定得模块.
1.2 pygame文档路径pygame的文档还在。当我们在使用中遇到问题时,先看文档,会解决很多问题。
Pygame文档:%您的Python安装路径%/Python/lib/site-packages/pygame/docs/index . html
(不同版本的Python和pygame文档可能有不同的位置。我只是把自己的路径贴在这里,请大家作为参考。安装完库后,请在你的Python安装路径中寻找;如果太麻烦,还有在线文档。附上www.pygame.org/docs/.
pygame有什么样的模块?Docs还提供了:
http://www。Sina.com/http://www.Sina.com/pygame . bufferproxyanarrayprotocolviewofsurfacepixelspygame . cdrohowtoaccessandcontrolhecdaudiodevices . pygame . colorcor colorcoracetid lingcursorimages . pygame . displayconfigurethedisplaysurface . pygame . drawingsimpleshaper to surfaces . pygame . eventmant devices sandthewindwingplatform . pygame . examples
ces . py game . gfxdraw抗锯齿绘制函数. frame rate加载、保存和传输表面. py game . joystick管理游戏杆设备. frame rate管理键盘设备. pygame.localsPygame常量. pygame.mixer加载并播放声音pygame . mouse管理鼠标设备和显示. pygame.movieVideo播放MPEG电影. pygame.mixer.musicPlay流式音乐曲目. py game . overlay访问高级视频覆盖图. pygame顶级函数管理py game . pygame . pixela gamepygame。变换、调整大小和移动图像。介绍很直观,这里就不多解释了。模块提供相对直接的操作(仅相对),比如粘贴一张图片;它还提供了更高抽象层次的操作,比如sprite。反正我们有个大概的了解,用什么,再仔细研究相关的东西。
2.我们的第一个任务3354添加游戏背景2.1在加载背景之前,我们是不是先有一个窗口?做吧~ 1导入pygame #导入pygame库2从pygame.locals导入* #导入pygame库中的一些常量3从sys导入退出#导入sys库中的退出函数4 5 #定义窗口的分辨率6 screen _ width=480 7 screen _ height=640 8 9 #初始化游戏10 pygame.init() #初始化py game 11 screen=py game . display . set _ mode([screen _ width, SCREEN_HEIGHT]) #初始化一个窗口12pygame.display.set _ caption(这是我的第一个pygame-program) #设置窗口标题13 14 #事件循环(主循环)15同时为真:16 17 #处理游戏退出18 # Recycle 19 for Event in pygame . Event . get():20 if Event . type==pygame . quit:21 pygame . quit()22 exit()程序运行结果:
虽然天黑了,我也不知道我能做什么,但我终于迈出了第一步~
2.2接下来要着重说明程序的几个部分:line 2:pygame.locals模块包含了pygame需要的很多常量,比如set_mode中窗口的标志,消息事件的类型等等。另外,如果程序想在pygame.locales模块中使用pygame的常量,只能使用“从pygame.locals导入*”。
line 3:Python简单性的一个体现是导入您需要的任何函数。这里我们需要使用exit函数来关闭窗口,只需从sys库导入即可。
line 5:背景图的分辨率其实是480*800,但是我的电脑屏幕分辨率只有1280*800,所以暂时改成“短”。
line 10:pygame.init()将初始化所有导入的pygame模块。但是,当模块中出现错误时,该函数不会抛出异常。相反,init()将返回一个元组,包括成功初始化的模块数量和有错误的模块数量。在这个例子中,可以看到由输出init()返回的信息,
================================================
line 11:set _ mode()函数将创建一个显示面板(表面),它有三个参数。第一个是表面的分辨率,也就是窗口的大小。如果没有输入或者设置为(0,0),系统会将surface的分辨率设置为当前的屏幕分辨率(pygame使用SDL版本1)第二个是flags,这是所选surface的显示模式。请参见以下列表:
#pygame。创建一个全屏显示#pygame。推荐HWSURFACE或OPENGL#pygame使用DOUBLEBUF。HWSURFACE硬件加速,只在全屏#pygame。OpenGL创建一个OPENGL可渲染显示#pygame。可调整大小的显示窗口应该相当大# Pygame.no frame显示窗口将没有边框或控件第三个参数是位深度,即使用多少位来表示颜色。该文件建议不需要设置该参数,系统将选择最佳值。
line 15:在我们的主程序中,我们需要一个事件循环来不断检测用户在交互过程中的动作。pygame.event.get()方法可以从事件队列中获取所有事件的列表。我们使用一个循环不断地检测每个事件。一旦我们发现退出事件,我们退出游戏并关闭窗口。还有一点值得思考。如果我们不设置退出操作,我们的黑窗会变成什么样?结果是,当我们点击窗口右上角的红叉时,程序仍然可以检测到quit事件,但是窗口不会关闭,因为我们没有为它设置任何相关操作。
2.3正式加载背景有了以上的知识,我们已经大致了解了程序的框架,接下来进入正题!加载背景图~
注意,我们可以只添加几个语句~ ()
导入pygame #从pygame.locals导入pygame库导入* #从sys导入退出# sys库中导入退出函数#定义窗口的分辨率screen _ width=480 screen _ height=640 #初始化游戏pygame.init() #初始化py game screen=py game . display . set _ mode([screen _ width, SCREEN_HEIGHT]) #初始化窗口pygame.display.set _ caption(这是我的第一个pygame-program) #设置窗口标题#加载背景图片background=py game . image . load( resources/image/background . png )# new #事件循环(主循环)while True:# draw background SCREEN . blit(background,(0,0)) # new #更新屏幕pygame.display.update() # new #处理游戏退出# get for event in py game . event . get():if event . type==py game . quit
我们在原程序中添加了三条语句。第一句是加载背景图片,resources文件夹要和你的py文件放在一起。第二句是用来画图像的,surface.blit()是一个很常见的函数。第一个参数是图片资源,第二个参数决定图片放在哪里(左上角的坐标);第三个语句是更新屏幕,也就是“刷”一下绘制的背景。再来说一点pygame.display.flip()和pygame.display.update()。文件称,该更新更像是flip的优化版本。主要区别在于flip是屏幕的整体刷新,而update是部分刷新。最后考虑一个问题。如果我们把最后两条新语句移到while循环中会怎么样?在这个演示中不会有明显的影响,但当我们将来在屏幕上添加其他图像元素时,只要执行更新操作,背景图像就会消失。
某博主认真翻译了pygame的模块介绍,并附上地址:eyehere.net/2011/python-pygame-novice-professional-1/.
总结:第一次写博客感觉好累(/t t)/
转载于:https://www.cnblogs.com/wuzhanpeng/p/4261015.html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。