粉丝33.9万获赞204.1万

scratch 基础入门教程第七期,今天来做一个射击类的游戏,炮塔防御。先来看完整版的效果,中间是我们手绘的炮塔造型,用鼠标控制他的旋转,按下空格发射炮弹。红色的方块是敌人,他从四面八方向中间靠拢进攻,我们的炮塔被炮弹击中就会炸裂消失, 智商耳瞎。降落的红色线条呢是我们的超级大招,按 m 键来触发,所到之处呢是寸草不生,敌人碰到炮塔。游戏结束, 首先绘制炮塔的造型,随便画一个矩形出来,稍微调整一下他的大小,我们的画布是可以放大的, 一定要注意。手绘的造型呢,默认是朝向九十度的,所以我们得把它按照炮塔向右的情况来绘制这个造型,把它的颜色调整成绿色,当然你可以选择你喜欢的颜色。接下来利用锚点工具,也就是工具栏当中的第二个工具, 去拖拽长方形的四个角和他的边缘,不断调整他的形状,得到一个你满意的炮塔造型就可以了。然后利用选择工具调整一下他的位置,把他的几个中心对准我们画布的十字花,这将会是他的旋转中心。 接下来还是利用矩形工具给他画一个炮管,接在身上就可以了。最后来做点装饰,按住 shift 画一个正圆,再按住 shift 画一个正方形,把他们点缀在炮塔盖上,给炮塔进行编码。他的代码很简单,首先要移动到屏幕的中心,也就是坐标零零的这个位置上去, 然后重复执行,不断面向鼠标指针。这个我们以前经常做了,炮塔的代码还没有完成,但是先放在这,我们新增一个角色,也就是炮弹,选择我们常见的这个球的造型就可以了,他默认有很多种不同颜色的造型,删掉无用的颜色,把第一个复制一下, 继续利用我们的这个锚点工具去拖拽他的边缘,把他制造出一个爆炸的效果。我们发射的是圆形的炮弹,等他击中目标的时候就给他切换成爆炸的造型。选中这个造型,调整一下颜色,把他这个渐变色换成纯黄和纯红,让他在屏幕上更明显一些, 大小也给他稍微的放大一些,手动调整他的造型大小,设成三十,同时把名字改一下,不使用他默认的角色名字了。炮弹角色肯定是要使用克隆体功能的, 所以他上来先做一个隐藏位置呢,给他调整到移到炮塔的位置上去就可以了。接下来的操作有点反直觉了,正常来讲,我们肯定会想到要给炮弹加一个克隆自己的代码, 但这次我不能这么做,而是要在炮塔这个角色里边增加代码,当按下空格的时候执行克隆。可是呢,这不是克隆自己, 是克隆炮弹这个角色,原因我待会会解释。先来完成。炮弹里当作为克隆体启动时,对应的代码 本体是隐藏的,作为克隆体启动的第一件事情就是先显示出来,然后就是要调整方向,炮弹被发射出去,他的方向呢,跟这个炮管应该是一致的,所以呢,他要面向炮塔所朝向的方向,注意是面向炮塔朝向的方向,而不是面向炮塔 这里呢,我们可以通过侦测积木里边获得到炮塔的方向,把它填入到面向这个积木里就可以了。方向调整好之后呢,我想先让他大幅的移动几步,让他移动到炮管的末端位置上去, 这里呢,我需要重复实验的去调试几次来确定到底移动多少步。按下空格产生克隆体,看一下他的位置是不是炮口的末端。每个人画的炮塔都是不一样的,所以这里呢,需要你自己去调试出来。你所需 需要的移动步数,方向位置都准备好了,现在开始发射炮弹只需要一个重复执行,每次移动五步就可以了,具体的你也可以自己微调, 简单的试色一下看看效果。然后我会用一个例子来说明,为什么我不把克隆炮弹的功能放在炮弹这个角色本身来实现, 我给炮弹角色也加上按下空格就产生克隆体,同时呢把原来炮塔里的代码先给他断开,然后我们验证一下,看看这样会发生什么样的事情。注意看, 我只按了几下空格,瞬间就乱套了,这是因为我们之前说过克隆体呢,拥有这里面的全部代码的功能,也就意味着当你按下空格的时候,产生克隆体的可不只是原来的那个隐藏的炮弹,所有已经发射出来的炮弹也都会产生新的克隆体,一变二,二变四,不断的翻着翻的往上涨。 所以当我们使用克隆体的时候,一定要小心,不要想。当然千万不要忘了,克隆体也会无意当中执行那些你不想让他执行的功能继续恢复成原来的代码,我们还是让炮塔来产生克隆体, 紧接着就发现了新的问题,按住空格不放呢,这个子弹的密度太高了,不合理,给他加一个等待零点二秒啊,稍微的等待一下就可以了。问题解决,继续给炮弹进行编码。 克隆体使用第一要点呢是避免让他执行不想执行的代码,那第二要点就是注意让他在合适的时机删除克隆体了。对 炮仗来说,碰到边缘就应该删除克隆体,当然碰到敌人也要删除克隆体,那我们先把敌人这个角色给他画出来,很简单,利用矩形工具按住 shift 画一个正方形出来,颜色呢,你自己随意搭配就可以了,大小不要太大,这是原始造型,把它复制一下,我还需要一个炸 炸裂之后的效果,接着改一下他的角色名,就是敌人。接下来用橡皮工具给他划上几刀,把它充分的划开,划成几块,然后把这些碎片向四周脱坠,这样就形成一个炸裂的效果了。回到代码界面,敌人开局也是要先隐藏的,因为他也要用到很多的克隆体, 同时注意调整一下初始造型,应该是方块造型的,立齐之后,这个本体需要不断的重复执行来产生克隆体,同时呢,他的位置应该是不确定的,以前我们也做过类似的功能,移动到随机位置来产生克隆体, 但这里呢,有一个问题,如果这个随机位置刚好碰到了炮塔,那这游戏就玩完了,或者这个位置离炮塔太近,你也是无法防御的,所以必须加一个前置的条件,一到随机位置之后,如果这个位置呢距离我们的炮塔足够远,那么我们才让他克隆,否则的话就 不要克隆了。怎么判断他足够远呢?首先在运算类积木里边是可以比较大小的,我们拖过来一个大于号,把它填入条件里边,那我们判断的目标呢,就是跟炮塔的这个距离,这个在侦测里也是可以获得到的, 把它填进去,我们判断这个距离是否大于一百八。为什么是一百八呢?最上边或者最下边距离炮塔的距离刚好是一百八。同时如果你产生了一个克隆体,那么就要稍微的等待一下,这里我们等待零点五秒,目的是避免短时间产生大量的克隆体。 当作为克隆体启动之后,首先是要显示出来,然后调整方向,我们要面向炮塔的方向,从不直行,每次呢移动一步。如果敌人碰到了炮弹,就要删除克隆体,但是在删除之前呢,得先切换一下造型,换成炸裂造型,而且要维持零点一秒的时间, 不然的话你是看不清这个造型的存在的。先切造型再等待,然后再删除克隆体。类似的炮弹这一边呢,如果他碰到了敌人这个角色,也是要切换造型,然后删除克隆体的, 同时注意把他的本体初始造型先设置成原始造型。切换造型之后,删除克隆体之前,一定要记得等待零点一秒,不然这个造型你是看不见他的。这时候可以来试试效果了,基本上接近成品了, 炮弹因为比较小,他这个爆炸效果可能不明显,但是我们这个敌人的爆炸效果还是很炸裂的,现在还差一个环节,就是判定游戏失败,当这个炮塔碰到我们敌人决选的时候,就停止全部脚本,游戏结束。 顺带小的我在给发射炮弹的时候增加一个音效,给敌人角色也增加一个音效,用在他发生爆炸的时候,我们从他自带的这个音乐列表里边去 筛选一下,找一个适合的声音给他加进去。现在其实这已经是一个完整的游戏了,有攻有守,有判定失败的条件,但是还觉得不够过瘾,我想给他增加一个大招,可以瞬间消除屏幕上所有的敌人,会是一个新的角色。造型非常简单,我只是想要一条激光而已,所以就是一个很长很长的矩形就行了。 记者,调整好中心点,把图形的中心跟这个画布的中心对应上,代码也非常简单,对齐之后移到整个屏幕的顶端,坐标呢就是零一百八,然后隐藏起来。 当按下 m 键的时候要触发这个大招,他要至顶部,一秒钟之内移到最下部,我们利用在一秒内滑行到零负一百八,当然他要先显示出来,移动到位之后再次隐藏,同时返回到最上部。零一百八。这大招可不能无限放这里,一定要加一个等待五秒,当然你也 可以把它调的更难一些,还差最后一步,对敌人碰到大招之后,他得删除自己才行,所以在这里做一个调整。判断条件呢,从碰到炮弹变成碰到炮弹, 碰到我们这个角色一,这样大招才算是生效了。好了,一个射击游戏炮塔防御就完成了,都来试试吧!可以把你们的改编作品录成视频放在评论区。

