挑战用拍丧制作植物大战僵尸第四期,这期视频主要实现的功能就是植物和江西的攻击判定,毕竟植物大战僵尸的玩法基本上也完善了,所以在下期视频我们来实现创建新植物的功能。 首先我们打开 plant 文件,创建一个含秀来储存截图用于江西的秀技效果,改一下含秀名,然后把原路径截图换掉。 接下来我们打开资源管理器,找一下江西的秀姬贴图, 找到了,在这里把贴图名称输入进入路径内就可以了, 记得把韩秀明带入总进程路口。接下来回到游戏代码,并找到江西的星球逻辑,给江西增加一个新秘籍, 找到了,就在储存江西进列表的这个代码,我们加一个五进去作为生命值,然后找到豌豆射手,在接收坐标集这里把圆足改成列表, 这样就可以给豌豆射手增加生命值。下一步我们划到代码最底下,找到画出江西和豌豆射手的代码,就在画出豌豆射手的 x 轴和 y 轴,以缩减的方式带进去。 我解析一下为什么要利用缩影取值,因为 b 列这个函数只能带入坐标轴,并且刚才给豌豆射手增加了生命值,如果不使用缩影取出坐标轴就直接带入会报错。还有江西的坐标轴也一样,利用缩影取出 x 和 y 轴。 接下来就可以开始写豌豆射手攻击江西的功能了,代码往下滑找到,发现豌豆的代码 找到了,就是这一段代码, 定义一个变量,用于接收计算公式,运用豌豆子弹的外轴减去其洗未及的外轴,然后整出草坪格子高度,得出豌豆子弹所在行数, 然后用 for 循环遍历出江西列表内的所有江西。接着定义一个变量,用于接收计算公式,利用江西的 y 轴减去其 x 位及 y 轴,并且补向那垂极偏移的四 x, 最后整出草坪格子高度,就算出了江西所在行省。 现在做一个 test 判断,如果豌豆子弹的航速和江西的航速相等,并且江西的 x 九一旦小于等于子弹的 x 九,那么江西的血量就减一。如果江西的血条一旦小于等于零,那么就把江西从列表内消除, 最后用 break 退出循环,确保以自己记下一记江西运行代码, 代码报错了,看一下报错原因,在一百一十六行,看一下代码哪里有问题。瞧到了,因为解报元素时, x 球和 y 球都有变量接休,但是血量级没有变量接休导致报错。只要定义一个变量去接休多出来的元素就好了。 再次运行代码又报错了,看看什么问题。报错在一百二十六行,我们看看是什么原因。 这段代码是一个字典,是不可以传入列表的,还记得这个列表吗?原本是个原组的,因为增加了生命值,所以改成的列表,导致报错。回到刚刚报错的代码,把 pass 这个循环变量,利用 t p l e 这个函数把列表改成原组, 然后底下这个 pass 也需要用 t p l e 函数改成原组。 运行代码 江西西被消除了,但是子弹没消除。我知道了,打中江西西,忘记把子弹从列表清除了,顺便把江西秀姬效果的贴图画出来, 直接把贴图的韩秀名复制过来粘贴进去。对了,韩秀忘记加个括号了,运行代码看看, 这样就没什么问题了。接下来找到江西移动逻辑的代码,来写江西攻击植物的功能, 定义一个变量来接收公系,计算得出江西的所在行数。这个公系讲了好几次,我就不浪费时间直接跳过了。接下来是利用蜂耳循环便利求豌豆射手,然后一样利用公系得出豌豆射手所在行数, 做一个一次判断。如果江西航速和集物航速相等,并且江西的 x 九小于等于集物的 x 九, 那么集物的血量就减一。 如果集物的血量一旦小于等于零,那么就把集物从列表内清除, 最后用 break 退出循环。要是没碰到职务,那就把江西移动的代码进入到 else 内,运行代码试试看 怎么回到主菜单后重新进入游戏,豌豆却没有清楚,而且这江西一碰到豌豆射手就死掉了。 回到代码,找到按 esc 返回主菜单的代码逻辑,我们检查一下,原来是返回主菜单时没有清除子弹和江西的列表,现在清除一下, 我找到江西一碰就死的问题了,因为豌豆秀秀行秀判定有问题,加个先前判定就可以了。豌豆秀秀的 x 九一旦小于江西的 x 九才会攻击,这样江西靠近集物后就可以避免直接死掉的问题了。 接下来打开 music 文件,创建一个新的韩秀,用于储存秀技音效。 修改一下韩秀名, 打开文件夹,找出秀技音效,这里好像多一个秀技音效,删掉就可以了。到时候我会发一个全新的素材,包含所有音效, 记得把韩秀加进总进城路口内,回到代码,找到豌豆子弹发现的位置,把秀姬音效加进来, 来运行代码看看。结果这打击感一下就来了。 那么这期视频就到这里结束了,主播最后会讲自己这段时间停更的原因,你们愿意留下来听听吗?说实话有点害羞哈,因为我看到很多粉丝都好奇我的声音,包括小秀粉丝好奇我的长相,那么接下来请看视频。 我拍这些视频的话是要讲一下我近期停课的一些问题。熟悉我的老粉就会知道,我经常停课,因为我是一名在校上学的中职生,只有呃,周一周五都是在学校度过的,一般只有周末才回来更新, 所以我更新频率很慢的,再加上当时要告知高考了,我也没什么时间去更新,但现在考完试了,学校他也要要求我们去实习。嗯,然后我就跟同学来到了广州。找实习工作嘛, 但是都挺不理想的,他有的老板会要求你需要有经验,或者的话就是嫌你干的太短了,因为我只干四个月左右那样,所以 挺不好找工作的。而且有些企业的话,他会要求你必须干满三个月才给你盖实习证明或者那第三方协议。呃,说是怕我们盖完就跑了,但是, 但是我们这个三方协议的话,在这个这个月的二十号他就要求交了,所以挺烦恼的。最后呢,我就决定重新回来进这个自媒体账号,因为虽然说流量没有以前那么好,但是我打算重新培养起了。 呃,像上大学实习签证这些事情,然后我家里人就帮我解决了,所以我就有时间继续经营这个账号了。现在我的主页也就变变成了 自媒体博主了吧。嗯,然后我要说的也就这么多了,希望大家可以多多支持我,点个关注,谢谢大家了,对我的真的对我有很大的帮助,支持我继续干自媒体下去。
粉丝7.9万获赞31.4万

