Category Archives: Python

用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 »

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

这又是Pygame教程系列的一个——OVA篇,类似于py2exe篇一样,额外写的,也许不是pygame游戏开发必须的东西,但是知道了绝对大有裨益。因此友情大放送~ 看pygame模块介绍的时候,细心的人会发现有一个pygame.sprite模块,而在讲动画的时候,虽然引入了精灵这个概念,却没有使用这个模块。在官方文档上也说了,这个模块是轻量级的,在游戏开发中也未必要使用。讲解动画的时候为了避免太多… Read More »

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

经历了长年的艰苦卓绝的披星戴月的惨绝人寰的跋山涉水,我们终于接近了AI之旅的尾声(好吧,实际上我们这才是刚刚开始)。这一次真正展示一下这几回辛勤工作的结果,最后的画面会是这个样子: 下面给出完整代码(注意需要gameobjects库才可以运行,参考之前的向量篇):

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

在继续我们的AI之旅前,分享一个在煎蛋上看到的有趣新闻,能通过读说明书来学习的AI,这个世界真是变得越来越不可琢磨啦!机器人很快就要超越咱了…… 因为这一次是接着上面的内容的,所以请不要跳过直接看这里。 哭!!!写完了上传出错,丢失啊,重伤重写~~~~~~~~~~~ 蚂蚁实例类 在我们正式建造大脑之前,我们得先做一个蚂蚁类出来,就是下面的这个,从GameEntity继承而来:

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

上一次稍微说了一下AI,为了更好的理解它,我们必须明白什么是状态机。有限状态机(英语:finite-state machine, FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。太抽象了,我们看看上一次的机器人的状态图,大概是长的这个样子: 状态定义了两个内容: 当前正在做什么 转化到下一件事时候的条件 状态同时还可能包含进入(entry)… Read More »

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

我们已经学习了游戏的图像和输入编程,接下来是什么?声音?没错,不过我们要晚一点再说声音。游戏中还有什么那么重要?哦是的,趣味性。 游戏的趣味是游戏生命的重要组成部分,其重要性甚至凌驾于任何元素,包括画面之上,之所以大家不太想得到,是因为这是个比较难定量的东西,难以直接用个什么方法测量出来。那么支持游戏趣味的是什么呢?是规则和智能。 规则是游戏的玩法,比如围棋,尽量扩大自己的领地;比如俄罗斯方块,把… Read More »

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

按照原计划,这次是要讲解手柄的,pygame有着良好的控制手柄支持pygame.joystick,不过…… 我们暂时的目标是制作小游戏,小游戏晚了不少感觉使用手柄的好像还没看到过,用了感觉实在有些高深了。 有鉴于此,这一章先保留,后期需要的话再追加。绝对不是偷懒!真的,我很勤快的,真的不是偷懒~~ >> 用Python和Pygame写游戏-从入门到精通(13)  

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

上次我们说明了使用键盘操作游戏,键盘是非常古老的输入设备,甚至笔计算机本身都要古老的多,因为它发源于打字机,貌似1868年就有成熟的打字机问世了。不得不说的是,现在最常用的键位排部,并不是最科学的,相比上一次说过的DUORAK键盘,打字者的手指平均每日运动1英里,而QWERTY则是12到20英里。当然这对游戏毫无意义…… 相比而言,鼠标非常的年轻,世界上最早的鼠标诞生于1964年,它是由美国人道格… Read More »