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

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

3D世界

让我们现在开始写一个3D的程序,巩固一下这几次学习的东西。因为我们还没有好好深入如何画3D物体,暂时就先用最简单的投影(上次讨论过的第二种)方法来画吧。这个程序画一个空间里的立方体,只不过各个部分并不会随着距离而产生大小上的变化。

您可以看到,很多的小球构成了立方体的各个边,通过按住方向键,可以水平或垂直方向的更改“摄像头”的位置,Q和A键会把摄像头拉近或拉远,而W和S会改变视距,绿色的三角是视距和视角的示意图。fov角大的话,立方体就显得比较短,反之就显得比较长。

代码稍微有点长,下面有解释,静下心来慢慢阅读。

上面的例子使用Vector3来管理向量数据,点的存储是按照z坐标来的,这样在blit的时候,离摄像机近的后画,就可以覆盖远的,否则看起来就太奇怪了……

在主循环的代码中,会根据按键摄像头会更改位置——当然这是用户的感觉,实际上代码做的是更改了点的位置。而3D的移动和2D是非常像的,只不过多了一个z来判断覆盖远近(也就是绘制顺序),一样的基于时间移动,一样的向量运算,只是由Vector2变为了Vector3。

然后代码需要绘制全部的点。首先,点的位置需要根据camera_position变量校正,如果结果的z比0还大,说明点在摄像头之前,需要画的,否则就是不需要画。y需要校准一下方向,最后把x、y定位在中间(小球还是有一点点尺寸的)。

留下的代码是给出信息的,都是我们学习过的东西了。

如果想好好学习,把立方体换成其他的图像吧!改一下更能加深印象。

3D第一部分总结

3D是迄今为止游戏发展中最大的里程碑(下一个会是什么呢?虚拟体验?),我们这几次学习的,是3D的基础,你可以看到,仅有2D绘图经验也能很方便的过渡过来。仅仅是Vector2→Vector3,担任3D向量还是有一些特有的操作的,需要慢慢学习,但是基本的思想不会变。

但是,请继续思考~ 难道所有的3D游戏就是一系列的3D坐标再手动转换为2D画上去就好了?很可惜或者说很幸运不是的,我们有3D引擎来做这些事情,对Pygame来说,原生的3D处理时不存在的,那么如何真正绘制3D画面?有一个非常广泛的选择——OpenGL,不了解的请自行Wiki,不过OpenGL并不是Pygame的一部分,而且3D实际做下去实在很繁杂,这个系列就暂时不深入讲解了。

尽管有3D引擎帮我们做投影等事情,我们这几次学的东西绝对不是白费,对基础的一定了解可以更好的写入3D游戏,对画面的掌握也会更好。如果有需要,这个系列的主线完成后,会根据大家的要求追加讲解OpenGL的内容。

接下来开始讲解Pygame中的声音,基本游戏制作的全部知识我们都快学习完了:)