这是我们塔防游戏的第三集,在这一集中,我们将会实现让炮台跟踪每一个敌人并展开攻击。 很多同学都在催促老师赶紧更新第三集啊,首先呢非常开心啊,这个系列教程得到了这么多同学们的喜欢,那我们第三集之所以更新的比较慢,是因为这一集是我们整个系列教程中最难的一集。 为了实现跟踪每一个敌人这个功能,我们要对列表进行大量的操作,并且呢会运用到两个数学公式。 当然呢,大家也不用太担心,在第三集之后,我们的教程呢就会相对简单一点,所以大家一定要攻克第三关。好,那话不多说,我们现在开始编程, 为了实现让炮台能够监控每一个克隆体的功能,我们呢去给他单独的 建立一个积木,这个积木呢就是专门用来监控敌人并展开射击的,我们制作一个新的积木,给他起个名字叫 炮台监控与射击。好用这个名字好,那这个模块什么时候使用呢?我们让他在放下鼠标之后, 放下炮台之后,开始一直监控每一个敌人,那我们把这个地方呢稍微优化一下,我们用成如果,那么否则, 如果等于选中让他跟随鼠标进行移动,一旦放开了之后呢,他就应该不断的去监控敌人,然后呢展开设计好,这是一个大的框架,我们 为了实现能够监控每一个敌人呢,我们需要有一个变量,当我找到了我的目标敌人之后呢,我要对他进行展开攻击,所以我建立一个变量啊,仅次用于当前角色叫目标敌人的编号,目标敌人 编号,我要去找到这个克隆体里面,我要先攻击哪一个好?这呢电量很多,我们把其他的先隐藏一下,然后还有啊,敌人里面的这些 好,是保留一个我们新征的好。为了找到这个目标敌人的编号呢,我们就需要把列表里面所有的敌人编号都找一遍,对不对?那么就再来一个检查 敌人编号,我要把所有的敌人编号呢都检查一遍,看谁在我的攻击范围之内,并且离我最远,先攻击哪一个好? 这两个变量,那一开始的时候呢,先把这两个变量的初始化一下。目标敌人编号刚开始不知道是谁就设定成空,那检查敌人编号呢?我从一开始去啊,检查一二四零,待会呢,一开始检查的时候把它设定成一, 每一次我都应该把我们所有的克隆体都检查一遍,看看谁应该被攻击,对不对?所以我应该来一个重复执行去检查。重复执行几次呢?我们的这个 敌人编号有几个,我就去检查几次,我们需要在运算里面找到有一个, 在这里面有一个项目数好,敌人编号的项目数,它里面有几个,我就去重复执行,检查几次。每一次检查的这个敌人编号呢,我都给他增加一,那这样的话,第一次检查的是一,重复一下,第二次检查的是二 啊,这里有一个细节,就是我这个敌人编号呢,他是从一增加到二,增加到三啊,按依次顺序增加的,但是我这个克隆奇的编号呢?可不一定,因为有可能我把第一个先打死了,那下一次我列表里面 敌人编号里面纯的,那这第一个呢?不一定就是一了,所以我需要找到我检查的第一个他的编号到底是几,所以我们还是需要用一下敌人编号的第几项。我检查的敌人编号呢,是第几项把它放进去, 比如说这个编号现在是我们把它设定成一的话,那他检查了应该是第一个编号,如果我二现在存在一里面,检查就应该是二了。我们真正要检查的敌人编号呢,应该是里面存的这一个,所以呢我再建立一个变量, 检查敌人编号他真正的 id 是多少,我把它存一下,然后呢把它设定为 检查敌人真正的 id, 设定成敌人编号的一目标,像这样的话才能真正的去检查每一个敌人。 好,这里有一个小小的失误,这个应该是检查敌人编号。好,那有了这个敌人的编号呢,我们就要去测量一下到这个克隆体的距离了,那我们再建立 一个积木,它的作用呢就是计算一下到敌人的距离,好完成。好。那怎么样去计算一下到这个克隆体的距离是多少呢?可能我们会会很自然的想到 我们侦测里面有一个盗贼贼的距离,盗贼贼的距离,比如说选择敌人。啊,那在这个地方呢,我们不能用这个模块是,呃,原因是因为这个呢,只能检测出来我们炮台到 人体的这个距离,并不能测量出来到克隆体的距离,所以这个地方呢,需要我们自己呢运用数学公式来进行一下计算。 那应该怎么计算到敌人的这个距离呢,我们要通过每一个克隆体的 s 坐标,歪坐标我们已经存着了,对吧?通过这两个 坐标以及我们炮台的坐标展开一个计算,要用到一个数学公式。好,那我们先把它改一下,我需要呢给他添加两个输入项,这两个输入项呢就分别是敌人的 s 坐标和敌人的歪坐标, 敌人歪坐标。 好,有了这两个坐标呢,我们就可以配合炮台的 s 坐标歪坐标进行一人距离的这个计算了。那我们建立一个变量 紧身为单身角色到敌人的距离。 好,那到敌人的距离呢?我们把它设定一下,设定为这个地方呢,就需要用一下我们刚 刚才那个公式了,我们需要用一下减法,低音的 x 坐标减去炮台的 x 坐标, 然后他的平方我们直接复制一下,让他们两个相乘 放进去。放进去好,然后呢还需要再加上 歪坐标相减他们的平方,然后呢我们再复制一下。好,这个地方呢改成敌人歪坐标 减去,这也是歪坐标, 把他们 加在一起好,然后呢还需要有一个平方根的操作,在运算里面有一个平方根好把它放进去 啊,这是我们数学上怎么让球两个点之间距离的一个公式,如果你还没有学过的话呢,你可以啊,先根据我的这个模块呢把它拼出来啊。这些告诫我们一定要好好的学习数学,在游戏编程里面后面呢也会涉及到大量的数学,这样呢你的游戏才会非常的丝滑。 好,那接下来呢,我们就可以把这个新的模块呢运用到我们监测的这个模块里面去了, 把它拖出来去计算一下到敌人的距离。好,那这个地方应该填哪个东西呢?我们要去找一找检 他的这个敌人编号 id, 他到我们炮台的距离是多少?那首先要找到他的 s 坐标和歪坐标,我们找到我们的乘着敌人 s 坐标和歪坐标的这两个列表。啊,那这两个列表他的第几项呢?我们只要把敌人的编号放进去就可以了,我们找到 第几项?找到敌人 x 坐标的第几项呢?检查的敌人编号 id, 这一项就是他的 s 坐标,同样的我们复制一下,找到敌人的歪坐标的 编号 id 对应的这个值,这样的话他就能够把到敌人的距离给计算出来了。现在呢,我们已经能够通过这个新的模块计算出来每一个克隆体到炮台的距离。 那接下来我们就要去找一找,在这些敌人里面哪一个是我们要攻击的这个目标呢?我们呢有两个限制,我们先加一个判断, 通过一个判断去找一找到底哪一个目标是我们要攻击的。我们有两个条件,第一个条件呢是首先这个敌人呢得在我们攻击范围之内,对吧?所以呢我们来一个小雨,如果他到敌人的距离 小于我们的攻击范围,我们要找一个电量用来存一下攻击范围。好,那这个攻击范围呢,我们可以把它放在这个 攻击范围的角色里面,给他一个初始值,我们把它设定成一百吧。 好,那呃,如果我们发现这个敌人小于我们攻击范围的话,我们就可以对他们展开攻击了,但是呢有可能有好几个敌人都在我们攻击范围之内,我们先攻击哪一个呢? 我们的策略是先攻击离我们最远的那一个,先把跑的最快的这个即将跑出我们范围的这个干掉。那这个怎么去计算呢?这里就涉及到我们怎么从多个距离里面找到最远的那一个,涉及到一点一点点 断法的知识。那这个呃细节逻辑呢,老师就不在这里阐述了,大家可以啊,根据老师的代码呢,先理解一下。好,我们呢需要去找一下最远的距 离,这个变量呢还没有建立,我们创建一下 最远的敌人距离。 好,我们把每一个敌人进度都去跟他比较一下 敌人进度的这个编号对应的敌人进度。然后呢去跟他比较一下,看他是不是大于我们的最远的距离, 大于我们的到敌人的最远距离,不是这一个最远的敌人距离, 把这两个条件呢合并在一起,如果他满足这个条件的话呢,这可能是我们要攻击的目标敌人,我们先把这个最远距离 给他更新一下,将最远的敌人距离更新成我们正在检查的这么一个敌人编号,他对应的这个距离,并且呢把我们的目标敌人的编号,目标敌人的编号 也更新成我们正在检查的这个敌人编号 id。 这样的话呢,我们通过重复执行检查每一个敌人,我们就能够最终在这个重复执行结束之后找到我们的目标敌人编号。那我们来简单的测验一下这个功能是否管用。 好,我们呢让他一边监控呢,一边说出来他找到的那个敌人啊,目标敌人到底是谁?我们找一个说,每次讲 完了之后呢,都把这个目标敌人的编号呢说出来,目标敌人编号说出来, 来,我们运行把炮台赶紧往这一放好,一开始呢,他检测出来,一是他要攻击的目标,等到快走之后呢,他应该会再切换一下,我们再试验一下 一二,好,然后呢,哎,最后呢他又检测到九了,这是因为他不仅呢是要离距离最远,而且呢还要在我们攻击范围之内才可以。这个攻击范围呢,我们设定成了一百, 对吧?测定成了一百,这个一百的范围大概是这么大,我们可以通过调节这个造型呢,再去试验一下, 现在我们已经能够监控每一个敌人,并找到我们的啊目标攻击敌人了,但是呢有一个小小的问题是,这个炮台是不是并没有当敌人出现的时候,立马把它转向过来,并且随着敌人的移动进行跟进呀?那这个功能呢,我们现在来把它完善一下, 那这个呢,我们首先是等到所有的判断结束之后,我要去判断一下我有没有找到目标敌人,对不对?那我们这有一个目标敌人编号,如果他不是空的话,证明我们找到我们要攻击的这个敌人了,所以我们找一个 不成立,什么情况不成立呢?他等于空不成立等于等于目标敌人编号, 如果经过了这一番操作,他还是空,那就说明没找到,如果他等于空不成立,说明他找到要攻击的这个目标了, 那我们就要计算一下到这个目标敌人他的角度是多少,然后我让我的炮台扭转过去,那这一部分呢,要稍微复杂一点,他涉及到一些三角函数的知识,那这个知识呢,应该是要到 高一才会学习啊,所以呢,同学们可以根据我的模块呢,把它先做出来,以后等学到这一部分知识的时候呢,你再加深一下理解啊。那这个公式呢,我可以跟大家先展示一下。 因为敌人有可能在我们炮台的两侧,所以我们要分成两种情况,然后找到目标敌人的 x 坐标,敌人的 x 坐标的第目标敌人编号的这一项,如果他大于我们的炮台的 s 坐标 是一种情况,在这边是一种情况,在这边是一种情况。好,然后呢我们要去计算一下他的这个公式。我们找到运算里面有一个计算,有一个 a 碳, 让他们的 y 坐标相减除以 x 坐标相减,就是我们要的目标 减去歪,坐标去掉,然后呢复制一下,我们 x 坐标也相减, 然后把这两个数呢相除一下, 放进去, 放进去,最后算出来这个值呢,算一下他的 a 碳,鱼切,然后找出来他的角度,这个呢是我们计算出来的基础角度,然后呢要再根据他的位置呢做一些变化。我们有一个 相减的过程,我们让九十减去算出来的这个值就是我们要面向的方向了, 面向什么方向?把它放进去好,如果他在左边的话,我们还需要把角度呢,再调整一下好这个过程呢? 这个计算角度的过程,大家理解起来肯定是有问题的,这涉及到呃高于的一些三角函数的知识,大家可以先把它做出来,学到这个知识的时候呢,再把它深入的理解一下,也有助于你啊高中学习的这些数学知识的深入理解。 那我们来测验一下这个功能到底管不管用呢?点击绿奇,然后把炮台拖过来。 好,我们发现当这个敌人进入攻击范围的时候呢,我们的炮台的角度就发生了一个变化,他首先朝左边瞄住 号一,然后等到他一到这边的时候呢,他又转了过来,这说明我们这一部分的代码是没有问题的,然后我们就可以把我们测试的这个 这个模块呢把它去掉了。好,那接下来呢,我们就需要让我们的炮台展开真正的攻击, 在此之前呢,我们先把这些电量和列表呢,把它隐藏起来。 好,这有一个最远的距离,我们给他加一个保险,这个他计算的时候呢,我们让他先从最小的这个地方开始判断,这是一个小技巧啊,我们保证第一个也有可能被选上。负九九九九 勾选掉。文件保存到电脑保存一下, 塔防游戏二三保存 好,现在没有那么多干扰了,我们可以再测试一下全屏测试一下。 好,我们能看到随着敌人 的行走呢,我们的炮台也会发生对应的旋转,非常好。接下来就是要攻击他们了,为了实现攻击敌人,我们需要有一个变量来标志我们是否展开攻击。我们建立一个变量,仅适用于炮台是否攻击 好,那这个变量呢?一开始我们把它设定成 no, 你不能上来就攻击,对不对?一开始当克隆体出来的时候,我们不攻击。 no, 然后什么时候可以攻击呢?我们在这个地方,当我找到目标编号的时候,是不是就可以开始攻击了? 好,然后呢?在这个炮台监控与射击的下面,我们来判断一下,如果他是 yes 的话,我就去攻击他, 我们找一个判断,如果,然后等于 是否攻击,如果是否攻击等于 yes 的话,我就要去攻击他。这个攻击呢,我们其实就是要做两个操作,第一个呢是把他的敌人进度你不能再走了,直接把他更新成大的,再见 敌人进度的第目标敌人编号的这一项,我们把它这个改成这个大的,找到更新,将它 替换为将敌人进度的第目标敌人编号项替换为带的, 你没有进度了,你要死掉了。好,然后呢,我们稍微等待零点,呃,一会呢,再去进行下一次攻击, 零点八,零点七也可以。好,那更新成带了之后,这个敌人到底怎么样被攻击消失掉呢?我们需要在这个敌人这里呢,再来一个把他删除的这个地方优化一下。好,这里 以前呢,我们是碰见舞台边缘才把他删除掉,现在我们加一个,或者他在中间被打死,也是需要把他删掉的。这个呢就是我们敌人进度。 好,敌人进度的第 克隆编号,克隆体编号,如果我发现哪一个克隆体的编号的敌人进度变成了带的死掉了, 这种情况呢?我就把这个克隆体删除掉。 好,我们测验一下,看能不能把敌人攻击掉, 我发现他的确在转弯,但是敌人并没有消失,并没有被我们的并没有把自己三这个克隆体删除掉,我们检查一下为什么? 好,我们把他的,我们再检查检查有没有跟踪到目标敌人,应该是跟踪到了,因为他已经在转弯了,我们看这个是否攻击 有没有发生变化,有没有重弄,改成 yes。 好,的确改成 yes 了,但是呢并没有消失,也就是说我们问题出现在这个地方, 当他等于 yes 的时候,他把它更新成了戴戴,然后呢这个戴戴呢?他并没有把它删除掉, 并没有进到这一步啊,那有可能是因为我们敌人进度的这个列表呢,又被这里更新掉了,对吧?只能是这个原因啊,这里我们应该加一个只有当敌人进度的这个东西,不等于代代,我们才要更新他的坐标,正常我们就不应该更新了, 加一个判断,如果等于带的不成立, 我们才应该去把他删除掉。好,我们再试验一下, 这时我们发现哦没有转弯了, 这可能有一些细节我们要处理一下。当我们把某一个删掉之后呢,我们就需要把他的编号呢和这个坐标呢都更新一下,把这个坐标呢直接不要让他再更新了,你既然被删除了,就都是空。然后敌人的这个 这个编号呢,我们也把它删除掉,根据这个克隆体编号,我们把它在敌人编号里面的这个也给他删除掉,免得我们 判断的时候出现错误。我们找到这个编号,他对应的真正的这个 id 克隆体编号,比如说三他对应的编号是这个东西,然后呢把它删除掉,删除到敌人编号的这一项,好,这样子 我们再来测试一下,我们把炮弹拿出来,好,我们能发现这一次真的是监控到敌人之后呢,就把他给删除掉了,他从我们敌人编号里面呢也去除掉了。 好,最后呢从这里走的时候呢,敌人编号也就消失了。我们最后呢把这个炮台这里的这个说出是否攻击,改成说出目标敌人的编号 验证一下。好,我们再来一遍 说出来,好,一号三除,二号三除三号三除四号攻击,六号攻击,十号攻击。好,我们这样的话呢就把我们监控到的在我们攻击范围内的敌人都给干掉了。好, 到这里我们这一集的目标呢就已经实现了,我们的炮台能够跟进每一个敌人,并且呢找出来我们要攻击的目标敌人,并且把他干掉。 但是这个攻击和敌人消失的这个特效呢,我们还没有做,只是让他突然把自己删除掉了。那接下来的 后面几集呢,我们会把这里面涉及到的一些细节把它完善一下,并且呢让啊我们的炮台有各种选择,让敌人有各种造型,总之呢是让游戏更加好玩一点。最难的部分我们已经在第三集完成了,第三集的确很难,大家一定要有耐心,根据老师的 代码呢,把它好好的整理一下。那这里呢我把代码呢稍微放大一点,大家可以就这一部分呢 查看一下,比对一下代码, 你可以暂停到某一部分去看一看是不是跟你的有什么不一样的地方。 好的,我们今天的教程就到这里了,我们下期再见。

