Tag Archives: pygame

用Python和Pygame写游戏-从入门到精通(实战三:植物大战僵尸1)

我们终于把pygame的方方面面都说了一遍,也经过了两个小游戏的洗礼,如果您真的好好学习了每一部分并自动动手演练过,那就是一个很不错的Python游戏开发人员啦! 但是,不得不说我们到现在为止,写的东西都不够酷!pygame就这点能耐么?第一篇介绍pygame的时候,我就说了pygame很适合做一个植物大战僵尸之类的游戏,OK,那么,这次开始我们就来用pygame山寨一个吧哈哈。 游戏介绍就省略了… Read More »

用Python和Pygame写游戏-从入门到精通(实战二:恶搞俄罗斯方块4)

恶搞俄罗斯方块的制造之旅也可以结束了,通过上三次的说明,基本就整遍了整个代码,虽说都说了一些类名和方法名而没有涉及到具体的实现,不过实现就是排列几句代码,大家一定没问题吧:) 揉成一团 总是可以把这几次说的东西放在一起运行了,界面的美化啥的我完全没有做,所以很难看,咱们主要学习的东西是pygame,就不在这上面多花功夫了。 运行界面: 这个是第4种模式的截图,会落下莫名其妙的东西的版本…… 落下个… Read More »

混乱的Python:生命游戏

偶尔在python.cn上看到一篇《谁说使用 Python 你就写不出混乱的代码?》,地址在这里。觉得非常有意思,记得使用Perl的时候,因为其灵活的语法,可以有很优美的代码书写方式,也可以写出非常混乱的代码。而Python,从一开始就致力于消除这种混乱,缩进的结构使得Python代码相对其他语言整齐了许多,刚开始用Python的时候虽然也想过能不能写出乱糟糟的代码,但是一开始就败在缩进上,也就慢… Read More »

用Python和Pygame写游戏-从入门到精通(实战二:恶搞俄罗斯方块3)

我们讲解了俄罗斯方块的各个宏观的部分,这次就是更细致的编程了,不过代码量实在不小,如果完全贴出来估计会吓退很多人,所以我打算这里只贴出数据和方法名,至于方法里的代码就省略了,一切有兴趣的朋友,请参考最后放出来的源文件。 这个是main调用的Tetris类,这个类实现了我们所看到的游戏画面,是整个俄罗斯方块游戏的核心代码。为了明晰,它还会调用shape类来实现当前的shape,下面会讲: class… Read More »

用Python和Pygame写游戏-从入门到精通(实战二:恶搞俄罗斯方块2)

我们接着来做这个整死人不偿命的俄罗斯方块。 代码组织和名词约定 上一次我们稍微整理了一下游戏运行的框架,这里需要整理一下python代码的框架,一个典型的pygame脚本结构如下: 其中,lib为pygame的脚本,游戏中声音、图像、控制模块等都放在这里;而data就是游戏的资源文件,图像、声音等文件放在这里。当然这东西并不是硬性规定的,你可以用你自己喜欢的结构来组织自己的pygame游戏,事实上… Read More »

用Python和Pygame写游戏-从入门到精通(实战二:恶搞俄罗斯方块1)

游戏是为了什么而存在的?Bingo,是为了娱乐~ 在这个最高主题之前,技术啥的什么都无所谓! 前一段时间,有位姓刘的网友用Pygame写了个俄罗斯方块,在用py2exe打包的时候遇到一些问题,和我交流了一下。有兴趣的可以在这里下载,除了代码,打包后的exe文件也一并提供了。 受他启发,这次我们就以俄罗斯方块为主题做一个游戏吧,但是,咱不能走寻常路啊,得把它整的非常有趣才行。记得曾经在网上看到一个搞… Read More »

用Python和Pygame写游戏-从入门到精通(实战一:涂鸦画板2)

趁热打铁赶快把我们这个画板完成吧~ 上次讲Brush的时候,因为觉得太简单把color设置跳过了,现在实际写的时候才发现,因为我们设置了颜色需要对刷子也有效,所以实际上set_color方法还有一点点收尾工作需要做: def set_color(self, color): self.color = color for i in xrange(self.brush.get_width()): for… Read More »

用Python和Pygame写游戏-从入门到精通(实战一:涂鸦画板1)

