欢迎光临散文网 会员登陆 & 注册

咸鱼发梦 | 前回分解

2023-02-09 12:39 作者:一纸觞华  | 我要投稿

咸鱼对另一只咸鱼说:更新了,三连三连!

另一只咸鱼:点了。但看不懂,不知道想表达什么。

咸鱼震惊:什么?你一个程序咸鱼说看不懂??这跟说 “写的什么垃圾” 有什么区别!

咸鱼反思...决定再写一个把知识点塞另一只咸鱼嘴里。

        一般前端的游戏开发的开始:先找一个引擎或者语言,然后开发。

        那流程就是熟悉引擎or学习语言,然后开搞。一般前端使用的引擎或者语言最最最起码都是提供好了完整的生命周期的。生命周期什么概念,就是整个的这个程序,他是怎么跑的,怎么流动的,是已经设计好、实现好了的。开发人员只需要往里面填充,就能得到一个游戏。

        举个例子:我要做一个打飞机游戏。(对不起,我真的好爱打飞机...(不是...好像有什么不对...))

        那首先,我要一个飞机,它可以是一张图片,也可以是一个模型。那我只要告诉程序or引擎,来一个飞机吧。你就会看到一个窗口里面有一个飞机。我的工作只是new了一个对象,最多设置了一下这个飞机的位置、大小,再复杂点就是给他换个好看的图片/模型。如果你用引擎,会更简单,鼠标拖两下点两下,就可以实现。是不是很神奇,是不是觉得做游戏,so easy~好吧,其实他就是这么简单呢!那现在问题来了,为什么,你就能看到飞机了,为什么飞机就显示在屏幕上被你看见了。因为别人默默帮你把这件事做了呀~是不是很感动哭唧唧~

        现在回到第二回的窗口。可能窗口这个词有点歧义,其实就是一个显示的区域。游戏,就是要能被看见,或者说能被人感知,能与人交互,才能叫游戏。那我现在要让玩家能看到我的画面,就需要一个显示区域,显示给玩家看见。第二回的窗口就是指这个区域。它在网页、在手游当中,它可能叫做容器、叫做cavas。但我现在是在窗口系统,哦,不,是windows系统下学习嘛,他就叫窗口-window咯。这个窗口,就是以后把想给玩家看的东西放上去的地方,例如那个飞机。

        那问题又来了,你去哪里搞这个窗口出来呢?这个东西一般就是跟操作系统要的咯。操作系统什么都有啊。那不就是要跟操作系统沟通了吗,这也不容易呢,沟通总是有成本的嘛。不过没关系,很多大佬前辈又帮我们做了这些事呜呜呜好感动啊!这里我选择的就是这个叫做SDL的库,这个库就是帮我们去跟操作系统沟通的东西。我跟他讲,你帮我去申请一个窗口吧,他就帮我去跟操作系统申请好了哦,怎么这么好我的天~

        说到这了,第二回的东西这个咸鱼佬应该懂了吧...毕竟说我是傻逼的人智商应该不会很糟糕吧...

        啊,好像扯远了,上面那么多字总结起来就是:引擎帮你做好了渲染功能。渲染就是把东西搞到显示器上让你看见。

        那第一回讲的又是什么?一个像死循环一样的东西为什么叫引擎。引擎=engine=发动机=让你的程序一直跑下去...这个就是所谓引擎的内核。现在说的引擎其实大多数指的是集成好的一套开发工具。说回这个内核,游戏他是动态的,持续运行。但程序是一句句执行的,很机械的,做完它就收工了,跟程序员很不同的,一点都不卷。程序员很不爽,所以搞了个“死”循环,逼他一直工作。好可怜的。那好了,现在有循环了,循环又是啥意思,就是一直重复做一些工作...在最简单的引擎里面,重复的工作至少也有三个。

  1. 检查玩家有什么操作

  2. 更新游戏里面的东西(位置、大小、图片、数据等等等等)

  3. 渲染新的画面给玩家看到

        就是一直重复干这三个事,游戏他就跑起来了。真神奇~小小的发动机大大的能量。这样的每一次循环,就是一个生命周期。这些引擎都内置了,游戏开发人员只需要在第二步里面填充代码,就可以了!例如前面那个飞机,我想让他飞起来,那我只要在每一次循环的时候更改一下位置,那每一次渲染出来的画面它都会有一点位置的变化,这样的很多个画面连在一起,它看起来就像是在移动一样了!人类真的太好骗了呜呜呜~

        总结就是,搞一个循环,让程序一直跑,搞一个窗口显示画面。冇了。

写了这么多,好累啊...

另一只咸鱼应该懂了吧...如果还不懂,今晚蒸来吃掉算了,哎。

咸鱼发梦 | 前回分解的评论 (共 条)

分享到微博请遵守国家法律