在这个教程中,我将跟大家一起编程,从零开始做一个塔防游戏。这是教程的第二集,在这一集中,我们会监控每一个敌人的动向,并且开始建设我们的炮台。 如果你还没有看过第一集,可以点开主页查看之前的视频。 接下来我们开始编程,为了实现监控每一个敌人动向,我们需要建立一个列表,列表相对于变量,他存储的东西可以更多,因为我们有很多个敌人,所以我们需要存储的东西特别多。我们用列表来进行 关于列表的基础知识呢,在这里呢,老师就不多讲了,感兴趣的同学可以自行啊搜索学习一下。我们第一个列表用来监控敌人的啊,位置, 位置之其中之一的 x 坐标,所以我们把名字起成敌人 x 坐标,然后确定好,那他的位置呢?还有另外一个敌人的歪坐标, 歪坐标,好,有了这两个列表,我们就可以知道这个敌人随时随刻他在什么地方。另外呢,我们再建立一个列表,叫敌人进度 好,这个呢,用来存储这个敌人,他已经前进到呃,整个整个路程前进了多远啊?再建立一个列表,敌人编号 好,这个用来存储我们克隆出来的这么多敌人,他们每一个的编号是多少。好,那这些, 呃,列表呢?我们一开始使用的时候,首先要跟变量一样做一个初始化,这些一开始肯定都是空的,所以我们一开始要删除他们里面的全部项目,好,把这个改一下, s 坐标,歪坐标, 还有敌人禁毒,我们把它放在最前面,一开始就把里面的内容全部删除,然后呢我们先往敌人编号里面添加一些东西,这个呢是跟我们克隆体直接相关的,每一个克隆体都应该有一个自己的编号,所以我们建立一个变量, 建立一个变量,克隆体编号仅适用于当选角色,因为每一个克隆体的编号都不一样。确定,然后 后一开始把克隆体设定成零,在我开始克隆之前啊,然后呢再重复执行里面把克隆体增加一,这样的话第一个克隆体他就是一,然后第二个克隆体他的编号就是二。那现在呢,这个克隆体还没有沉到我们的 这个列表里面去,应该在什么地方做呢?在当我们克隆体启动的时候,我们要把编号呢,把它放进去,所以我们第一个将什么放到敌人编号这个列表里面呢?将克隆体编号这个变量 好放进去,那他的 s 坐标、 y 坐标和进度一开始是多少呢?这是我们的初始化,一开始 s 坐标肯定是空的, 对吧? 然后歪坐标也是空的, s 坐标 空的,我也主标是空的,还有他的进度呢啊,他就不是空了,他的进度是零对不对?进度一开始是没有走的,是零啊,当然这个呢用空也可以,后面我们在单独处理一下就行,这样为了简单我们一次性处理好,这样的话我们就做好了列表,在每一个科隆题启动的时候,他的初始的值。 好,我们可以先验证一下这样有什么效果好都添加了一个东西,然后啊,这个地方因为刚开始我们有啊,没有删除掉,我们把它删除掉, 再来一次会有四个东西进去,这是列表,然后再出现第二颗龙体的时候又会出现一个,待会呢我们再演示最终的效果。 好,那这个 s 坐标、 y 坐标和进度肯定是随着这个克隆体的移动要发生变化的,所以在这个重复执行移动的过程中呢, 我们还需要把他们三个进行一个数据的更新。好,他们应该放在这个地方。 那 s 坐标呢?是比较简单的,因为我们在运动模块里面有一个 s 坐标,歪坐标的直啊,他们呢是实时反应当前这个克隆体在什么位置,我们只需要把它加到列表里面去就可以了,他们就会不断的发生变化。 好,如果这样的话,我们会每一次都把 s 坐标加到敌人坐标里面,这样啊,是不太合适的,给你们演示一下效果, 比如说这样的话相当于每一个克隆体他会越加越多,这样显然是不对的,我们是希望一这个地方一直显示的是克隆体一的 s 坐标,他是在不断发生变化的,所以我们应该应该用列表里面有一个替换,替换把第一 边把 x 坐标里面的第一项换成 x 坐标,对吧?好,那每一个克隆体他对应的像素是不一样的,比如克隆体一在一号,克隆体二在二号,所以这时候我们就要用一下我们克隆体编号,这个变量 好用,他呢来找到我们对应的克隆体他的这个位置在哪里,然后更新他的 x 坐标,那歪坐标也是一样,敌人的歪坐标更新成这个克隆体,他现在的歪坐标。好,这个删除, 那敌人进度呢?也是一样,将敌人进度更新成他不能直接替换过来坐标,他应该更新成什么呢?因为敌人进度呢,他是数值越来越大的,他 应该是根据上一次的敌人进度的直加上他的移动的速度,所以我们应该先找到上一次的 他的进度,所以在敌人进度里面,我们找到第几项呢?克隆体编号这一项,这是他上一次的进度,然后我们给他加上他每一次的移动速度, 加上他每一次的移动速度,然后呢把它替换掉 往这边一点。好,这样的话呢,这三个,这三个列表就会根据我们克隆体的移动而不断发生变化。我们试验一下效果,一开始全部删除, 然后能看到 s 坐标有十个不断在发生变化, y 坐标有十个不断发生变化,敌人进度有十个不断发生变化,敌人编号呢,有十个不发生变化,因为我们只有十个。 到这里我们就实现了对每一个敌人情况的监控,那后面呢,我们就可以对他们展开攻击,那攻击呢,我们就需要一个炮台,所以我们首先来绘制一个炮台 啊,绘制炮台的过程呢,跟之前我们绘制呃这个地图和路线呢就一样了,我们每个学生根据自己的想象来自行发挥, 当然你也可以参考老师的这么一个呃,比较简单的一个风格。 好,到这里呢,我们一个基本的 炮台就已经绘制出来了,一定注意刚才的这个中心位置,我们把炮体的中心位置放在中心点这个方向,现在呢,我们把呃这些列表呢隐藏一下,来看一下炮台实地的效果。 好,这个炮台大小呢?稍微有点大。对,还行,我们可以全选一下,然后稍微调整调整它的大小。 好,那在这里呢,我正好讲一下我们这个中心位置点,重新回顾一下这个点一定要在中心位置,然后炮筒呢, 把它放在这个炮体的后面,用这个放在最后面,这样的话我们一个基本的炮台就绘制完成了。我们最终要实现的效果呢?是这个炮台呢,他在这边有一个商店的概念,我们里面有多种造型,可以啊,选择不同的造型,把 他摆在不同的位置啊,那所以虽然我们现在只有一个造型呢,我们先把这个功能坐在前面,让他放在啊右上角,我们给他来一个稍微小一点效果,选中之后再把它放大百分之六十。 好,没问题,往上面拖一拖,一开始加个绿旗,大小设定成多少?然后位置呢?给他固定一下造型呢,给他切换成造型一。 好,没问题。然后呢当我点击这个炮台的时候呢,我希望呢这个本体在这个地方是不移动的,然后出来一个克隆体跟着我的鼠标,这样的话我放在什么位置是控制这个克隆体就可以了。 那为了实现这个效果呢,我们需要有一个呃控制变量,用来标志我有没有点击到这个本体,这样的话他 才能跟着我去移动和放置。我们建一个变量,先建一个变量仅次用于这个炮台就可以了,叫呃,鼠标操作。 一开始的时候这个鼠标操作呢啊,什么都没有,是空的啊,当我点击他之后呢,这个鼠标操作变成选中就可以了,我们加一个点击的效果,重复执行,如果他被点击, 被点击呢,是两个事件的总和。首先呢,我们鼠标要碰到 这个角色,碰见鼠标指针,角色应该碰见鼠标指针,并且鼠标应该按下,按下鼠标, 这个代表着我鼠标点击了这个角色,如果点击了之后呢,我们把这个鼠标操作设定成选中好,设定成选中,选中好,这时候呢他就当这个克隆体启动的时候 选中,这应该克隆一下自己,对吧? 克隆自己,但是这个地方有一个细节要注意一下,如果我这样点击的话,好, 这其实已经有了好几个了,对不对?已经好几个了,我只点了两下,他有这么多,说明这个事件执行的特别的快,我们这个地方要加一个在克隆体之前,什么时候克隆呢?他跟着我的鼠标进行移动,当我 按下鼠标的那一瞬间,他是不克隆的,只有我松开的那一瞬间,他才会生成一个克隆体,并且跟着我的鼠标进行移动, 那这个松开怎么操作呢?我们把这个复制一下,这个是点击他松开的话,是我碰到鼠标碰到了这个角色,但是呢鼠标是松开状态,所以我们加一个按下鼠标不成立就可以了, 把它修正一下,这个就代表着我碰到他点击之后松开的那一瞬间,然后呢我克隆自己,等这件事发生的时候再克隆自己,我们加一个等待, 等待松开鼠标,然后来一个克隆体,来一个克隆体,当这个克隆体出现的时候呢,我首先让他稍微变大一点点,跟我们的本体有所区分,然后呢他就应该重复执行, 跟着我的鼠标进行移动了,跟着我的鼠标进行移动,移到鼠标指针位置来实验一下,点击,哎,跟着我的鼠标进行移动了,哎,我再点击鼠标的时候,他是不是没有放下呀?我们来做一下这个功能, 这个呢就要利用到我们鼠标的这个选中的状态了,现在呢还是选中的这个变量,变量还是选中的值我们松开的那一瞬间呢,把这个变量改掉就可以了。我们这里首先加一个判断,只有当这个变量是选中状态的时候,他才跟着鼠标进行移动, 如果不是的话,他就不跟着他移动了,等于选中,然后一道鼠标指针。另外一个情况 呢,当我点了鼠标之后呢,我希望他能够把这个变量修改一下,如果我点击了按下了鼠标, 他就应该在松开的时候,他就应该呃变一下这个变量,跟这个一样,当按下鼠标不成立的时候,等待 松开鼠标的一瞬间,我把这个变量的操作呢给他设定成空,不再次选中了, 好,当这个变量变成空的时候,这个条件是不是就不成立了,他就不会再跟随鼠标进行移动了。 走,你点一下,停在这了,再点一下,又送了一个新的,这样我们就可以随时来复 至多个这个炮台。 但是现在还有一个小小的问题, 当我去放置这个炮台的时候,我是不是并不知道他的攻击范围啊,只能放一个大概的位置来。为了解决这个问题呢,我们来绘制一个角色来代表着他的这个攻击范围,把名字改一下攻击范围,顺便把炮台的名字也改一下 炮台好,这个攻击范围呢?老规矩,我们按自己的想象来画一个,那这里呢,我就选成一个白色的,有一点点边框的这么一个 啊,造型啊,记住注意按住 shift 键,按住 shift 键就可以啊,大概这个攻击范围吧,这样的话不至于太 夸张。好,这样就可以了。然后呢,我们来控制这个攻击范围的角色什么时候显示啊?这个呢,又需要一个变量来这个控制,我们创建一个变量,因为这个显示与否呢,跟我们炮台的这个 状态也有关系,所以我们希望这个变量呢,能够让这两个角色都看得见,我们选择适用于所有角色叫是否显示攻击范围啊?致辩一次啊,这个变量的名称好,一开始的时候我们把这个变量呢 设定成 no, 不显示,需要他显示的时候,我们改成啊 yes 就可以了,所以我们加一个呃,这个判断条件,如果这个攻击犯 认为啊变量等于 yes 的话,他才显示,我们该找到这个变量,如果他等于 yes, 我才让他显示出来, 如果他是 no, 我就让他隐藏,那刚开始一开始是 no, 所以他肯定是隐藏的,对吧?那什么情况下他应该显示呢?哎,当我们的炮台克隆出来一个新的的时候,跟随鼠标移动的时候,他是不是应该显示出来呀?那这个地方我们把它改一下,将 是否显示攻击范围设为 yes, 然后当按下的时候是不是就把它 隐藏掉?假承诺,来,我们试验一下,点击显示了放下 no, 但是他是不是并没有跟随我们的炮台进行显示啊?啊?那这个地方我们跟炮台一样,当他显示出来的时候,加一个移道鼠标指针位置, 哎,是不是可以了?那现在呢,还有两个问题,第一个是炮台看不见了,另外这个白色呢,有点,呃,把我们的路径遮住了,所以我们给他加一个呃透明度的概念,在特效里面加一个 虚像特效设定成五十,我们看看效果,在这个地方 五十,哎,这个状态差不多,我们把它放在这里,那同时呢,我们让他遮住这个炮筒,让炮筒也有这个虚线的概念,所以我们把它放在最前面, 哎,再试验一下,哎,这时候这个效果就比较理想了,松开的时候呢,他又会消失。好的 好,那我们今天的呃教程呢就到这里,我们今天实现了通过几个列表来监控每一个敌人的动向,并且呢开始建设了我们的炮台, 然后添加了一个攻击范围的角色来辅助我们放置炮台的这个过程。那至于怎么用这个炮台去攻击这些被我们监控者的敌人呢?我们在下一集再进行讲解。 好,如果你喜欢我的视频,请记得帮我点赞,有问题的话随时在评论区里面留言,我们下期再见。

