粉丝50获赞102

从零开始学游戏制作,我选择从 cocos 开始,经过在 b 站上看了大量的视频之后,终于开始动手写代码了, 因为又程序基础, js 语言已经会了,所以就直接跳过了脚本的基础。学习过程,先做一个按键盘来控制物体上下左右移动的功能,打开 cocos 编辑器,新建一个空白的二地项目,创建一个精灵节点, 然后新建一个脚本,脚本和节点绑定起来,打开脚本编辑, 先预览看下界面效果, 把这个方块改个颜色,编写方块移动的 代码,定义一个向左移动的变量,向右移动的,向下的,向上的。在 start 里面写键盘按下和松开的监听事件, 按下去的时候处理方法,按的哪个键往哪个方向能移动。 按键松开的处理方法,松开就停止移动。 物体移动的具体实现 运行,看看效果是否能移动,发现上下移动方向是反的。修改下脚本, 再来看看, 加个背景图片, 把移动物体变小一点,看看最终效果。

一分钟告诉你游戏开发原理,点赞收藏、持续更新!小本就是人为介入,想要对程序进行控制的戒指主要由代码组成,作为节点属性挂在在节点上,从而控制游戏进程。 脚本资源文件最好建一个文件夹,右键创建脚本,选择你要调用的节点,将脚本拖至节点属性上。 创建完成后,双击脚本,文件就可以跳转到之前的编辑器中。代码部分有引用脚本名称、程序进程模块。生命回调函数来控制游戏进程。 生命回调函数主要有七个,有特定的命名方式,所以在写游戏中的方法时要尽量避开这些函数,其中 star 函数和 在创建脚本时就会自带。视频中从上至下就是控制节点,从激活前后、节点运动前后到最后节点销毁。

众所周知,让游戏支持多种语言对游戏的推广和发行至关重要。这期视频讲如何在 cocoas 中做多语言。本期视频只适用于 cocos creator 三点六之后的版本。新建一个空的 cocos creator 二 d 项目 c m d g i s 保存场景, 在 canvas 下新建一个按钮, 再在 canvas 下新建一个 label, 微调一下距离, 点 panel, 再 点 localization editor, 点 install 退出,重新进入 localization editor, 再点内部 localization editor local development language, 选中文, 退出。在 label 对象上添加 air 试验 label 组件, 点这个刷新按钮,生成 p, 再点 c 保存,打开 localization editor, 点 compliment, 这里填上我们刚刚生成的 key 对应的中文文本,点保存返回,再点 preview。 同样的方法,给 button 底下的 label 添加 our 实验 label 组建和前面的步骤一样,生成 t。 保存后,在 localization editor 里编辑中文文本, 点 save 后再点 few, 可以看到我们处理好的两条文本。添加了新的文本后,记得 的点 preview, 在 cocoas 编辑框窗口里同步显示。 ok, 我们接下来添加英文,打开 localization editor, 点击 app new language, 选择英语, 点击 translate, 填上英文文本, 点击英语的 preview, 可以看到我们之前的中文已经变为了英语。调整一下按钮的尺寸,现在我们就可以在 localization editor 里面切换语言了, 变成中文了。接下来讲如何在代码里控制语言的切换。我们要实现点击切换语言的按钮,可以改变界面语言。创建一个 type script 小本, 命名为 botting manager。 在 button manager 里面添加一个方法, 把 button manager 拖到 button 的 inspector 窗口里, 给 button 添加点击事件, 将八成拖过来。选择之前 写的 button manager 脚本,再选择里面的 change language 方法, 回到 button manager 脚本里面。 in real 识人直接讲解写好了的代码,这个是当前的语言,这个字符串可以在 localization editor 窗口里找到。 在脚本里可以知道当前用的是哪种语言,可以基于此在脚本里根据不同的语言进行不同的操作。这个是切换语言的方法,运行看效果。 每次切换语言都会重启游戏,所以在开发时要注意切换语言前做好游戏的存档。 当游戏中需要专业人员翻译时,我们可以导出 excel 文件,点导出改成 excel 格式, 这个 excel 文件可以郊游专业的人员翻译, 翻译好后再导入 cocoas, 选择翻译好的 excel 文件, 保存,覆盖掉之前的翻译, 再点 preview 就 ok 了。 需要注意的是,只有 label 组建支持多语言, wish tax 组建不支持。如果想了解 al 实验更多的方法,请参考 cocos 官方文档。如果你觉得这个视频对你有帮助,请不要忘了给我点一个轻轻的赞,谢谢观看!

