用PyOpenGL叩开3D的心扉——OpenGL全解析(5)
我不得不演示几个例子来加深一下之前学习的东西(时隔这么久了,有点难以为继的感觉啊)~ 我恨数学 据说这个世界上最深沉的感情不是爱而是恨,或许一开始就亮出一个数学函数能让你有动力进行下去? from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * #from numpy import * import sys… Read More »
我不得不演示几个例子来加深一下之前学习的东西(时隔这么久了,有点难以为继的感觉啊)~ 我恨数学 据说这个世界上最深沉的感情不是爱而是恨,或许一开始就亮出一个数学函数能让你有动力进行下去? from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * #from numpy import * import sys… Read More »
其实我们外挂中的技术阻碍基本都扫除了,接下来只需要把前两次的代码装配在一起就可以了。不过直接在这篇文章里将全部代码贴出来实在有违自己的心意,我还是要讲述一点有含量的东西才可以~ 快捷键 外挂在不停的操控你的鼠标,你要是想和它抢,那是很困难的,也许我们可以选择关闭它~ 但是如何关闭也是一个极具挑战性的事情,它在cmd命令行窗口中运行,同时在不停点击浏览器,所以浏览器窗口会在前面,你很难选中命令行窗口… Read More »
继续上一篇我们需要知道顾客的要求,怎么做?分析顾客头上的图像就可以,来,从获取图像开始吧~ 打开你钟爱的图像编辑器,开始丈量吧~ 我们得知道图像在屏幕的具体位置,可以用标尺量出来,本来直接量也是可以的,但是我这里使用了画面左上角的位置(也就是点1)来当做参考位置,这样一旦画面有变动,我们只需要修改一个点坐标就好了,否则每一个点都需要重新写一遍可不是一件快乐的事情。 看最左边的顾客头像上面的图像,我… Read More »
漫漫长假,何以解忧,唯有……代码 ——by 某屌丝 悲剧成我这样的人,我知道肯定不止我一个,所以我一点都不悲伤:-( 所以我打开了4399小游戏网,点开了一个不知名的游戏,唔,做寿司的,有材料在一边,客人过来后说出他们的要求,你按照菜单做好端给他便好~ 为啥这么有难度?8种菜单记不清,点点就点错,鼠标还不好使肌肉劳损啥的伤不起啊…… 首先要声明,这里的游戏外挂的概念,和那些大型网游里的外挂可不同,… Read More »
图元 上一次,我们有了一个足够3D的程序了,虽然很漂亮,但是那个茶壶并不是我们画出来的,glut带给我们的便利而已。从现在开始我们就得自己动手丰衣足食了,为了达到这一点,我们得再了解一些OpenGL的一些知识。 如右图所示,你必须知道构成我们3D图像的最小单位,它们往往被称为图元。 点,在OpenGL中,这是最基本的图元,比如说图中红色的那个点。 线,比如左图中粉色的那根。我们可以看到,两个点定一… Read More »
第一个PyOpenGL程序 说实话我们OpenGL的基础还远远没有学完,不过我在说下去大概就不会有人看了,所以,虽然稍稍有些早,开始我们的第一个程序吧。 from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * def drawFunc(): glClear(GL_COLOR_BUFFER_BIT) #gl… Read More »
每个人都有做3D的潜质 看看这张图片(选自“一秒钟看穿统计陷阱”),美国木匠的平均收入是罗坦提亚木匠的两倍,给出一张统计图片,美国人的钱袋长、高都是罗坦提亚木匠的两倍,看起来挺忠实于数据。 但是右边钱袋实际占用的面积就是左边的4倍。这幅图像导致的暗示效果其实还没完,因为在生活中钱袋都是立体的,所以每个读者看到这个钱袋的时候会不经意地给它加上一个厚度,这样一来,在有些人眼里这幅图表达的明明是美国木匠… Read More »
承 从pygame的系列教程里3D部分,本想好好说一下OpenGL的,但是感觉这样一来就喧宾夺主了,毕竟OpenGL这东西,好好说明下来要比pygame更加博大精深,所以就考虑另外起一个教程来写着了。如今pygame的说明基本完成,实战篇完成两个以后,第三个写起来实在太占时间了,只好退居二线新开这个pyopengl教程作为主要的更新内容。 说实话我不知道这次会写多久,能写的如何,我只能保证自己极力… Read More »
我们终于把pygame的方方面面都说了一遍,也经过了两个小游戏的洗礼,如果您真的好好学习了每一部分并自动动手演练过,那就是一个很不错的Python游戏开发人员啦! 但是,不得不说我们到现在为止,写的东西都不够酷!pygame就这点能耐么?第一篇介绍pygame的时候,我就说了pygame很适合做一个植物大战僵尸之类的游戏,OK,那么,这次开始我们就来用pygame山寨一个吧哈哈。 游戏介绍就省略了… Read More »
恶搞俄罗斯方块的制造之旅也可以结束了,通过上三次的说明,基本就整遍了整个代码,虽说都说了一些类名和方法名而没有涉及到具体的实现,不过实现就是排列几句代码,大家一定没问题吧:) 揉成一团 总是可以把这几次说的东西放在一起运行了,界面的美化啥的我完全没有做,所以很难看,咱们主要学习的东西是pygame,就不在这上面多花功夫了。 运行界面: 这个是第4种模式的截图,会落下莫名其妙的东西的版本…… 落下个… Read More »
偶尔在python.cn上看到一篇《谁说使用 Python 你就写不出混乱的代码?》,地址在这里。觉得非常有意思,记得使用Perl的时候,因为其灵活的语法,可以有很优美的代码书写方式,也可以写出非常混乱的代码。而Python,从一开始就致力于消除这种混乱,缩进的结构使得Python代码相对其他语言整齐了许多,刚开始用Python的时候虽然也想过能不能写出乱糟糟的代码,但是一开始就败在缩进上,也就慢… Read More »
我们讲解了俄罗斯方块的各个宏观的部分,这次就是更细致的编程了,不过代码量实在不小,如果完全贴出来估计会吓退很多人,所以我打算这里只贴出数据和方法名,至于方法里的代码就省略了,一切有兴趣的朋友,请参考最后放出来的源文件。 这个是main调用的Tetris类,这个类实现了我们所看到的游戏画面,是整个俄罗斯方块游戏的核心代码。为了明晰,它还会调用shape类来实现当前的shape,下面会讲: class… Read More »
我们接着来做这个整死人不偿命的俄罗斯方块。 代码组织和名词约定 上一次我们稍微整理了一下游戏运行的框架,这里需要整理一下python代码的框架,一个典型的pygame脚本结构如下: 其中,lib为pygame的脚本,游戏中声音、图像、控制模块等都放在这里;而data就是游戏的资源文件,图像、声音等文件放在这里。当然这东西并不是硬性规定的,你可以用你自己喜欢的结构来组织自己的pygame游戏,事实上… Read More »
游戏是为了什么而存在的?Bingo,是为了娱乐~ 在这个最高主题之前,技术啥的什么都无所谓! 前一段时间,有位姓刘的网友用Pygame写了个俄罗斯方块,在用py2exe打包的时候遇到一些问题,和我交流了一下。有兴趣的可以在这里下载,除了代码,打包后的exe文件也一并提供了。 受他启发,这次我们就以俄罗斯方块为主题做一个游戏吧,但是,咱不能走寻常路啊,得把它整的非常有趣才行。记得曾经在网上看到一个搞… Read More »
趁热打铁赶快把我们这个画板完成吧~ 上次讲Brush的时候,因为觉得太简单把color设置跳过了,现在实际写的时候才发现,因为我们设置了颜色需要对刷子也有效,所以实际上set_color方法还有一点点收尾工作需要做: def set_color(self, color): self.color = color for i in xrange(self.brush.get_width()): for… Read More »