在这个教程中,我将跟大家一起编程,从零开始做一个塔防游戏。在这一集中,我们会首先实现塔防地图的惠子,并且让敌人先跑起来。 打开史古拉曲软件之后,首先把自带的小猫角色删除,然后呢我们去绘制我们塔防游戏里面的地图。 首先呢我们绘制一下地图里面呢这条逃跑的路线,我们首先选择直线工具,画出来一个大概的路线的趋势。然后呢我们选择变形这个工具, 把这条路线呢变成曲折的一个路线。这里呢我们介绍一下基本的用法。首先呢直线上的这些点是可以拖动的,你可以改变他的起死和结束的位置。然后这个变形工具呢,可以在上面增加一些点,增加这些点之后呢 可以拖动这个圆圈来改变他的位置以及他的弯曲度。好,那这个地方呢,我们每个人就按照自己的想法来设计一下自己塔防地图里面的路线。 好的,绘制完基本轮廓之后呢,我们把这个路线呢变得宽一点,我们通过调整轮廓里面的这个数值的大小,我们这里改成八十,太大了,八十 好,这个宽度呢,呃,差不多能够满足我们对路径的这个想象。然后呢这个颜色呢,我们给他改成啊土地一样的颜色, 好,大概 好没选中他之后再改变颜色啊,刚才在场土地一样的颜色 再深一点,好,差不多。然后呢我们把背景呢改成一个草地一样的绿色,当然自己啊,同学们也可以按照自己的想法呢来调整这个配色 轮廓不要了,然后填充改成绿色, 绿色绿。好,然后呢他把我们的路线给覆盖住了,所以我们要把它放在最后面。好,那这样呢,我们塔防游戏的这个背景呢,基本的配色呢就搭配好了。好,那接下来呢,我们来绘制我们的敌人啊,绘制一个小圆球 代表敌人。好打开,呃,会字,然后呢选择圆,这个时候呢你可以放大一点,然后按住 shift 这个按键呢,画一个正圆出来, 好调调整一下他的中心点。好,我们能看到呢,他这个大小呢还是比较大的啊,我们再把它缩小一点 啊,这个大小差不多。然后呢跟刚才一样,我们去调节一下他的这个颜色啊,给他一个轮廓的颜色, 然后呢打一点,好,填充呢换成另外一个颜色。 好,这个呢是我们第一个, 他的大小呢还稍微有点大,那除了在这里调节大小,大家在这里也是可以的,八十啊,这个大小呢就比较理想啊,这个刚开始的这段路呢,我们再让他变直一点, 我们这个功能做完之后呢,把它先保存一下,保存到电脑,给客群起一个名字,塔防游戏 part one 保存到电脑。接下来为了让我们的这个敌人改个名字, 能够沿着我们这条路线呢去行行进逃跑,我们需要绘制一个看不见的角色,让他能够啊沿 这个角色往前走,那我们呢在这里新自新建一个角色,他呢叫路线。好,那这个地方的路线呢,我们要画的跟这个一模一样,那这里呢我们有一个小技巧,我们到这个背景里面选中刚才的这个曲线,然后复制一下, 然后回到路线这个地方点一下粘贴,那么他就有了。然后呢这个地方呢,我们就不需要跟这个 路线呢,这个颜色呢一模一样,因为我们最终呢是要把它隐藏起来的,让敌人沿着这条隐藏的看不见的线进行移动。若为了保证这个在中间呢,我们这个线呢就要变得细一点,这个地方直接改成一, 然后呢为了能够看见这是黑色,是吧?我们让他呢再亮一点,我们直接改成白色,好,变成白色的一条线有点太细了,是吧?好,我们选中他稍微出一点, 测试阶段可以出一点。然后呢他刚开始复制出来的位置呢,没有在正中间,所以我们可以来一个,当滤芯被点击,我让他显示出来,并且移动到舞台的正中间,零零, 好,这样他就到舞台的正中间了,那我们的这个敌人怎么样沿着这条路线啊进行移动呢?我们可以通过给我们的敌人增加一个触角的方式来实现。好,老师呢先 绘制一下,待会呢我们再慢慢讲里面的原理,我们放大一下,绘制两个触角,然后呢这个就不要轮廓了,把颜色弄成一个,方便我们看得见的往这里画一下。好,然后呢再跟刚才一样,我们可以选择复制粘贴, 然后呢对称的来一个,我们现在假设的是我们的角色面朝右这个方向,面朝右改成另外一个颜色红色,让他们比较明显。那这个敌人呢,我们刚开始面朝右,我们首先来改变一下他的方向,让他面朝上, 面向上。好,然后呢给他一个初始的位置啊,保证这两个触角呢,在这条白色线的两侧 移到这个位置。好,那我们怎么样保证他可以沿着这条直线行进呢?我们只需要判断这个两个颜色呢,有没有碰见这个线就可以了, 如果左边的线左边的蓝色碰见了白色的线,说明呢他比较偏右了,我就让他往左再移动一点点就可以了,所以这个地方呢,我们增加一个重复执行。 然后呢,首先呢让他往前走移动几步,那为了这个步数方便控制呢,我们通过变量来实现,这样仅适用于这个角色就可以移动速度。然后呢,因为中间还有涉及到转弯,所以我们再来一个变量转弯。 好,一开始呢,我们把它设定成, 再来一个小影城,也是先通过设定成五摄试验一下。 有了这个之后呢,我们就可以放进去,在他移动的过程中,我们要去侦测一下他有没有碰见这个我们的路线,我们通过侦测里面有一个什么碰见什么,好,我们侦测一下这个触角的蓝色 有没有碰见我们直线的这个白色,这个白色不太正, 改成白色。好,如果他碰见了,因为是左边的触角,我们就让他往左移动一个角度,往左转个弯。好,同样复制一下,如果是红色碰见了 跑了怎么来回来,如果是红色碰见了,我们就让他往右偏一个角度。好,右转右转一个角度。来,我们测试一下。 好,我们发现呢,他已经能够沿着这条直线进行移动了,但是在这个地方呢,他跑出去了,那这个地方呢有两个原因,第一个呢是我们跑的太快了,转弯呢太小了, 或者说这个弯呢他的确太急了,所以我们啊在做的时候呢,要灵活调整一下这三个地方,比如说这个啊曲线呢,太太弯太急了,我可以把它调整一下,这个地方我们选择这个工具,把它稍微变缓和一点点。 好,但是呢你要记住我们这个地方改变的只是这个背景,这个路线白色的路线呢,还没有改动,所以呢一定要有两个地方都改动,往上拖一点点。 好,这样改动之后呢,这个弯看着就没有那么急了,我们再让他运行一下,同样的速度可以放缓一点,每次转弯稍微大一点点, 好看他能不能过去。好,顺利通过这个弯了,这个弯也有点急,哎,也顺利通过, 好的,顺利的到终点了啊,这个地方大家一定要注意,这里面填的数值跟你绘制的 这个塔防路线呢是直接相关的,所以呢大家一定要灵活的调整,不需要跟老师的一模一样。好,那 接下来呢,我们还遇到一个问题,我们最终的效果呢,是不希望他显示这条直线的,那如果我把它直接隐藏掉的话,那我们前面这个模块什么颜色,碰见什么颜色呢就不管用了,而且呢我们也不希望敌人前面一直显示这两个触角。好,那现在呢,我们讲另外一个更优化的方法, 我们用的方法呢是在这个造型里面。好,我们复制三个,我们把前面的触角呢每一个造型里面留一个 删除,删除,在这个地方删除,保留红色,然后真正的这个敌人呢没有触角, 那我们在判断的时候呢,首先他移动的时候呢,我给他转化成 造型三,一开始是造型三,让他开始移动之后换成造型一,这时候他是蓝色,换成造型一的一瞬间,我去判断他有没有碰见白色,哎,没有白色了, 我要给他改成,我待会要把它隐藏掉,啊,没有白色了,怎么办呢?我们在侦测里面有一个碰到什么东西,什么角色 路线,如果他碰见路线了,就让他转个弯,那这个地方也是一样。在判断之前呢,首先给他改成造型二, 然后判断一下他有没有碰见路线,如果碰见了,往右转,整个结束之后呢,换成造型三,因为这个判断和切换非常快,所以我们看着好像只有一个在走,我们能看到他已经在沿着这条直线进行移动了,对吧?那如果我们把它隐藏掉,哎,我们发 又不行了,对不对?这时候怎么办呢?我们要学习一个颜色的特效。在这个地方, 我们的这个路线呢,的确是让他显示出来的,但是我们可以把他的虚像设定成一百,这样的话我们就看不见他了,他虽然存在,但是看不见他。这时候我们再让敌人进行移动, 哎,我们发现虽然我们看不见那条路线,但是我们的敌人的确是沿着这条路线在逃跑。 接下来呢,我们把我们的敌人呢弄成多个敌人,我们通过克隆的方式来实现,只有一个敌人很容易就被我们打死了,所以我们在这个地方用重复执行 克隆,克隆自己的功能,让他克隆十个出来,每一次间隔一个时间啊,零点二间隔一个时间,那这个地方呢, 明显呢,我们就得改成当克隆体启动的时候,那因为克隆体呢和本体是两个逻辑,所以我们让本体一开始隐藏起来,让克隆体显示出来。好,来,我们抽烟一下, 好,我们会发现多个敌人就已经出现了,并且都在沿着我们的逃跑路线啊进行移动。 好,没问题。好,那这个克隆体呢,有一个小细节,因为我们的 surprise 限制每一个,每一个这个角色呢,最多只能有 三百个克隆体,而且克隆体越多会导致我们程序呢啊越来越慢,所以这个地方我们一定要记住,当克隆体不用的时候,及时的把它删除掉。所以这个地方呢,我们加一个判断,当克隆体启动的时候, 如果他碰到了,我去判断一下,如果他碰到了边缘,我就让 他删除自己。好,但是这个地方有一个小小的问题,一开始出现的时候就是碰见的这个地方,所以有些科隆体呢,可能会啊,有些同学做的时候呢,可能正好呢就没有东西出来,所以这个地方呢,我们加一个保险。 这个判断呢,一定要等到我克隆体出来之后,也就是当我发现他没有碰见边缘的时候,再去判断他下一次碰到边缘,把自己删掉,我们加一个等待, 加一个等待,等待他离开边缘,那没有离开边缘,我们就通过两个结合起来,等待他碰见舞台边缘不成立,也就是说他离开边缘了,再去判断他有没有下一次碰见边缘。来,我们测验一下, 好,顺利的生成了十个克隆体,克隆体沿着我们的路线进行逃跑,然后逃跑, 找到这种点之后呢,把自己通通都删除。好,这就是我们第一集的功能了,我们打好了一个坚实的基础,我们绘制了逃跑的路线,并且克隆传十个敌人,让他沿着路线进行逃跑。好,那下一集呢,我们再进行我们的炮台的绘制和攻击。 如果大家喜欢这个视频,请大家点赞收藏,我会及时的更新,谢谢大家!如果你在编程的过程中遇到了什么问题,也欢迎在评论区里面留言,我会及时的给你回复。