同学们大家好,欢迎来到我的编程小课堂,从今天开始呢,我就带大家进入到一个很有趣的编程课, 从 skritch 到加班 script 啊,我们这门课呢,是对你的 squetch 是略略有一点要求的啊,起码呢,你学过一些 squetze 的基本的编程语言,对这个 squetze 积木呢有一些了解。然后呢, 以斯块尺这个编程为基础啊,我们过度到加把斯 creep surprise 呢,是头型化编程啊,我们做专门做这个小游戏开发一些的小小程序用的啊 啊,适合我们低龄段的孩子啊,入门学习。那么这个加 screep 呢,我给大家采用的是啊 cocosecretor 这个专业的游戏开发这个引擎来做专业的游戏啊, 因为呢,这个 coco 是 crater 这个职业游戏开发呢,他是比较复杂的啊,他入入企门了也比较困难啊啊,我这门课的课程的目的呢,就是解决这个难入门的问题啊,如果你觉得你有一点点之前的编程基础呢,然后 你觉得学学编程比较比较麻烦啊,比较困难,那你可以来听听我这个课啊,这个是非常让你感觉到很爽的一门课啊,一学就会编程 很简单啊。好,那么我们该怎样学习呢?我只给大家做了二十四个 游戏的小例子啊,通过这二十四个小游戏呢,我就让大家啊,从这个 suit 图形化编成啊,过度到这个 gs 啊,加瓦斯 creep, 简称 gs 啊,这个 cocos 这个专业游戏开发的这个领域啊,让把你就带进门了啊,你就是一个入门级别的小小的一个工程师了。 好,那么我们为什么要学呢?首先呢,我给大家讲一下我这门课的学习目标呢,是让大家真正具有编程开发能力啊,我们就面向这个我们今后从事的工作啊,从事什么工作呢?那就 职业的软件开发工程师啊,游戏开发工程师,朝着这个目标走啊,所以呢,就是这个课程呢,也没有我们像奥林匹克竞赛那样比较偏难怪的那些算法的这些啊,学习啊,当然那个算法也很重要,但是呢, 他是另一个方向啊,他跟这个职业这个工程师呢,还是有还是有一点区别的好。然后呢,你可以做一款拥有自主知识产权的游戏啊,你可以把这个游戏发布 啊,也可以让这个游戏出售,比如说我们的现在的微信小游戏啊,抖音小游戏,都是非常火爆的地方啊,你可以,如果你这个游戏创意真的特别好的话啊,你会赚到一笔不菲的不菲的回报啊。 好,接下来呢,我们就要认识一下我们这个工具叫 cocos crater 啊,好,我们先看一下这个 coco crater 啊,他能做什么?我们到这个这是 cocos 的官网啊,同学们也可以经常关注一下这个网站啊,官网 官网的 coco 是现在是做的比较,他是国国产的一个公司啊,因为现在游戏开发呢,是几乎是让外国人垄断啊,但是我们 cocos 是很很牛的一家公司啊, 他是我们中国人自己的一个本土的游戏公司啊,而且他那个现在有很多很多家企业公司都在用用他的引擎啊,做了很棒的游戏,比如说这个保卫萝卜,还有鉴于远征, 还有热血传奇啊,孩子们都比较熟悉的,还有这个开心消消乐,估计你也玩过吧,这些呢游戏呢,很流行的游戏啊,都是用我们的 coco 死可以腿开发出来的, 他不仅仅是一个开发开发这个游戏的一个软件啊,这个引擎呢,他也能开发很多很多实用的工具,比如说宝宝巴士,儿歌啊,小朋友们学儿歌, 还有那个小朋友们学英语啊,这个软件,手机上那个 app, 火花思维啊,叽里呱啦, 这些很有名的 app 啊,都是用我们这个软件做出来的啊,所以呢, coco 是可可瑞腿,他不仅仅是做游戏啊,他还可以做很有用的软件工具, 教育产品。好,这个就是关于 cocos 的一个工具的一个介绍啊,好,我们再来看一下啊,这个网站是 boss 直聘,他是一个招聘网站啊,我们看一下啊, 这个网站就是解决人们找工作的啊,输入关键字,扣扣死,然后点击搜索,月薪呢,调到三到五万啊,我们看一下,有这么多这么多,看到没有, 游戏开发工程师,高级开发工程师,三到六万,看到没有?三十五到六十千,这是一个月的工资啊,北京地区的也有,上海地区的 哪都有啊,工资不低啊,工资是不低的啊,所以呢,现在啊,同学们要啊,努力的学习啊,在你还 未成年人的时候啊,你就有这样的开发的技能,今后呢,当你大学毕业以后啊,你,你这个在从事这个游戏开发的工作啊,或者是软件开发工作,你就是很很拿手,很顺手,对吧?啊,我们看着这些高薪啊, 非常非常好啊,很多很多,现在这个中国这个游戏开发人才啊,这个也是缺口很大,希望同学们好好学习。 好,这是关于 cocos 的这个游戏的一个基本介绍啊,下接下来呢我们就是 下节课吧,下节课啊给大家讲解这个工具的安装,然后我们做一个小例子啊,让我们的小主人公啊,一只可爱的小鼹鼠让他走起来。 好,这节课呢就到这,然后下节课我们开始学习怎么样安装这个工具。