一点都不会编程的,或者说家里有孩子想体验编程的,如何在十分钟之内写一个游戏出来。这个游戏的本身其实是没有价值的,但他可以让很多人感受到自己能做一个真正的东西出来了,这颗感受是具有非常大的启蒙力量的。 我们开学之前有一个前提,就是我们要把游戏写到什么目录下,那比如说我这就是已在桌面上建一个 game 的 文件夹,我就让他把游戏写到这个目录下。那所以这我们在 q 这里选打开文件夹,然后选择我们刚才建的那个目录就行了。 行,那这时候他就弹出一个是否信任的提示点信任就行。好,那到这之后他其实就到这个工作目录下了,也就是说他所有的代码铲除其实都会放到这个目录下。你看我现在双击打开之后,这个目录下只有他 q 的 一个抽象的文件,没有其他文件。一会咱们写完代码之后,他就自动把 代码写到这里面来了。到这的话我们需要登录一下,登录以后就可以在这个对话框输入我们的指令,让他干活了。那我们这里就写一个最简单的提示词, 帮我写一个可以在浏览器运行的坦克大战的游戏。随着我们对这个软件运营的越来越熟悉,我们就可以去更加丰富我们的提示词,让他做出更符合我们要求的游戏来。那这里演示呢?我就写一句最简单的, 好,我们点击发送,那他现在就开始执行了,看到没?他先会规划一下规划,规划完之后,他这会询问我们要不要运行这个,那我们点运行,这时候他就开始创建文件了。你看我们看这一会创建文件之后,这就会有了 啊,那他现在还正在创建文件中创建了一个文件了,看这也就有这个文件了,同时我们在这个目录下也能看到这个文件。行,他现在创建完了啊,说了一个简单的说明。行,我先不管,我回到这个目录下,就这样直接双击这个文件就行了,这游戏就会被打开 出来了,就这个游戏点空格发子弹,我就不演示怎么玩了啊?如果说我们想按照我们自己的意图再去改,那就直接再接着跟他聊就行了。比如说你这个太难看了,优化一下界面,然后你把你想要优化成什么样子告诉他等等等等,直接跟他聊就行了。

你非常的幸运,今天分享的游戏是扣贷 mt 编程游戏,安装步骤简单,手机电脑都能玩,我家四大爷也能学会,而且免费。首先点视频右下角小箭头分享复制链接,然后打开手机自带的应用商店,找到这个,打开后下方会弹出一个资源包, 没弹出来的话搜鱼汤爱玩,点击搜索后会跳转一个文件包,打开后找到游戏合集,找到扣地堪比 t 编程游戏,然后点右下角保存安装就可以玩了。