从这次开始,我会由简单到困难(其实也不会困难到哪里去)讲几个例程,每一个例程都是我自己写(或者修改,那样的话我会提供原始出处)的,都具有一定的操作性和娱乐性。例程中汇尽量覆盖到以前所讲的pygame中方方面面,如果看到哪一步不明白,那就再回去复习复习,基本没有人会看一遍什么都记住什么都掌握的,重复是学习之母,实践是掌握一门技艺的最好手段! 这次就先从一个最简单的程序开始,说实话有些太简单我都不好意… Read More »

用Python和Pygame写游戏-从入门到精通(目录)

目光博客一开始,就有一个将pygame好好介绍一遍的宏伟计划,历时四个月,在各位朋友的关怀鞭策下,如今(2011/8/26)理论学习的部分似乎已经都完成了,在次列一个目录,方便查询。介绍还不是很全,下次有时间补充完整一些。 python.cn也有一个目录在这里,这个系列很多流量都是来自它,表示感谢。 系统学习部分 用Python和Pygame写游戏-从入门到精通(1) Pygame的历史,安装Py… Read More »

用Python和Pygame写游戏-从入门到精通(22)

辛苦啦~ 这次是我们系统的pygame理论学习的最后一章了,把这次的音乐播放讲完了,pygame的基础知识就全部OK了。不过作为完整的教程,只有理论讲解太过枯燥了,我随后还会加一个或更多的实践篇系列,看需要可能也会追加真3D等额外的内容。 就像上次所说的,pygame.mixer并不适合播放长时间的音乐播放,我们要使用pygame.mixer.music。 pygame.mixer.music用来… Read More »

用Python和Pygame写游戏-从入门到精通(21)

紧接着上一次,我们继续来看如何在Pygame中使用声音。 Sound对象 在初始化声音系统之后,我们就可以读取一个音乐文件到一个Sound对象中了。pygame.mixer.Sound()接受一个文件名,或者也可以使一个文件对象,不过这个文件必须是WAV或者OGG,切记! hello_sound = Pygame.mixer.Sound(“hello.ogg”) 一旦这个Sound对象出来了,你可… Read More »

用Python和Pygame写游戏-从入门到精通(20)

声音是游戏中必要的元素之一,音效可以给予用户良好的反馈体验。赛车的时候可以听到振奋人心的启动时的引擎声和刹车时轮胎摩擦声,射击游戏中枪支弹药的音效和呐喊助威的嗓音,无一不是让人热血沸腾的要因。 宛若电影,最初的电影史无声的,而自从1927年第一部公认的有声电影放映之后,人们的娱乐项目一下子丰富了好多;游戏中也是啊,好的配音绝对可以给我们的作品增色不少。这几次就是给我们的pygame作品中增加美妙的… Read More »

用Python和Pygame写游戏-从入门到精通(19)

3D世界 让我们现在开始写一个3D的程序,巩固一下这几次学习的东西。因为我们还没有好好深入如何画3D物体,暂时就先用最简单的投影(上次讨论过的第二种)方法来画吧。这个程序画一个空间里的立方体,只不过各个部分并不会随着距离而产生大小上的变化。 您可以看到,很多的小球构成了立方体的各个边,通过按住方向键,可以水平或垂直方向的更改“摄像头”的位置,Q和A键会把摄像头拉近或拉远,而W和S会改变视距,绿色的… Read More »

用Python和Pygame写游戏-从入门到精通(18)

3D是非常酷的技术,同时也就意味着更多的工作,上次的简单介绍之后,这次还要讲更多2D到3D的新概念。 基于时间的三维移动 我们使用Vector3类来进行3D上的移动,与2D非常类似,看下面一个例子: 直升机A在(-6, 2, 2)的位置上,目标是直升机B(7, 5, 10),A想摧毁B,所以发射了一枚火箭AB,现在我们得把火箭的运动轨迹过程给画出来,否则一点发射敌机就炸了,多没意思啊~~ 通过计算… Read More »

用Python和Pygame写游戏-从入门到精通(17)

最近有些忙,没有更新这个系列,不行啊不行,抓紧更新一篇,这几次可是3D啊3D,多么诱人的词啊…… 游戏通常希望营造一个真实的世界,越接近真实越好啊,这样的代入感会很强。在早期,由于硬件的限制,游戏只能提供一些2D的图像,因为这对于电脑绘图是最容易的。还好随着技术发展,现在的显卡已经可以画出很逼真的3D画面了,所以“硬件杀手”游戏层出不穷,贫困游戏迷的噩梦啊。 在开开心心的继续之前,是不是有记忆力好… Read More »