进防炮太帅了,必须手搓一个!先把双炮管做出来,用皮筋和弹簧做击锤,再加四根旋转的拨杆,轮流拨动机锤,就可以连续发射了。最后用弧形齿条加齿轮盘做俯仰偏航机构,大功告成。来吧,试试威力如何, 是不是很酷?小朋友们快来跟杨洋老师一起学习机器人编程吧!

在这个教程中,我将跟大家一起编程,从零开始做一个塔防游戏,这是我们教程的第九集,今天我们来实现一个酷炫的激光炮台,首先来看一下效果,点击滤镜之后,我从商店里面挑选一个激光炮台,放在这个位置,点击星光卡机后, 当他敌人进入攻击范围之后,我们会发射一个激光,能够看到这个激光炮台的攻击呢,是范围性的伤害。 好,话不多说,我们开始编程,首先第一步我们要画一个激光炮台的造型啊,这一步呢,大家依然是根据自己的创意发挥一个你想象中的激光炮台,这里呢,老师加快操作一下。 好的,我们的激光炮台的惠子呢就完成了。接下来呢,我们来编码,之前我们呢只有两个炮台的克隆底在商店里 里面,现在呢我们要让他克隆出来三个,让他摆在双倍炮台的下面。先完成这一步, 在代码里面我们重复两次呢,改成重复三次,重复三次,然后每一次的图标呢还是增加一,当这个克隆体启动的时候呢,我们需要去判断一下,如果他的炮台编号是三的话,我们就需要给他换成对应的激光炮台的造型,我们把造型名称改一下激光, 如果炮台编号等于三,换成激光炮台这个位置呢,我们往下稍微挪一下,一百零九到五十九,中间割了五十五十,再往下我们这改成九, 然后将激光加入炮台类型,价格呢我们高一点,定成一百五。好,我们试验一下, 打开商店,一个两个三个好,这个对应的图标已经有了,但是这个价格显示的还是普通价格,因为我们这个对应的描述里面还没有加上。那接下来呢,我们把激光的价格给他写一下, 复制一下,改成选择激光价格一百五。 一,普通炮台,双倍炮台,激光炮台没有问题。好,那当我选择了这个炮台之后, 他是不是应该跟随我进行移动啊?像我们的呃,双倍或者普通炮台一样,那我们在炮台里面呢要进行一些操作 啊,这个地方我们能看到在射击动画,这个地方呢,我们以前只设定了普通炮台和双倍炮台, 那接下来呢,我们要再设定一下,如果他是激光炮台的话,我应该怎么办?这里有一个小细节,我们要注意一下这个地方是不是仅仅是控制他射击的动画呀?正常来讲,我们点了这个激光炮台,是应该能够把它跟随鼠标进行移动的, 这里之所以没有跟随我们进行移动,是因为我们的价格是一百五,但是我只有一百块钱,买不了。我们首先呢把自己的钱设定一下,来一个八百, 好,金币是八百,这时候我们再去看激光价格,他是可以跟随我们进行移动的,只是这个造型没有变化,是因为这里我们还没有增加。那这个地方呢,我们来优化一下, 如果他是激光炮台的时候,我们怎么办?是不是还需要给这个激光激光的炮台增加一些,他射击的这个效果呀?类似于我们的双倍炮台。 那我们在造型里面呢,再给他添加两个攻击前的准备动作,我们把刚才的这个图标呢复制一个过来,好,激光,然后呢来一个,因为激光呢是通过电器动作,所以我们给他来一个两个充电的阶段,充电一和充电二代表他的蓄力。 那这个地方呢,我就仅仅改变一下它的这个颜色,当然大家有更好的想法呢,可以尝试一下,我把它的颜色改浅一点,这是五十五,好,下一个 好,这是默认的状态,这是充电的两个状态,充好电之后断就可以发射出去了,我们回到代码区域, 那这个地方呢,我就要加一个,如果他的炮台类型是激光的话, 我首先给他换成我的充电一造型,摆个 pose, 然后等待啊,零点零五,太少,零点三秒之后呢给他换成我的充电二,然后再等待零点三, 这时候呢才开始攻击,瞄准他,并开始攻击,如果真的要攻击的话,这时候呢我不能直接给给他这个这个地方简写,我要呢,因为我们激光是一个范围伤害,这个地方要特殊处理一下。 这里呢我们要让我们的激光显示出来,那这个激光呢,它显示在什么位置呢?这个地方呢我们就要把它记录一下当前这个炮台在什么位置,因为我们有可能克隆出来多个激光炮台,我们要记录一下我们的,呃, 待会这个激光呢显示在哪里?那现在分两步,我们首先呢把激光的绘制一下,然后呢再呃在这个地方记录一下激光的坐标,我们画一个激光, 改个名字。这个地方呢有一个细节,因为这个激光呢是在我们炮台的这个炮筒这个地方,所以我们要让他的中心点呢,靠在这个往右一点点,让最左边,在我们造型的这个中心的这个地方一个小细节,大家注意一下, 你把颜色改成激光那样的黄色,差不多稍微小一点,然后给他来一个轮廓, 好,这样看着差不多,那这个轮廓都有什么样的功能呢?他待会呢,要根据我们 设定的炮台的坐标呢,他显示到对应的位置去,那我们先完成刚才这个炮台,他应该记录一个什么样的位置,这里在这个地方呢,我们先不记录他的血量。这个 地方呢,待会呢我们在敌人那里再做,如果他可以被攻击的话,我们就把他的当前的炮台的坐标呢撑起来。这是我们待会激光坐标,这是激光,要激光要移动过去的地方,建立一个列表,他叫激光 ip 坐标, 还有激光歪坐标,同时呢要有一个激光的方向, 好,我们把它放到一边,待会呢正好监控一下他们,这也是一个调试的技巧啊。之前有很多同学留言,如果你的 效果不理想,有问题的话,你一定要把相关的变量的勾选出来,观察一下这些变量的变化是不是我们理想的那样好,如果可以攻击的话,我们就将它的 x 坐标,外坐标和 方向都给他存起来,将 x 坐标加入激光的 x 坐标,复制一下,复制一下,将 y 坐标加入激光的 y 坐标,将方向加入激光的方向, 好撑起来。然后呢,我们最后换成激光的造型,这是要发射出去,最终发射出去了,好放到里面, 我们验证一下,购买一个放到这里出现,好能看到造型的确在发生变化,对不对?好,再来第二个, 好在攻击也在攻击好,就是这个攻击的间隔呢?瞄准的间隔稍微有一点点问题,我们看一看 是因为我们之前这个地方呢有一个等待零点八秒,我们是为了让炮台的攻击有一个间隔,但是呢我们的炮台瞄准呢也受这个零点八秒的限制了,我们把我们把这个地方呢给他优化一下,把这一块呢单独拿出来,让我们的克隆体, 当炮台克隆体出来之后呢,他可以重复的去瞄准,不一定攻击,但是可以瞄准重复执行啊,这部分代码瞄瞄准这个敌人说出来他的编号,那至于是否攻击呢?还是受上面的影响,只有这个变量设定成 yes 的时候,我才能够去攻击他。 好,一开始我们要把这个坐标呢全部给他清空,所以我们要在前面的初始化这个地方给他,加上我们这一部分初始化都是在敌人这里做的,所以我们统一把它在这里再 做一遍,删除敌人的 x 坐标的,呃,激光的 x 坐标的全部项目,删除激光的 y 坐标的全部项目,删除激光方向的全部项目,然后同样的这三个模块在预期这里也有 好空了,我们放一个激光再放一个,这时候我们能看到瞄准的这个过程呢,就不卡顿了,他比较平滑,这次不攻击,他也会一直去侦测敌人,为下一次攻击做准备。 那接下来呢,我们就要去处理一下这个激光了,他不能在这个地方不动,因为我们有可能发射去发出了数据多个激光,所以激光这个角色呢,他是要克隆出来德国角色,然后移动到我们记录的这些位置上面去的。那这一部分呢,我们来做一下,当然了,至于每一个 这个激光克隆体移动到什么位置呢?每一个编号是不一样的,所以我们一上来呢,要给他建立一个激光编号,然后这个激光编号呢,适用于当前角色,每一个都不一样。好,当我们的滤芯被点击的时候, 首先呢把本体隐藏起来,然后将我们的激光编号设定为零, 然后稍微等一会再开始去克隆,免得受上一次的影响,我重复执行去监控要不要克隆出来一个新的激光。因为克隆出来这个激光克隆体呢,他的动作比较多,所以我们给大家通过一个知识积木来做 生成激光特隆起。 好,那这个生成极光可龙体,他都有什么功? 首先是我这个列表里面有几个,有几个数量长度是多少,他就应该克隆几个,所以我们来一个重复执行,直到重复执行克隆自己,直到你的编号等于我这个列表的项目数,我们来一个激光编号,等于 列表里面的相互数, 激光的 x 左标,歪注标方向都可以啊,直到他们相等。那每克隆完一个,我是不是应该将我的编号增加一啊?因为一开始是零,所以我们一旦开始克隆,就先把它增加一, 增加一。那除了我们要让激光编号增加,克隆自己还要有什么动作呢?就是让这个克隆体呢,他移动到我们对应的位置上面去,那这部分呢,我们也直接在克隆的时候给他做了,让他面向, 面向什么什么方向,移到什么什么位置啊?面向哪个方向呢?一定是我们这个列表的 激光方向的第几项呢?克隆编号,像激光编号这个方向他是多少,我就让他面朝,那然后这个位置呢,也是一样,他需要移动到我激光 x 坐标的的激光编号项, 歪坐标也是激光歪坐标的激光编号项。好,你是几号编号?你就移动到我记录的这个位置上面去。 好,那克隆起每次出来都需要干什么呢?他首先要显示出来,对不对?我们来一个, 当克隆体启动时,他首先要显示出来,然后呢等待零点三秒, 我让他慢慢的隐藏掉,激光的效果呢,慢慢消退, 重复执行。然后呢把他的熏像特效, 虚相特效增加,慢慢这二十五改成二十吧,那这样的话,重复执行五次之后,虚相特效呢就变成一百了,所以这个地方改成五没问题。最后呢把它删除掉, 来,我们试一下效果,一开始他是隐藏的,我们脱一个激光点击新关卡,好攻击他了,对不对?好,没问题,没问题, 好,那这个效果呢,我们就基本达到了啊,这个地方有一个小细节,我们再看一下, 好,再点击这个位, 是不是不太对啊?并且呢这个里面的东西呢,应该是没有对应上哦,因为这个编号呢,我们要让他重新从一开始,所以这个地方我们要加一个,当他接收到新关卡的时候, 让我们的激光编号呢,重新从零开始。 激光编号重新从零开始,这个地方呢,我们要应该当他进入新关卡的时候呢,从编号从零开始,这样我们来一个刚接收到新关卡,让编号从零开始, 抽烟一下,一看是空的,放一个炮台攻击攻击攻击, 好,这时候呢我们再来一个新关卡,发现,哎,他删除了,又重新开始了,这个效果没有问题, 这个地方会有一些前代的问题,我们提前处理一下,他显示出来的时候呢,一定要要让我这个激光呢稍微往后移一成一几成,要不然他会把我们的炮筒呢给盖住啊。虽然我们这里没有出现,但是有一些同学可能会有这个问题,我们提前把它处理了,后移后一个十成吧,这样呢他就不会挡住炮台了。 同时当这个坑体出来的时候,是不是要去看一看他有没有碰到敌人呐?所以我们通知一下敌人,这个地方已经出现了广播一个事情,激光击打敌人, 那我们的敌人收到这个消息之后呢,就要去判断一下他有没有碰见我们的激光了,所以我们在敌人这个地方呢,也要去加一个是四键的处理,当接收到 激光击打敌人的时候,你不能接收到这个消息,就简写对不对?我要判断一下,判断一下我是不是被你打中了, 并且呢我还没有碰见这个舞台的边缘,所以我们这里来一个,并且如果你广播到这个接收到这个消息,并且我真的敌人碰到了激光, 然后呢我还没有碰到舞台边缘,舞台边缘碰到舞台边缘不成立,这时候呢我就可以把敌人的血量呢给他减少一点点了,我们把之前的这段代码呢给他复制过来, 将敌人的血量,然后呢哪个像给替换掉呢?是我们的克隆编号,像谁碰到了都要简写, 这就是范围打击,跟刚才前面几个这个炮台是不一样的,我们来抽烟一下,这个呢 已经验证了,可以生效了,就可以把它隐藏起来, 激光编号也隐藏起来,在这个地方激光编号 点击率齐 激光好,我们看到他是一个范围的伤害,再来一个, 好,一下子杀死了三个对不对?两个,最后两个一下子全杀死了,这是我们激光炮台的呃范围伤害的效果。最后呢我们再看一下代码,主要是在激光炮台里面增加了一个编号,然后在炮台里面增加了一个 新的类型,然后增加了激光的描述,增加了激光的这么一个打击的效果 后呢,在敌人这里判断一下攻击到他之后他应该怎么简写?是碰到了克隆编号都应该简写好。最后我们来一个小伙展示 多放几个炮台,激光炮台, 好,我们今天的课程就到这里了,拜拜。