我们编辑一个敌机授机的函数, 使用缓动组建来使授机时敌机变成红色以后再还原。 我们提前创建好两个 color 类型的变量,一个是红色,一个是原色。 使用 twin 来缓动敌机节点上的 spread 组建, 使用零点一秒变红,再用零点一秒之后还原 看一下效果, 这样我们就完成了敌机授机后的效果。下节课我们学习如何设计简单数值,让敌机阵亡。

这节课我们学习如何利用碰撞检测让子弹击中敌机。 我们先关闭生成敌机功能, 然后给敌机节点添加一个 rigidbody 二 d 缸体组建。在项目设置中的物理选项,添加碰撞检测组,这里我创建好了,同学们点击添加即可。然后勾选碰撞组的负选框, 继续给敌机节点添加一个 collider 二 d 碰撞检测框, 然后勾选上监听碰撞事件回调。 选择以下碰撞组为 monster 分 组, 然后将子弹预制体拖入到场景中,同样给子弹节点添加缸体和碰撞检测框组建。 选择子弹分组, 然后打开官方使用手册, 复制官方的视力代码即可。 在敌机的脚本里添加。启动监听 这里我们只需要启动碰撞检测开始即可。 再复制一下监听回调用的函数, 这里我们先打印看一下。 特别强调一下,子弹预制体节点修改完之后,需要点击右上角的同步, 我们看到这里检测触发了打印, 下面我们来编写子弹击中敌机后的逻辑, 再回调函数中 self collider 这个对象指自己的碰撞信息。 other collider 这个对象指的是自己的碰撞信息。 我们使用 other collider 来销毁子弹, 看一下效果。 子弹消失了,但是右边有黄色的销毁警告提示。我们来选择另一个二 d 内置物理引擎, 再看一下效果。警告消失了, 所有预制体节点修改完成后,都需要点击右上角同步一下。 我们打开敌机创建,再看一下效果。 下节课我们学习让敌机受击后的效果。

这节课我们修改代码,实现随机出现的不同高度的障碍物。 首先我们将 box 这个节点从背景节点中拖到 canvas 节点下, 然后拖动 box 节点到地面,复制一个障碍物,放入 box 节点,调整到节点坐标中心,然后调整 box 节点。 现在我们去修改下代码,将生成障碍物的代码剪切到一个新的函数中, 创建一个函数名成为 create box 的 函数, 然后将代码粘贴进去。 我们随机生成一个创建障碍物的最大数量, 然后使用 set interval 定时器来定时创建, 再创建一个随机数来,随机是地面障碍物还是空中障碍物。 然后每次创建一个障碍物就将 index 加一,然后判断 index 等于最大障碍物数量时停止。 我们要修改下 box 的 节点位置, 在需要创建障碍物的地方调用这个创建障碍物的函数。 然后我们再写一个让障碍物移动的缓动函数,执行时间需要和背景图片的移动速度保持一致,然后执行结束后将这个障碍物消毁。 空中的障碍物我们目前无法跳跃过去,下面我们去实现。在跳跃后再按一下跳跃,可以实现两次跳跃的功能。 首先我们将两次跳跃的动画图片拖入角色节点中, 这个两次跳跃的图片比跑动的要小一点,我们可以通过 scale 属性调整一下大小,然后隐藏这三张图片。 下面我们去修改代码, 复制角色跳跃的函数,然后进行修改, 修改名称为 row double action。 修改隐藏节点的下标,然后修改 index, 六十让给 index 等于四。 在 base 点 state 等于一时,代表已经跳起来了,在进行跳跃时,我们就启动双跳 f 中的代码, 我们用跳跃的代码进行修改, 我们测试一下效果, 现了一些异常, 我们修改一下代码, 然后再看看效果。 在双跳的时候将跳跃缓动停止, 我们再看看效果。 我们将双跳的动画播放快一点。 在停止时障碍物还是继续生成,我们去修改这个 bug。 在 游戏结束时,我们停止继续生成, 我们再看看效果。 接下来我们创建一个计时功能, 鼠标右键 canvas, 选择创建,再选择二 d 节点后,选择 label 文本,然后起一个响亮又不好记的名字, 选择颜色为红色,调整一下字体大小。 我们创建一个定时器,然后定义这个定时器的延迟为一千毫秒,也就是足足一秒钟的时间。 通过查找这个 label 节点后,使用 get component 获取这个节点右边的组建名称就可以获取到这个文本组建了, 然后将代表秒的变量复制给这个文本,每秒让变量加一, 然后我们在游戏结束时停止这个计时器。 下面我们创建一个游戏结束的弹窗,并且加上一个重新开始的按钮。我们创建一个单色节点, 再创建一个空节点, 然后将单色节点拖入空节点中。 修改一下宽度和高度, 设置一下背景颜色,再调整一下透明度。 再创建一个 label 节点,调整一下字体大小,输入 gamover。 再创建一个 button 按钮,然后调整一下颜色和文字,输入重新开始的字样,然后选择点击事件, 我们将 b g 节点拖拽到这个事件选择器中, 我们需要将 start 中的代码封装, 我们给角色出事画一下位置,再点击重新开始时让角色出事在地面跑动, 然后在游戏结束时显示这个弹窗, 看一下效果。 重新开始时,我们需要清除所有的障碍物, 再来看一下效果。 重新开始时会有一种速度变慢的感觉,这是因为 b g 在 移动缓动函数的时候没有播放完毕,位置没有出式化,所以剩余的移动距离还是按照四秒钟执行,所以会变慢。我们给背景也进 行位置出式化, 看看效果, 这样就完成了入门课程到这就结束了,后续我们会推出围绕碰撞检测、物理钢铁射线等进阶玩法的教程。