[CCTalk](https://www.cctalk.com/m/group/90960935)
[腾讯课堂](https://ke.qq.com/course/6035179#term_id=106266603)](https://p3-pc-sign.douyinpic.com/image-cut-tos-priv/8519780b1c57694859430c7e1ff41ca1~tplv-dy-resize-origshort-autoq-75:330.jpeg?lk3s=138a59ce&x-expires=2086293600&x-signature=%2BQiUcC3ULe8gCXwmVFLl1pgochU%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=cover&biz_tag=pcweb_cover&l=20260213062113C356BF446D845791C579)


如何开发一个游戏类小程序?今天要做的是射击类游戏。 that doesn't do and my crap。 明天拍什么呀?看评论区的老板想看什么就拍什么,记得点赞关注哦!

this with me with me。

哈喽,大家好,我是宗宝。接下来进入咱们正式的课程,这一节咱们主要讲一下虚拟摇杆的实现。 首先咱们创建一个工程,点击创建通宝用的是三点七版本,选好路径以及设置项目名称,就可以点击创建了。那么这个时候引擎就会自动帮咱们创建一个工程,那么启动是需要一点时间的,大家稍微等一下, 这个时候项目就打开了,大家可以看到一个空的过程,然后这里边是什么资源也没有的。 为了省去不必要的场景搭建时间,中宝已经提前创建了一个工程,并且将游戏场景也搭建好了。大家可以跟 自己的情况去网上找一些素材,然后去搭建自己的场景。那么大概看一下场景,然后咱们调一个适当的摄像机角度,然后运行游戏,看一看实际的效果。 那么咱们运行一下,看一下效果。那么点击运行,然后浏览器就会打开咱们的呃游戏,咱们看一下,那么咱们的游戏场景大概就是这样的 呃。那么接下来咱们就开始本期的教学内容,然后制作一个虚拟摇杆。首先呢咱们打开 ps 软件,然后去制作一些虚拟摇杆需要的素材。 首先咱们来创建一个 psd 文件,那么这 psd 主要是用于制作咱们后面游戏中所需要的游戏素材, 主要是呃 ui 方面的。然后咱们保存一下,保存到自己的一个位置吧。那么中宝的习惯是在制作 ui 之前,先尽可能的将游戏场景,然后作为背景图,然后放到嗯 psd 里面,那么基于这个背景图,然后再去做 呃 ui 的话,做出来的颜色跟大小都是刚刚好的。那么咱们先截一下游戏场景,然后把它拖到 ps 里面来。 那么拖进来以后稍微调整一下位置,然后大小也是刚刚好。呃熏脚感的话,我们主要需要两张图,一张是稍微大一点的呃圆形底图,另一种是圆形。上面我们可以用来拖拽的一个小按钮。那么我们去做一下这两张图片,然后把它导出来吧。 那么做好以后我们将这两张图片全部导出到桌面上,然后之后我们再把它拖到咱们的工程里面去。 那么现在图片已经导出来了,那么我们回到桌面上,然后看一下我们的图片,然后我们打开我们的呃场景,然后可以将这两张图片拖进去。 首先我们在我们 r e s 目录下,然后插一个文件夹, 等插好以后我们将图片资源,然后拖进来。 呃。那么接下来咱们就进行咱们嗯虚拟摇杆的一个游戏里面的制作。首先呢咱们需要去改变一下。那么 啊图片类型。那么在 curt 里面,图片是有两种类型的,一种是二 d 类型,一种是嗯三 d 模型,常用的 test 类型。咱们咱将咱们的图片类型改成 spritefreem。 然后这个时候我们就可以将我们的图片直接拖到场景里面去。 那么拖进来以后,咱们首先对咱们的结的结构,然后做一次调整。首先咱们创建一个盖母,盖母的话主要是游戏整体上的一个呃附件点,然后咱们的需鸟感是需要放在盖母下面去。 呃。那么调整完以后,咱们首先运行起来看一下效果吧,然后稍微等于一块。 那么这个时候界面出来呢,咱们咱们会发现咱们的虚拟遥感已经出现在界面上了,嗯。界面已经调整完了。那么接下来咱们就是通过代码去控制咱们的虚拟遥感。首先呢咱们在 t s 下面呃也可以再建一个嗯盖某的一个 文件假牙后里面重放创建一个脚步吧,那么叫 game cut char 了嗯嗯。 然后再因为咱们主要是呃进行一个 u r 的控制板,然后再加一个嗯 gamble u r ctrl。 然后 然后咱们将这个感冒感冒药可差了咱们的脚本,然后拖到干部下面。然后接下来咱们就是嗯双击打开这个脚本,进行一个嗯拖拖板,然后把它拖过来。 那么接下来咱们就开始咱们嗯代码部分的一个实现。首先咱们进行一个呃,将咱们的虚拟摇改的 ui 节点,然后绑定到咱 放到胶布里面来。然后 咱们复制一下这个呃名字吧,然后复制过来。 那么总保习惯性的话,就前面的话是嗯节点的嗯类型。 那么这呃。接下来在这个里面,在编辑器里面会进行一个呃拖拽的一个绑定,把它直接拖过来。 那么接下来就是呃进行一个触摸世界的一个绑定吧,因为咱们要去触摸遥感,然后去 嗯移动位置,然后绑定一下事件吧,然后写一个嗯,方法写错了。 那么咱们呃的寻鸟感是呃全屏幕可以点击的,所以咱们直接对呃 reset no 的,也就是盖母的这个节点的进行一个呃触摸的一个监听, 然后先先监听一下嗯呃充满开始。然后咱们就是弄的 然后嗯滑动也监听一下。就是点击下去以后, 手部抬起来,然后移动,然后默默然后咱们的嗯嗯的然后点击时间嗯的也需要注册一下。那么 end ok 咱们注册这三个时间 ok 复制一下快。 那么在这三个回调里面,他们都是有嗯参数的,有回 有台 e v, 然后都是嗯 touch l 台 对。然后那么在咱们进行点击的时候,咱们希希望咱们的寻鸟感是跟随手指点击的位置,然后作为初始位置的。那么咱们需要在点击的里面去获取一下呃一个点击位置, 然后嗯来它。 ps yeah that 嗯 get。 这个是不是写反了?写错了是不是?那那么就是咱们这个事件写反了,应该是 因为它 v n t 对应该是这个,你都把写反了,嗯对对对。 咱们现在拿到这个坐标,是 ui 世界坐标下的一个坐标点, 所以咱们首需要再进行一个转换,把它转换到节点坐标下。那么咱们是嗯转换到嗯当前 note 界的下。那么首先就是嗯需要获取一下 note 的嗯 ur transform 这个组件 有啊,这个有啊。 那么这个咱们直接在嗯 stat 里面谁杀了就获取它就行。等于 v 四点弄到点给他一万,获取他的主题 或者他的 ui transform 这个组件。哎呀,手太快了,用啊对。 然后接下来那么就是它的节点坐标,弄得 s 等于三等于。那么就是直接咱们的 u r trust 房门, 他下面有一个坐标转换。你看这个是将一个 ui 界 ui 世界坐标下的坐标卸下来点,然后转到另一个 ui 节点局部的啊坐标,咱们用的就是这个方法,然后他传进来的是一个 三位下的,但是咱们这是一个二位的,所以咱们再再转再创建一个吧。然后嗯 play 升点 x p o s 点外的内内轴的二 d 的二 d 弯里面的话,内轴的话咱摸着就是嗯设置成零就行了 对。然后那么接下来就是将呃遥感的位置,然后设置成转咱们点击的一个位置 this 点 note 点这个点 p s 等于这个 对。那么在在点击的时候那么摇在点击屏幕的时候,那么摇杆是会移动到咱们手指的位置, 然后当咱们手抬起的时候,咱们需要将摇杆然后返回到原处。然后咱们大家看一下摇杆的初始位置,然后把它转换到二地下摇杆的初始位置。 那在初始位置是嗯负的,咱们就按负的四百五四百,四百五十,然后负的两百,负的四百五十和负负两百, 然后把它收回去,就是呃 newf 的四百五十,然后 负两百,然后 z 轴的话是零。然后咱们试一下, 然后又写一下 啊,哎呀,这个效果可以不,就点击位置作作为初始位置。然后咱们就是 点击以后在移动的时候,然后外边的这个原色的嗯地图是不动的,然后里边那个小圆圈是需要跟着鼠标去移动的,对不?然后咱们就是嗯,接下来在木里面进行一个操作, 然后呃同理也是去获取它的 u i 坐标。 那么这个时候我们的坐标转换就跟之前的 star 里面有点区别了。那么这个时候因为我们要去嗯移动中间那个小圆点的位置,所以我们需要将这个 ui 实验坐标,然后转换到他的负阶的一个突破坐标, 咱们就也获取一下吧。 you are。 所以咱们可以在一上来就是嗯去把它获取一下。那么这个时候就是虚拟要改的 ur trust fun 不 直接复制过来吧。然后复制过来改一下。 那么这个时候这是这个结的是是你要改的那个嗯大结的。然后咱咱们需要再把他的嗯中间那个小圆小圆点也绑定一下,那么这个小圆点的位置就是 他的嗯 w 转换的一个位置,然后好像写错了,是这边吧。 ok, 然后咱们进行绑定一下这个小圆点对来,然后咱们运行起来试一下 再剪是不是可以了,完美对。然后咱咱们抬手的,咱们抬手的时候这个小圆点也需要回到零零点。然后咱们搁这先把这个处理一下 味道对对对 哦,看一下, 嗯,可以可以,完美啊。咱们的虚拟摇杆虽然已经差不整起来 ok 了,但是有一些还有一些显示上的效果,比如说咱们拖断按钮是不能超出 啊底盘的半径的,那么像这种情况咱们现在可以随意拖动到其他位置任意的位置这种事就是不合理的。那么咱们进行一个半径的一个呃限制吧。 首先咱们计算一下拖动结点距离中心点,也就是零零点的一个距离板 中心点的坐标,然后它相对于 零零点的 零点一个距离,那么当它 f, 当这个距离大于指定的数以后,那么它是不可不可以去嗯移动的,那么 咱们大家看一下这个半径是多少,这个半径的距离就是这个咱们这个底盘的一个嗯 宽度二分之一,咱们底盘是一百八十六,那么他实际上就是嗯九十八对不,那么大约九十八他就不动, 然后其他位置是跟随手指一度的,咱们先看一下, 你看他不动了,那么他肯定是不动是不对的,那么他肯定是当超出这个半径以后,他是肯定是在这个圆圈的边缘然后运动。那么这个时候咱们就需要用嗯用到三点函数,然后去计算一下 那么实际上的一个呃边上的位置。那么首先咱们给给咱们打开一个 ps, 给大家说一下咱们应该怎么去计算。这个 稍微等一下, 然后咱们创建一个嗯画布,然后给他填一个,那么给大家说大概画一下吧。这个嗯实现原理。然后咱们首先然后画一个红色的白色的一个背景吧, 然后接下来咱们去呃画出这个虚拟感, 那么这个呃外头的这个大约咱们把它看作为咱们有寻找感的一个整体, 然后里面咱们再画一个小圆,然后把它作为去年摇摆的拖动拖动点,然后也给它进,给它进行一个填充吧,填充颜色 填个 s 对。 然后接下来咱们需要画一个坐标主,那么坐坐标主,然后咱们的中间这个拖动点,坐标是基于他的,是你要给他整体的一个坐标点,所以他的中中心点就是零零,所以咱们基于中心点去画一个坐标细 这边写这是 s 轴,然后这是 y 轴。 那么接下来我们需要做的是去计算当我的呃拖动点,然后拖到了是你要改的外部的时候,我们应该怎样去? 就在它的最遥感边缘的一个位置。 那么首先咱们需要一个标准下量,咱们标准下量的话,宗保的习惯性是嗯指下前面的下量,呃段位,发现下量也就是坐标点,也就是零一,也就是 零一,给他放小一点,然后字体设置成黑色 对。然后那么接下来我们将中心点,然后到咱们实际上的外部的一个拖拽点,然后之间进行一个连线, 那么这个时候我们两个点之之间的连线跟咱们的嗯标准相差,也就形成了一个夹角。那么我们通过这个夹角以及三角函数,嗯, 因为咱们知道是半径长度,咱们是知道这样个半径的长度的。那么我们只需要通过三角函数去计算 出呃 x 方向,然后 y 轴方向对应到边缘上的一个位置。 首先咱们定义一个呃标准的一个向上的一个嗯三维项链,咱们就是 up, 那么向上的话就是 x 等于零, y 等于一,然后内等于零。然后咱们需要算计算出它俩,那么咱们实际上通过向下,其实 就是这个节点的一个坐标是一样的。然后咱们进行一个两个之间的一个夹角的一个计算。那么让他 那么这里边大家有一个需要注意的,那么他算出来的一个弧度是 弧度永远是呃零到派,不是零到一百八,就是零到派。 那么呃领导派从咱们的方向下来开始,从这边 分别是逐渐领导派的一个增加,从这边也是领导派的一个增加好了,然后咱们算出来这个角度,然后他们可以通过三角函数去计算一下,那么然后 x 对, 所以咱们的半径咱们半径是嗯九十八,然后乘上 数学下面的哎,那么咱们的外 等于啊,那么就是 cosine, 那么这里这边的坐标实际上就是哎呀,放错位置了好像,那么是应该是在这一块。那么 x 和 y 分别就是实际上的一个超出范围以后的一个坐标,等于 nine ct。 然后 z 轴咱们也是设为零,咱们看一下效果 对吧。左边在在右边是滑度是对的,但是你没发现,但大家可以发现在左边他的滑度是正好相反的,因为咱们刚才也说到了他两边。 因为咱们的计算方式,那么从咱们标准项量的左边甚至或者右边,它的角度都是零到一百八十度,也就是零到 pan。 那么这个时候我们就需要将我们左边的呃零到一百八十度算出的 x 值的一个进行一个取反。 然后咱们那么我们还实际还需要进行一个拖动项链与标准项链之间夹角的一个判断,也就是那么我通通产生的项链是在呃标准项链的左侧,还是在标准项链的一个右侧。那么我们可以根据叉 g, 然后去进行一个判断, 然后算出来以后大家去了可以了解一下。那么当呃咱们算出这个叉 g 大于零的时候,那么那么就是嗯 呃了解了解过,差劲的同学可能清楚。那么当我们的呃标准项链跟呃托的项链之间的夹角是小于零的时候,那么他是一个顺时针的一个方向, 然后当我们的标准项量跟呃通行项量是大于零的时候,那么他是一个逆时针的方向的。我们需要取的就是逆时针的方向大于零的时候,将他的 x 值进行一个取反 x 针对负一。那么接下来咱们看一下。 哎是是应该是没有刷新的问题, 怎么还是反的?看一下是不是哪哪一块出问题了。 哦,这边写错了,这边应该是咱们发一下,下来是零一, 一定要注意检查一下写的时候。 嗯。那么那么现在咱们的虚拟摇改也就差不多了,那本节课的内容也就到这里结束了。

前端在不断的发展,像前端的模式呢,各种各样的模式也在不断的发展,因此呢,它要结合面相对象,面相过程和地,甚至呢,函数式编程都要结合它里边的思想。因此呢,你多了解一种开发的模式呢,对你绝对没有坏处。好,这节课呢,咱们使用面相对象的这个方式呢,来开发这么一个小游戏。 按回车键就开始了,按空格键就可以在跳跳跳跳跳啊,你不要碰到水管啊,你不能碰到,碰到下边。如果说你把前面东西搞清楚了,最后一个类就很简单了,前边呢,我们已经写了各种各样的类了,每个类呢控制自己的东西,那么最后呢,我们就写一个类,把这些功能呢整合起来。 game 类游戏里边有啥呢?是不是有天空?游戏里边是不是得有一个大地?哪怕你前面没听懂啊,都没关系,你只要知道这些类怎么用就行了。大地的速度我们这里直接定负了,一百有天空有大地,是不是得有只小鸟,还有柱子队生成器啊,要传个速度,速度跟大 一样。这就是为什么我要把速度提出来,因为可以让调用的人控制这个速度啊,让他两个一样,他们自己是不知道对方的速度的。 游戏呢,他有开始,有暂停对吧?开始是做什么事情呢?是不是不断的移动啊,这乱七八糟的东西。天空要移动,大地要移动,鸟要移动对吧?乱七八糟东西一大堆都要移动,是不得,我得启动一个计时器来移动。开始是什么?还是判断一下啊? z tim, 如果有值的话,瑞特啊,就不要再重复开始了 啊,如果没有值的话, this timer 负值多少时间呢?是写个属相啊, tick 十六毫秒啊,那么这里把 this take 传进去,每隔一段时间,移动怎么写呢?移动哪些事情要做呢?天空得移动吧 this sky 第二目,那么第二微信它要你们要传一个就是时间间隔,第二微信它是秒的,是不是把 z t 可除以一千就是秒。然后呢?大地得移动吧,还有什么呢?表得移动吧 bird 对不对?移动目还有柱子得不断生成吧,对不对?柱子不断生成呢,我们不用放到 器里边啊,这是 pad producer 直接 start produce 啊,开始生成柱子,这个柱子里边所有东西是不是得移动,对吧? pad producer 里边又不是有 pairs 吗?有很多柱子队,是不是佛意气?移动,你看,天空移动,大地移动,小鸟移动,然后呢?柱子队里边所有的柱子队全部得移动。不就游戏开始了吗?我们这里创建一个 game 对象。 好,来吧,我们来试一下啊,游戏开始 start, 你看,游戏开始,小料移动了,大地移动了,柱子也在,也在不断的出现了,这不就开始了吗,对吧,开始就已经搞定了,那么游戏暂停呢? 什么叫做游戏暂停?那么是不是一事情全部得停止啊?像这样,什么 rest 点 time 清空,然后呢? res 点 time 就移动了? time 清空还有一件事情啊,小鸟三翅膀, 然后呢?小鸟得停止三次吧? bird stop three, 然后呢?柱子队的产生器呢?得停止产生柱子好,来吧,游戏开始。好,我们来看一下啊, stop, 游戏停止,你看全部都停止了对不对?那么如果说我们要对应到事件里面怎么来处理呢?比方说我们在游戏里边给注册事件叫 read event, 那么这个函数呢,就是给 window 注册事件,对不对?看一下你事件按的键是啥?如果 e 的 t 等于 enter, 表示你按着回车,就是游戏。如果是暂停的,那就开始,游戏是开始的,那就暂停。那么判断一下 this 点 timer, timer 有值, stop timer 没有值? start 啊,写反了啊,你看开始 暂停对吧?开始啊,暂停。如果说你按的不是这个键,按的是空格键呢?空格键的话是不是要小点要跳啊? z spur 的什么 jump, 它直接是空格啊,直接是空格 啊,那么就属于跳了啊,那么这一块就已经搞定了。那么这些剩下的就一件事了,就是游戏是否结束,就是有没有碰到东西,什么时候我要判断游戏他有没有碰到东西,所有的物体 移动了过后。好,那么这里写个函数,如果游戏结束了,所有东西是不是全在停 this stop, 并且呢,我们用个属性来做标记,游戏是否结束?一开始游戏是否结束啊?如果说你游戏结束了,我们不但要停止,而且呢,要把这个标记一下啊, game over, 把思维去,对吧?嗯,那么这里关键是在这是否游戏结束,怎么判断呢 啊?它有很多种判断方式,这里一个个来。首先我们可以判断鸟是不是已经碰到地面了,如果鸟的 top 值等于呢? 鸟立标不是一个属性吗?叫做 maxy, 对吧?最大的 y 坐标,他是不碰到大地的啊。那么这个时候游戏是不是结束了?旅程区啊,游戏结束了,我们在这里输出啊,游戏结束好保存啊,看一下跳跳没有结束,没有结束啊,碰, 你看游戏结束是全部停止了,但,但是这个时候你按维特键还可以,还可以继续继续玩,你看没有,还可以继续玩,所以说呢,我们这里还要控制一下啊,就在这 游戏开始的时候呢,我们还要做这么一件事啊,如果说游戏已经结束了,那么一点游戏开始呢,相当于是重新开始游戏了啊,我们做一个最简单的事情,刷新页面,到刷新页面就完事了啊,好,来吧,看一下啊,跳跳碰大地啊,碰大地,然后我们再按回车,你看,刷新页面啊,重新开始 啊,这是碰大地啊,游戏结束,那么还有没有别的游戏结束了,还有就是他没有碰大地,但是碰到了柱子,对吧?是不是要一个柱子?一个柱子判断对不对?好,来吧, pipe preduce。 他不是有柱子队吗? 佛一起,一个柱子对,一个柱子对。打出来看看一下。这个柱子对跟跟这个鸟有没有碰撞,那么这个柱子对跟鸟有没有进行碰撞呢?这个柱子对他有两根柱子,是吧?分开判断。哎,我们这里刚才写的佛循环吧,佛循环好一点, 因为我们一一旦看到有碰撞了一个,我就不需要再继续进行循环了,用 fore 一起的话,会一直循环到底没有什么意义啊,那么我们要看什么呢?看柱子对佩尔是不是跟鸟 进行了碰撞,是不是有两根柱子啊?它里边有两根柱子,我们可以拿到这个佩尔里边的上边那个柱子还可以拿到他下边那个柱子可以拿到两个柱子,是不是分开判断,对吧?分开判断,那么我们这里呢,需要有这么一个辅助函数来判断两个矩形是否碰撞,我们这里呢,又加一个结石啊,或者我们直接写到下边吧, 是否碰撞啊?就是放给我两个矩形。瑞一,第二个矩形,我判断两个矩形是否碰撞。如果说这个函数写好了,那么这里写在吗?就很简单了,判断一下,如果说这个鸟跟这个上边那个柱子啊, pip 碰撞了,是不是就 return to, 对吧?如果说鸟跟下边那个柱子发生了碰撞,那么也是 return to 都表示碰撞了啊,我们这个结束整个函数, 换句话说,如果循环结束了,还没有碰撞, return force 啊,游戏没有结束对不对?那么现在关键变变成这个函数了,这个函数有两个矩形,传给你的 bert 是个矩形吗? 对吧?柱子是个矩形吗?两个矩形能不能发生碰撞呢?你看,都是都是矩形,他都有这么一些属性啊,他们有副类的,他们都有这么一些属性,那么我们要看两个矩形是否发生碰撞,他有这么个规则,碰撞检测横向两个矩形的中心点啊,距离,取取这个中心点做要之差的绝对值是否小于 矩形宽度之和的一半,中向的是两个矩形中心点的,这是横向距离吗?这是横向距离,这是纵向距离 啊,那么是否小于矩形高度之和的一半啊,这是碰撞。所以说我们要得到两个矩形的中心点坐标,来吧, center x 一啊, x 一,第一个矩形的中心点横坐标, 那么等于什么呢?等于这个矩形的 left, 它的横坐标加上它宽度的一半。好,中心点重坐标 y 一,那么等于它的 top 值加上它高度的一半,然后呢,伸 x 二 y 二,那么这个这个等于呢?第二个矩形的横坐标啊,加上第二个矩形的宽度的一半 啊,这是第二个矩形的纵坐标加上第二个矩形的高度的一半。好,就完了。那么中心点的横向距离 d 是 x 等于什么呢? mass absolute center x 一减去 center x 二,对吧?横向距离 y 呢?就是纵向距离,来吧,什么叫碰撞?碰撞就是 横向上中心点的距离小于了两个矩形宽度之和的一半,并且呢,还有纵向,如果发生了这件事,说明碰撞了啊, return to 啊,否则的话没有碰撞。 这就是两个矩形的碰撞方式啊,你看是不停止了对吧,不能碰上啊,走 好,这里好,是不是碰上了对吧?好,就写完了啊,整个程序就写完了。这就是面向对象的这么一种特点,就说每一块的他只关心自己这一部分的事情, 而且把它形成一个高度聚合的一个类,那么通过这个类呢,可以完成跟这个类相关的各种功能啊,这是面相对象,他在程序设计上的这么一个特点。 关注路易剪辑号的同学,打断一下,我是袁老师,你能跟着我卷到这里,那我就再送你一个能卷死所有人卷的五体投地的课程。这套课就是我录制的大师课, 里边包含原理,原码,思想,还有笔面试题,这些都是求职提心跳槽绕不过去的内容,并且呢,我毫不夸张的说,论这些内容的价值,如果说一份工作年薪三十万,那么大时刻这几天讲的东 期可能在你的面试中就能值十万。单说他里边涉及到的面试题,只要你面试的时候遇到了,这是大概率事件,你把我给你的答案,不用百分之百,能够说个百分之六七十,对面试官的杀伤力都是核弹级别的。 不管他曾经面试过多少人,这种场面他没见过,我一点不跟你开玩笑。当然呢,我也欢迎各大公司的主管面试官前来参考借鉴,同时呢,也送给各位同学拿去学习提升。怎么领取评论区第一条,进粉丝群,然后根据提示领取就可以了。

前面的视频中已经介绍过了 unit 的安装,当我们开发游戏的时候,只用一款 unit 是远远不够的,至少还需要一款脚本编辑工具。老版本的 unit 是自带一款微笑四六六社区版的,但在二零一九版之后就需要自己安装了。这期视频就简单介绍一下微笑四六六的选择与安 装。首先版本必须得选二零一九版的,老版本用也能用,但如果遇到兼容性问题,处理起来十分麻烦。 安装包可以直接在官网下载,链接我放评论区里,点击下载后会跳出三个选,向我简单介绍一下,第一个是社区版,完全免费,但使用需要科学上网。第二个是专业版,功能更强大。第三个是企业版,自带一些类似 sbn 的功能,一般我们都会选择专业版, 下载下来是个安装包,打开之后长这样。这里有非常多的插件选项,我们只需要选择一个 unic 游戏开发,总共 占用硬盘大小大约是一点九个 g。 下载完之后我们可以直接打开,在登录界面我们可以看到刚下载的微笑四六九只有三十天的试用期,这时候我们只要上某度找个对应版本的密药就可以永久使用了。这个密药亲测可行,我也会放在评论区里。