我方和敌人飞机制作完了,接下来制作我方的炮弹,首先你得绘制一个炮弹,让他能跟随我们飞机,而且按下发射按键可以发射。那么在绘制的过程中一定要注意一个问题啊,炮弹必须朝右绘制,重要的事情说三遍,炮弹必须朝右绘制,乘以三啊。 好,然后再说一下他如何编程,首先当绿棋被点击的时候,他移动到我方飞机这里,然后呢,如果按下空格呢,得可以开炮,注意是克隆自己等待零点一秒,最后再做一个下边的程序就可以了。好,接下来我们来看一下效果, 别忘了把炮弹改小一点。那么打到敌人的飞机,敌人飞机为什么感觉不痛不痒呢?下节课我们来解答一下。

今天教会你下载的游戏是 scratch 中文版,这是一款少儿编程启蒙软件,我家二大爷闭着眼睛也能学会,而且免费,同时支持苹果、安卓平板和电脑。首先点击视频右下角箭头分享复制链接, 然后打开手机自带的应用商店,搜索这个,打开它,进来之后会自动弹出一个文件夹,没有弹出来的直接搜索。趣味爱玩点击搜前,往后会跳转一个文件包,打开后找到软件合集,找到死亡细胞,打开它,然后右下角保存下载安装就可以玩了。