教你怎么加后处理是啥意思呢?我这个邮寄后处理,这不是有两项吗?就是我现在我想再加一个别的,比如说西门子的后处理,或者是其他什么设备专用的后处理,咱们怎么给他加上去? 因为这个也是有个学员嘛,他想让我给他加这个,这个西门子西门子龙门侧洗头的后处理,然后还有这个龙门立洗头的后处理,就把这俩给他加上,然后现在咱们不是要加吗?他又发给我一个后处理, 他这后处理其实也是我给他的,但是他想在这个上面给他加上,嗯,但是我这个后处理我不想改,怎么操作呢?先打开它,打开文件位置,咱们现在用的是十点零吗? 然后后退一步,我给他大一点啊,这是咱们的安装路径,然后找到这个文件夹, m a c h, 双击他,然后找到这个 r e s o u r c e 这个文件夹,然后进去,进去之后这个 p e, 这个 p 打头,这个就只有这一个 p 打头的这个文件夹就是后处理。 然后我这个现在我不是不想动吗?用他发给我这个,给他加上那两个,我把我这个给他拽出来,给他剪切,我给他放到桌面留着, 因为我这个我给他改完,我还得用啊。把他这个给他拽进来,然后直接解压到当前文件夹, 这不就出来了吗?这文件夹这文件夹出来之后,咱们直接后处理就行,不需要重新开它 u g 软件,不需要重新开右键后处理。 你看这个这就是他现在这个后处理乱七八糟的,我觉得他这个也不像是我的那个,因为这些往后是是 ug 软件自带的这个后处理,但咱们先不管他,就按照他这个给他加。 嗯,先进到这个文件夹里头, p 这个进来,然后进来之后把它这些给它拽进去,然后这个现在往这拽的话有点乱,是吧?咱们先往这个位置拽一下啊,这个先给它删了, 把它这几个文件给它拽过来,这个一个、两个, 然后三个,这个就是准备好的后处理文件,三个一样的名,但是它格式不一样,是文件类型不一样,这个是 o, 这个是龙门侧洗头的,然后还有这个, 这个应该是侧洗头啊,这不 c 叉吗?侧洗吗?但先不管他,反正他是这么说的,咱就这么给他改,因为有可能那个名 名起错了呢。把这几个给它直接拖动到这个文件夹里头,这个 p 这个因为你不拖动到这个里头是用不了的。它拽进来,拽进来之后,咱们找到一个,找到一个文件,叫哪个了?我找找啊, 有点忘。这个 d a t, 这个文件这个名称,这个文件 就看这个类型,就是这个 d a t, 只有这一个,只有这一个文件,然后双击它,这不打开了吗?打开之后咱们在这就可以加,然后怎么加呢?这个就是固定的啊,你记住了就行,把它复制一下, ctrl c 复制一下,然后另起两行, 然后给它粘贴, ctrl v 粘贴,这不一样的吗?你看啊,我现在给它保存一下,它会出现什么后果呢?咱们在这再后处理一下, 看着没触控器有三个,他这个是啥意思呢?就是这个名,就是咱们后首里能看到的这个名,然后我这不是复制出来两个吗?这两个就是我要改的,怎么改啊?这个是 看这个,八四零这个不是吗?然后一个 o 的 是不是先改这个啊?咱们复制这块一定要注意啊,就是点之前的给他复制了这个点之前的给他复制右键复制,然后找到这个, 然后改。改几个位置啊?你看这个点之前的这个位置给他改了,然后这个位置给他改了,就是改两个位置,把这个洗这个给他改了,右键粘贴, 他不就变了吗?然后这个也给他改了,右键粘贴, 这不就改了吗?就这个就改这一个位置啊,就这一个位置,然后改完之后他这个就变了。那这个咱们要起个什么名呢?他不是告诉咱们了吗?八四零的这个这个给他复制一下,龙门立洗头, 右键复制,然后把这个数控器给他改了,右键粘贴,然后文件保存,不用关。咱们来到 ug 把这窗口给他关了,然后右键后处理, 看着没他就变了。龙门利喜头,龙门利喜头就是那个八四零,那个他就出来了。那这个还会不会这个是那个 o, 那 个咱们找到那个 o 就是 千万别自己手写,那万一人家是零呢? 找一下这个这个 o, 这个就复制这个名就行。复制,然后一会我再给你讲一下他啥意思啊?把这个喜这个给他 粘贴,然后这个也是把这个洗就点之前那给他粘贴了,不要了,要咱们现在复制这个,然后这个啥名呢?也上这找来 这个就按照他这个给他整。西门子龙门侧洗头,然后复制,把这竖缝洗给他改了, 粘贴文件保存,再来邮寄。看一下啊,随便点一下右键后处理,西门子龙门侧洗头就加上了,是不?看着就挺简单的,这个就是固定的方法啊。 然后给你讲一下他啥意思,他这个名现在不乱了吗?点一下名称,找着随便找一个啊?找这个吧,这不出来了吗?你看他这个八四零、 d 这个就咱们刚才改这个吗?他这三个文件是一组,三个文件才能组成一个完整的后处理, 然后咱们这块呢,就是这个名称,就逗号之前的就是咱们后处理能看到的那个名,然后这后边就是他是什么组成的? 你看这个八四零这个吗?到这个点,这块这个 t、 c、 l 这个就是这个文件,就这个文件这第一个这段,然后这个呢? d、 e、 f 这个就是这个文件 这个文件,然后它就不用管了,因为它只有两个位置需要改,相当于是把这两个文件给它弄到这里来, 然后起一个咱们后处理能看到的名就完事了。但这个可能你听的也是稀里糊涂,他就是固定的格式,这个就是最开始我也不懂这玩意,就是你用的时间长了你也不一定懂,那你就知道他就应该这么用就行了。