PythonPygame游戏-入门精通 中文pdf版本 部分目录如下: 系统学习部分 用PythonPygame游戏-入门精通(1) Pygame的历史,安装Pygame,第一个Pygame脚本 用PythonPygame游戏-入门精通(2) 理解游戏中的事件 用PythonPygame游戏-入门精通(3) Pygmae的屏幕显示 用PythonPygame游戏-入门精通(4) 使用字体模块,Pygame 的错误处理 用PythonPygame游戏-入门精通(5) 像素颜色 用PythonPygame游戏-入门精通(6) 使用图像,理解Surface 用PythonPygame游戏-入门精通(7) 绘制图形 用PythonPygame游戏-入门精通(8) 产生动画控制帧率 用PythonPygame游戏-入门精通(9) 向量基础 用PythonPygame游戏-入门精通(10) 用户输入 用PythonPygame游戏-入门精通(11) 使用鼠标控制精灵。一个在鼠标旁不断游动的小鱼的例程。 用PythonPygame游戏-入门精通(12) 手柄操作,暂无 用PythonPygame游戏-入门精通(13) AI初探 用PythonPygame游戏-入门精通(14) 状态机 用PythonPygame游戏-入门精通(15) 开始AI编程 用PythonPygame游戏-入门精通(16) AI编程总结。一个蚂蚁采集食物,攻击蜘蛛的系统模拟例程。 用PythonPygame游戏-入门精通(17) 3D基础 用PythonPygame游戏-入门精通18) 3D中的概念 用PythonPygame游戏-入门精通(19) 第一个 3D 程序(伪)。一个空间中的3D立方体的例程。 用PythonPygame游戏-入门精通(20) 声音原理 用PythonPygame游戏-入门精通(21) 使用声音,播放音效。一个重力模拟金属球碰撞的例程。 用PythonPygame游戏-入门精通(22) 播放长时间的背景音乐。一个建议播放器的例程。 额外提高部分 用PythonPygame游戏-入门精通(py2exe编) 使用py2exe将pygame脚本转换为exe可执行文件 用PythonPygame游戏-入门精通(Sprite篇) 介绍Pygame中不是必须但又很重要的Sprite模块,游戏中的角色实现,大多都要靠它。 实践部分 用PythonPygame游戏-入门精通(实战一:涂鸦画板1) 一个类似于Windows画图板的小玩意儿,精简了很多功能但是有更帅的笔刷。这一次主要是将笔刷的实现。 用PythonPygame游戏-入门精通(实战一:涂鸦画板2) 加上了按钮,我们的涂鸦画板可以用了! 用PythonPygame游戏-入门精通(实战二:恶搞俄罗斯方块1) 俄罗斯方块,却有不是普通的俄罗斯方块。 用PythonPygame游戏-入门精通(实战二:恶搞俄罗斯方块2) 代码构架 用PythonPygame游戏-入门精通(实战二:恶搞俄罗斯方块3) 实现说明 用PythonPygame游戏-入门精通(实战二:恶搞俄罗斯方块4) 完成,提供下载 用PythonPygame游戏-入门精通(实战三:植物大战僵尸1)
### 回答1: 《Python Pygame 游戏 -入门精通.pdf》是一本关于使用Python语言Pygame库编游戏的书籍。Python是一种简单易学的编程语言,具有丰富的库工具,非常适合初学者入门。而Pygame是为了方便开发2D游戏而设计的库,提供了丰富的函数类,可以帮助开发者轻松地创建游戏。 这本书的目标是帮助读者从游戏开发的基础知识入手,逐步了解PythonPygame的使用方法,并逐渐提高到精通水平。书中按照渐进式的学习方式,从基本的Python语法开始介绍,然后逐步引入Pygame库的功能特性。读者可以学习如何创建游戏窗口,绘制图形精灵,处理用户输入,实现游戏逻辑等。 此外,书中还涵盖了一些高级的游戏开发技术,比如碰撞检测、音效处理、动画效果物理模拟等。通过学习这些内容,读者将能够掌握更多复杂游戏的开发方法,并能够自己设计实现自己的游戏。 总的来说,《Python Pygame 游戏 -入门精通.pdf》是一本适合初学者有一定编程基础的读者学习游戏开发的书籍。读者可以通过学习这本书,掌握使用PythonPygame开发游戏的基本技能,从而进一步提升自己在游戏开发领域的能力。 ### 回答2: 《Python Pygame 游戏-入门精通》是一本关于使用Python编程语言Pygame游戏开发库来编游戏的指南。它逐步介绍了从入门精通的过程,并教会读者如何利用PythonPygame创建自己的游戏Python是一种简单易学的高级编程语言,被广泛应用于各种领域,包括游戏开发Pygame是一个基于Python的库,专门用于开发2D游戏。它提供了许多功能强大的工具函数,可以帮助开发者处理游戏图形、声音、输入等方面的内容。 《Python Pygame 游戏-入门精通》一书首先向读者介绍了PythonPygame的基础知识,包括安装配置开发环境以及PythonPygame的基本语法功能。然后,它逐渐深入探讨了游戏开发的不同方面,包括游戏循环、图形绘制、碰撞检测、游戏物理等。书中使用了大量的示例代码实际案例来帮助读者理解应用所学知识。 通过学习《Python Pygame 游戏-入门精通》,读者将获得从入门精通游戏开发技能。他们将学会创建各种类型的游戏,从简单的益智游戏到复杂的角色扮演游戏。此外,书中还提供了一些高级技巧技术,如使用人工智能网络功能来增强游戏体验。 总之,这本书是一本全面而深入的学习资源,适合那些希望利用PythonPygame开发游戏的初学者有经验的开发者。它将引导读者从零开始掌握游戏开发的基本技能,并帮助他们创建自己的精彩游戏作品。 ### 回答3: 《PythonPygame游戏-入门精通.pdf》是一本专门介绍如何使用Python及其游戏开发Pygame来编游戏的书籍。 Python是一种高级编程语言,易于学习使用。它具有简洁的语法丰富的标准库,可以进行各种编程任务,包括游戏开发Pygame是一个基于Python的开源游戏开发库,提供了丰富的功能工具,方便开发者进行游戏的设计制作。 这本书从入门精通的目标,意味着它适合各种编程经验水平的读者。对于初学者,它会介绍PythonPygame的基本知识概念,例如变量、条件语句、循环函数等。然后,它将引导读者学习如何使用Pygame库中的各种功能模块来创建游戏窗口、处理用户输入、绘制图形等。通过实际的示例练习,读者可以逐步掌握游戏设计开发的基本技能。 对于有一定编程经验的读者,本书也提供了更高级的内容技巧,例如碰撞检测、动画效果、游戏物理学等。读者可以通过这些深入的学习,进一步提升自己的游戏开发能力,设计出更加有趣复杂的游戏。 总的来说,《PythonPygame游戏-入门精通.pdf》是一本对于想要学习如何使用PythonPygame游戏的读者来说非常有价值的书籍。通过它的指导,读者可以系统地学习游戏开发的基础知识技能,并逐步提高自己的水平,成为一名优秀的游戏开发者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值