又是调皮学生手痒的一天,甜美心善的我怎么可能不给满足,如来神掌啊,搞错了再来,今天就给大家安排壮士打靶,好好奖励一下我那调皮的学生。 首先点击我们的手枪,因为手枪一直要跟随鼠标左右移动,所以假设手枪其实点就在这里, x 坐标,给他改一下零,再给他加一个重复执行,将 x 坐标设为鼠标的 x 坐标。注意,我们需要的是鼠标的 x 坐标,而不是角色的 x 坐标,点击运行没问题,那接下来助打中枪再创辉煌, 看他了。接下来肯定是要给我们的枪加上声音,注意枪声一定要等待一下,不然我赌你的枪里 很明显不仅有子弹,而且还是连发,所以我们要让声音等待一下,比如等待零点一秒。 nice! 接下来就轮到我们的准星了,让他也一直跟随鼠标指向,一边运动一边旋转,为了防止被遮挡,瞄准器一定要移到最前面。接下来就到我们的标靶了,这么多标靶肯定是用到了我们的克隆技术,那我们就要先把本体隐藏。 这里我们需要制作蓝色和红色两种标靶,所以我们要用到选择。继续写我们克隆体的程序,确定标靶从右向左以及它上下的位置。 接下来开始进行选择,确定红色标靶出现和标靶可能遇到的情况, 这里要注意标靶击中需要下落和消失。这里我们最好做一个自制积木。 然后我们检查一下红色标靶的运行情况,没问题我们继续制作蓝色标靶,这里直接复制,更改一下参数即可。检查一下没问题,我们再解决血量问题。 最后爱心消失,游戏失败停止,全部脚本搞定。不要让我失望,就这写作业去吧你。