这节课我们学习什么是封装,然后将代码分别封装成函数 封装可以理解为将一个完整功能的代码单独起一个名字,然后再需要使用它的地方调用。 我们先封装角色跳跃的动作,起一个函数,名字叫 raw gem, 然后将键盘监听中的角色跳跃代码剪切到我们封装的函数中, 然后使用 vs 点 raw java 调用。 vs 的 意思是指当前这个脚本文件的引用空间有点抽象,如果不理解没关系,以后的课程会详细讲解。 然后我们再将角色的动画播放也进行封装, 创建一个名字叫 row action 的 函数,将代码粘贴进去, 在使用的地方通过 this 点 row action 调用。 我们删除掉不需要的代码和注示 背景,播放动作封装, 这样看起来代码是不是就特别整洁了? 下面我们了解一下函数的传递参数与返回值,目前我们用不到这两个特点,所以我们写一个测试, 创建一个 test 函数,然后括号中填写 b, c、 d, e 五个参数,然后再启动入口,调用这个 test, 并传入一二三四五,我们打印它看看。 控制台打印了我们传递的数字,这就是参数传递, 我们再增加一个返回功能,加上 return e 加 d, 加 c 加 b 加 a 的 总和,然后在调用的地方接收返回,再将返回的变量打印, 我们再去看看结果,控制台打印十五,这个数字就是我们传递的数字总和。 好了,我们删掉这个测试。 下面我们要修改代码,让角色跳跃的时候显示跳跃的图片,落地后继续播放奔跑图片。 首先我们先将角色跳跃的图片拖入 row 节点下, 然后隐藏它, 创建一个叫 state 变量,作为动画状态使用。我们需要将 state 放入函数外面,这样在整个脚本中都可以使用它。 然后在动画播放的 set interval 中使用 if 判断 state 等于一的时候进行 return, 也就是跳过此次循环,一直到这个 state 状态不等于一为止。 然后我们在角色跳跃时修改这个 state 等于一,这样就会暂停角色跑动的图片切换。在 state 等于一后面,我们将跳跃的图片显示出来, 在缓动落地后,加入一个回调事件,将 state 再修改回零。我们看下效果, 这时角色跳跃的图片没有隐藏,我们去将它隐藏, 再来看看效果, 发现角色图片切换时会出现闪动的效果。我们在落地后,因为 siting table 定时器有延迟时间,并不能第一时间切换,所以我们要补一张出示图。 然后我们再看看效果,这时没有闪动效果了。现在又有一个新的异常情况了,在连续不断地按下跳跃时,角色会一直飘在空中, 我们来解决这个问题,我们需要在跳跃时用 state 判断等于一的时候不可以再跳跃。 然后我们再看看效果, 这时连续按跳跃也不会出现刚才的异常了, 但是在跳跃时还是会有残影出现,原因还是定时器的延迟时间导致的。 我们优化一下,在跳跃时将跑动的图片都隐藏, 再看看效果。 现在没有残影了。 下面我们要检测角色是否跳跃。障碍物的功能, 我们需要使用 for 循环来检测 box 下的所有障碍物与角色的距离。 for 循环的逻辑和 while 循环一样,都是循环,区别是 for 循环可以根据一个自身的增减下标作为条件使用,在这比较合适。 我们使用 getward position 这个世界坐标来进行检测,因为我们的角色和障碍物并不是同一个节点下,所以使用世界坐标。 我们打印每次检测的距离观察一下。 打印的速度太快,不方便观察。我们将生成障碍物的功能先关闭,然后复制一份,让它只出现一次,这样有利于我们观察。 我们看到最短的距离检测是十四上下的,数值比较接近,所以我们取三式作为参考,先进行尝试。 删掉测试用的代码, 使用 f 判断。如果 diss 这个距离变量小于三十,代表没有跳跃过障碍物,并打印 game over。 控制台打印了 game over, 我 可以加快检测的速度来达到更高的准确度。 下面我们要实现出现 game over 就 代表游戏结束,让场景和角色都停止, 这样我们就完成了碰到障碍物等于游戏结束的功能。 下节课我们来学习在现有的基础上增加不同高度的障碍物,以及需要两次跳跃的功能完成这个小游戏。