我的世界二 d 动态版半外篇之坚守者,好,我们在最新的这个二 d 动态版里面呢,增加了一些关于坚守者的生物啊,来看一下。坚守者的各种造型 也更新进去了,我们可以放大看一下啊,最大的话都是用一个一个像素块能够去绘制成功的,来在这里面去购置,就可以会见出我们的这个铁轨的坚守者啊,这是坚守者,包括还有受击的部分, 那么在上面呢,也加了一个关于绵羊啊,加了绵羊山羊的小部分。那我们在程序里面是怎么写的呢?在代码部分, 程序是比较多,我们初识化这个生物蛋里面呢,在这部分又增加了我们这个坚守者和绵羊的脚本,在这里面来进行控制,包括来控制它什么时候移动,如何去追踪我们的史蒂夫玩家等啊,程序还是比较复杂,同学们要看新进的教程。好,那么接下来呢,我们来看一下实际效果,放大运行, 运行。好,我们现在已经进入了,那么我们来拿出来我们的生物异剑,好,那我在这里也去佩戴一下武器啊,打一个键,再找到我们的生物 好生物弹那,哎,这是我们的坚守者,包括这个绵羊以及我们有了一个新的材质包, 好很多部分啊,我们都可以拿出来一起试验一下。那在这个地方呢,我们先来放置一下新手者按键放置。 哎,好,成功出现了,还是蛮大的啊,整个造型,看下它的攻击力伤害,哎,一下子就可以把我推走了,我再放几只绵羊,好,再来放几个这种稀有的 矿石,那么再看一下这个小房子里面,哎,一下子就被我击飞了, 哎, ok, 他 直下就变成了一个像水井矿井一样东西,我们看下接收者呢,在这里面我们先来切换成这个,看他的血量厚不厚啊? 哎,好像非常的难打 啊,这么强吗?哎, ok, 终于解决掉了, ok, 一 刀一个, ok, 能够实现相应的效果啊。好,那这个后续的一些更新的内容呢,会不断的增加,希望同学们呢能够一起来把这些部分掌握,制作出属于自己的一些生物出来啊。


看好了,最近很多人都在找的这款少儿启蒙编程软件,是科二区,已经可以免费在手机上面安装了,同时也支持手机平板,还有不会安装的,下面我一个视频来教会你。 首先我们点击当前视频右下角分享按钮,再点击分享链接,然后我们再打开这个蓝色的 app, 没有的可以安装一个,打开后就会自动弹出文件包,没有弹出的话我们在上方搜索熟悉分享, 同样也是会跳出文件报的。然后我们再点进去找到软件资源,然后我们取消全选,选择是库尔曲编程启蒙,点击保存,然后点击去查看,我们在长按这个下方有个下载按钮,我们下载之后就可以去安装了。