这节课我们学习使用 set in to vo 定时器来控制角色的图片循环切换。 set in to vo 定时器和 while 的 运行规律类似,只是在 while 的 规律上增加了一个延迟时间,一千代表的是一千毫秒,也就是一秒。 我们打印这个 count, 观察一下在浏览器中的效果。 我们看到控制台打印的数字都是一秒一秒打印出来的,而 while 循环运行很快,一次就打印出所有的结果。 下面我们创建一个自定义变量 time 来暂存这个 set。 interval 定时器 结合使用 f 逻辑判断符来判断,如果 count 大 于时,就停止这个定时器, 切换浏览器看一下效果。 控制台打印到十一就停止了,以此功能就是将括号里的条件成立时就执行花括号里的代码, count 大 于十的时候就进入 control 停止定时器。 下面我们就使用定时器来切换角色的图片,让角色跑动起来。 我们需要修改一下 final 查找的角色的根节点 row index 这个变量代表着下标。什么是下标?可以理解为顺序标号的意思,从零开始代表第一个装载的内容。 我们每一次运行都将 children 里的三张图片隐藏,然后再显示出我们下标顺序的那张图片,这样始终都只有一张图片在显示。 每一次显示一张图片后,就将 index 的 数字加一,然后我们再判断 index 如果大于二,就让 index 等于零,这样就可以无限循环地切换三张图片。 我们去浏览器看看效果, 可以看到角色图片在跑动了,不过跑动的效果有点慢,我们去修改一下定时器的延迟时间, 修改为二百毫秒,也就是零点二秒,切换一张图片, 再修改为一百毫秒,这样看起来跑动就很快了, 到这我们的角色跑动就完成了。 下面我们需要让背景图片也动起来,营造一种角色在向前跑的视觉效果。 复制一个背景图片,粘贴到第一个背景图片的子节点中, 我们需要控制 position 这个属性的 x 轴向左移动,因为我们的画布是一九二零的宽度,所以我们让 x 轴从零到负一千九百二十就是一张背景图的宽度。 下面我们先使用 set 查找获取背景 b g 这个节点, 创建一个 pos 变量来接收 b g 的 坐标属性, 将 pos 点 x 减一, 然后使用 b g 点 set position 这个函数,将 pos 放入背景图片的坐标属性中, 我们再使用 if 判断 pos 点 x 小 于负一千九百二十时,修改 pos 点 x 等于零。我们去浏览器看看效果, 背景开始向左移动了,结合角色的跑动就产生了向前跑动的效果。 我现在使用退缓动系统来实现这个效果。 缓动系统就是针对节点进行各种动作的函数, 创建一个 and 三的坐标属性, 用四秒的时间让背景节点移动到负一千九百二十的位置。 执行结束后,再将背景节点的 x 坐标修改为零, 然后使用 unit 函数将以上两个动作打包成一个,再使用 repeat forever 将上面打包的动作无限循环,然后使用 start 启动这个缓动函数。 好了,我们去浏览器看看效果,定时器和缓动系统都可以实现这个功能。为什么使用缓动系统呢?因为缓动系统是针对节点动作所设计的, 性能上要比定时器好很多。下节课我们学习更多的缓动系统的使用,以及控制角色进行跳跃,躲避障碍物。

一分钟教会你一个图形化编程创意作品!今天给大家带来色卡闯关游戏要解决的核心问题,色块排列、随机色块关卡设计,游戏中指 使用循环嵌套完成色块排列,利用关卡变量完成第一关二乘二,第二关四乘四,第三关六乘六,第四关八乘八。通过变量调整保证色块整体排列在舞台中央, 利用私有变量与随机数关联每一关有色差的色块,有色差色块被点击会进入下一关,否则重置游戏。第四关闯过后游戏结束会在舞台展示闯 关用时。游戏规则介绍,第一关轻松,第二关还行还行。第三关,这差异也太小,看出来了吗? 第四关眼睛要花了,还好被我发现了,快来动手试试吧!

别再死磕代码了,现在用 cos 编程,一句话就能生成网页游戏,看我只输入做一个坦克大战游戏, ai 自动生成代码界面,一键命名,不仅可以下载原代码,本地部署,还能一键发布,直接部署更新,不用搭环境, 不用去抢新手,也能秒变开发者,这就是未来的编程方式,效率直接拉满。

大家好,今天这一期来教大家怎么制作人物角色的技能。我们会用到火焰的美术素材,进入到这个网址,点击这里下载,点击这里就可以下载美术素材。 修改好之后,在 burn debug 文件夹里面找到这一个十六乘十六的火焰图片,拖动进来,拖进来之后进行一下处理,这里选择 notify, 这里选择十六, 这里选中 point, 打开 spread editor, 还是跟之前一样,在这里 greet by southside, 然后选择十六乘十六 size 投拍关闭,这样火焰的特效就区分好了。我们把其中一个放到场景之中,然后打开 animation 窗口, 在这里给他 create 新的 animation, 命名为 fire。 把前四个图片拖动进去,拉长,然后再按倒置顺序三二一来一边 播放一下,看是否流畅,这样一个火焰的特效就做好了。接下来给这个火焰加上一个火焰脚本,因为我们是希望这个火焰碰到敌人造成伤害,所以要进行伤害判定的话,我们会需要 collider, 然后勾选 trigger, 给他一个 superglider 啊啊, 然后勾选 extra。 设置完这个火焰技能属性之后,我们就把它改一个名字,然后拖动下来成为 perfect, 这样火焰就做好了,场上的火焰可以先删掉。打开相馆键,开始让 ai 写代码, 我们来尝试创建一下火球技能,创建了一个火球技能,把它的按键设置为 k, 冷却时间三秒。 prefap 选择,我们刚刚创建好了 fire, 他这边给我们新建了 skill manager, 我 们把它贴在 player 下面,然后把我们刚刚新建的火球技能拖动到这里面,接下来测试一下这个技能 出现了报错和闪退。 enemy is not defined。 它这个的原因是我们判断敌人的时候,我们的 enemy 它是没有 tag 的, 所以其中一个解法是我们直接给敌人加上 enemy tag。 另外一个时候我们告诉 ai, 我 们的 enemy 在 这个 enemy 层里面,只靠层级就可以判断,这也加上 enemy tag 可能会速度快一点,这个也是比较常用的一种方式。 好,这个技能是有效的,直接给我们敌人秒了啊。接下来我们做治疗的建回到 s o n, 新建一个治疗建, 使用 l 作为按键,三秒十秒。这里我需要新增一个治疗的粒子效果。在这里新建一个 particle system, 调整一下配置,一点五, 取消勾选都不要循环。 let's see the reason space 里改成 world, 这样生成后的位置以世界坐标为准,不以生成点坐标为准。如果生成点在这个时候移动,那已经生成的粒子就不会跟着移动。 you may 想整理想整理,再来这里新建一个,甚至十倍立减。 she may 这里选择 fox it may flow gage 温柔死体,这个是可以控制的,就是运动速度。 y 九零点三,缓慢上升文档这里材质要改一下,我们新建一个 material, 最新建了一个文件夹,把 material 放进去, 一个新建的 material 给它改成 standard on lit, 其他地方不用动。然后我们回到这个 party 设置层,把我们刚才新建的 material 拖进去,最后把这个 layer 可以 设置在上层。测试一下 你这个就很像一个治疗机能的效果,这部分就好了,可以保存为 print。 呃,在这里我们把这个 five percent, 把这个立即效果拖拉进来,这一个治疗技能就做好了。再把治疗技能拖动到我们的 school manager 这里, 我们来运行测试一下,然后使用一下治疗技能, 那这个技能也做好了。最后我们做位移技能,还是在 s o 文件夹下面新建一个冲刺技能, 这里选择用 shift 来作为按键,左 shift 就 时间给两秒调整一下,把技能加入技能列表, 可以达到冲刺的效果。 我们再把场景中的这个粒子效果删掉, 那三种人物技能就做好了。 你可以使用之前攻击动画的相关教程去实现技能的释放动画也可以使用之前教的血量条的相关教程 在回零点显示技能的冷却状态。

推箱子的游戏我们之前都玩过,我这里用 scratch 制作了一个通过上下左右键控制角色的移动,可以推动箱子,将箱子推到指定的目标位置, 当两个箱子都被推到指定位置之后,胜利了。这里主要是玩家和箱子的代码,当立即被点击,设定一些出使值,当接收到换关卡的时候会制我们所有的地图信息都是存在了 一个列表,里边所有元素,第一行全是零,表示所有的都是空白的。第三行有一堆的一表示砖块,第五行有一个二,表示这是玩家的初始位置。 第几行第几列是二的时候,移到行列对应的 x y 的 坐标,然后进行显示,当按下向左的键的时候,然后设定他的移动方向是左,记录当前的玩家位置。 s 坐标移动,负三十向左移动,如果碰到了墙或者是摆放成功的箱子,然后让他回来,他是不能穿墙的,如果碰到了箱子,就要判定箱子的后面 是墙还是还是空白的,如果他是墙,这个时候我们的玩家是推不动的。碰到了箱子,然后再移动负三十,然后将新的作新的这个坐标设为玩家的位置。广播箱子移动, 这时候我们要推动箱子,箱子要往下走一个格,其他的也是一样的。在这个造型里面我们有很多的造型,最后有一个 box 造型,因为我们的玩家是七十乘以九十一,七十二乘以九十一, 他是要比三十乘以三十的格子大的。如果我们不换成 box 造型的话,他检测的时候会 直接检测到碰到了墙,我们向下的时候,然后把它去掉,我们可以试一下,我们发现他是走不了了,因为头和左侧身子已经碰到了墙,所以说我们要先换成 boss 造型,然后进行碰撞检测,检测完了之后,然后我们再给他换回来。 在碰撞检测的过程中,他是用的 boss 造型,然后检测完成之后,然后我们换回真正的造型。在箱子这个地方,最开始是我们他是三的时候,我们进行一个克隆,因为可能有多个箱子, 并且克隆编号加一。第一个克隆的箱子,他的编号是一,第二克隆箱子是编号是二。箱子移动,玩家推动箱子,然后箱子要进行移动,这里有多个箱子,所以说我们要判定是哪个箱子。移动 s 坐标和玩家的坐标是重合的,因为玩家推动的箱子, 玩家推动箱子,然后站到了箱子上面,然后箱子往右走一个格,如果是右的话,然后往右走换造型,如果是左的话,往左走换造型,换造型主要是为了判定他有没有碰到目标,如果碰到了目标, 那我的就把当前的坐标 l、 y 坐标分别赋赋值给箱子成功 x 和箱,箱子成功 y 克隆摆放成功,然后当作为克隆体启动的时候,然后移到这个进行显示,成功的个数加一。成功的个数和目标个数相等的话,然后广播胜利, 我们的目标个数是根据这个目标进行判定的,目标的代码是四,如果是四的话,然后克隆,然后个数加一。