粉丝233.3万获赞2238.4万









在这个教程中,我将跟大家一起编程,从零开始做一个塔防游戏,这是我们教程的第七集,在这一集中,我们会实现一个商店的功能, 当我点击滤镜之后,右上角呢有一个按钮,点开之后呢,会显示我们的炮台,商店里面呢有我们各种各样的炮台,当然现在只有一个普通炮台,点击它之后跟之前一样可以啊,购买一个炮台可以看到我们的金币呢,减少了五十块钱, 点击关卡呢,依然跟之前一样可以进行攻击,还可以再次购买。好话不多说,开始编程来实现这个功能。 首先打开我们之前的作品啊,在开始新功能之前呢,我们先啊完善几个遗留的问题。第一个呢,是啊,有同学在评论区里面看到我们上一集 这里多了一个碰撞检测二,这个是老师测试用的啊,我们啊可以忽略他,我在这里呢也就直接把他删掉了,这是第一个问题。第二个是呢,有同学问老师,为什么有时候这个血条没有显示,那很有可能是你这个地方的判断条件出了问题, 注意看我们的血量条什么时候出现呢?一定是这个敌人的血量大于零的时候他才出现,如果你这个地方有时候写了一个默认的五十,他是不会出现的,只有改成零 好,他才会出现。然后另外呢,有些同学反映这个血量条一闪一闪的啊,那这是为什么呢?是我们在这个知识积木里面有一个属性,需要设置一下 啊,默认这个地方呢是没有勾选的,我们要勾选一下,运行的时候不刷新屏幕,这样的话呢,这个血量条就不会一闪一闪了 啊,最后一个啊,同学们留言的问题是什么?我们的敌人啊,这个关卡到第三关的时候呢,他就不出现了,那是因为我们在前面啊,只设定了三关啊,看这里,关卡一,关卡二,关卡三,如果你想还有第四关的话,就可以复制一下。 好,如果关下等于四的话,你希望出来什么样的敌人,多少个什么间隔啊,这可以自己设定啊,你可以多设定几关,没有问题。好,那接下来呢,我们开始今天啊新的功能,为了做商店呢,首先我们要绘制一下刚才右上角的那个角色。 好,那这一部分大家依然是按照自己的想象来绘制一下,我这里呢快速进行一下。 好,这样我 这个基本的按钮呢就绘制完成了,我们把它往右上角靠一靠,好,大概在边缘这个位置。好的,然后另外呢,我们还需要一个商店的背景,我们再绘制一个。 好,差不多他是白色的就可以了,放到中间位置。 好的。 好,那接下来呢,我们来给这个角色呢进行编程。他首先的第一个功能是一开始的时候要显示出来,当滤镜被点击,他应该显示出来。 好,然后呢,我们固定到这个位置 好,然后什么情况下应该打开商店呢?当我点 移他的时候应该打开商店,对吧?我们可以再给他加一个特效,当我的鼠标碰见他的时候呢,可以亮度稍微调整一下,跟之前这个地方一样,我们加一个重复执行, 如果碰到鼠标指针加个如果,那么,否则,如果碰到鼠标指针,我把它的亮度 设定的大一点,将亮度设定成三十,然后如果没有碰到的话,将亮度设定成零,测验一下, 好,有一点变化,对不对啊?没问题。然后当我点击它的时候呢,才是真正的打开商店。但是这个地方呢,它有可能有两种状态,这种状态打开的点击它是打开,刚打开之后再点击它是不 应该关闭啊,所以我们需要一个变量的来记录他的状态,方便我们进行控制。我们建一个变量叫打打开方便。 好,一开始的时候这个变量我们把它设定成打开商店, no, 没有打开的状态,当我按下鼠标的时候呢,他就是打开状态了,来一个如果按下鼠标, 我就应该把它打开,当然呢,这个地方是需要判断的,如果现在是 no, 我就应该打开,如果现在是 yes, 是不是应该关闭啊?所以这里呢又需要一个判断, 按下鼠标之后看一看当前是什么状态,如果当前这个打开商店是 no 的话,我就应该打开商店,我们广播一个消息,因为可能好多地方都要用广播一个打开商店, 然后如果是 no 的话,我们广播一个关闭商店, 好,我们把它放进去。 好,来我们观察一下这个变量先,当中先别点击我,点击他, 点击他,哦,这个地方没有发生变化,我们看一看,为什么一开始弄,哦,忘了把这个变量设定一下,打开商店,将它设定承诺,那我们直接通过一个接收, 如果接收到打开商店的话,我需要把这个变量呢重新设定成 yes, 如果关闭商店的话, 打开方面设定成 no, 这样方便他来回转换,点击变成了 yes, 再点击变成了 no。 好,基本的状态控制可以了,然后不同的状态,这个按钮的位置和方向是不是不太一样?我们把这个设定一下, 一开始默认在这个位置,那他关闭的时候呢,也应该在这个位置,同时呢这个默认方向是面朝右的。 好,这个地方有一个小细节,大家一定注意啊,虽然这个箭头是面朝左的,但是我们说的是整个这个角色,他默认这个状态呢是面朝右的状态, 如果我们在这个地方把它改成面朝煮煮的话,你会看到他这个呢就会发生一个颠倒, 好,发生了一个颠倒,这是我们希望打开状态,打开商店的这么一个状态,同时打开商店这个位置是不是应该发生一个变化,他跟我们的这个角色呢,要相互配合,我们把这个呢也显示出来, 往里面靠一靠,大概这个位置,那我们还有点大 好,差不多这个位置,这个呢就要根据大家的啊画图的大小灵活去调整了啊,这个位置呢,我们固定一下,这是打开的时候。 好,这个歪歪柱标呢,我们让他保持一致, ctrl cctrl c 都是一百三十七,来测验一下 下。好,先把这个隐藏好,当我点击率点击这个按钮的时候,哎,弹过来了,再点击,他又回去了啊,没有问题,这样的话,我们第一个,第一个这个按钮,商店按钮改个名字, 商店按钮的功能就做完了。那接下来呢,我们来做一下这个商店的背景名称改一下商店背景 他有什么功能呢?一开始他应该是隐藏的,我还没有打开商店之前,他应该是隐藏的,当接收到我们发过来的打开商店的消息的时候呢,他应该显示出来, 他应该显示出来,并且移动到,刚才我们已经调节到正确的位置了,对不对?我们直接拖出来, 用到这个位置,好,没问题,预计被点击隐藏,同时接收到当商店,当打关闭商店的时候,他也应该隐藏, 关闭商店,他也应该隐藏。来,我们测验一下,点击打开,再点击关闭,点击打开,再点击关闭。好,没问题。那现在呢,我们就应该往我们的,往我们的商店里面加一个炮台了,对不对?好,那这个地方呢,我们要注意啊, 当我点开之后呢,这个炮台显示在这个地方,把它拖出来,他应该跟之前一样能够啊放置在不同的位置,那这里呢,为了方便控制呢,我们把这个点击图标的这个呢跟之前的炮台有所区分,让他单独是一个角色,我们这样来做,我们把原来的炮台呢,直接 右键可以复制一个角色,大家能看到吧,直接连他的造型带他的功能呢就都有了。 那这时候呢,我们把他的这个功能改一下,首先名称改成炮台图标,他只是负责一个这个点击克隆的功能,然后这个图标呢,我们啊这些瞄准的东西呢,都不需要图标来做了,我们把它删除 好,你看这样没办法删除,是因为这里用到了这个功能,我们把它删掉,删掉, 删掉好,这个也删掉 好,这样就没有了,那这部分功能我们把它优化一下,一开始这个图标是不是也应该是隐藏的? 所以一开始我们把它隐藏起来,什么情况下应该出现呢?是不是当接收到打开商店的时候,他应该出现呀?好,我们把判断这一部分拿过来,原来的这个东西有在一个地方设定就可以了,所以这些都可以去掉。 当然了,打开商店我们的这个图标是不是应该显示出来,显示出来,同时给他固定一下位置,我们看看哪个位置合适, 大概放在这个位置吧。好,可以灵活调整啊,我们把它打开, 开始歪了。好,这个位置再调整一点。好, 那一开始呢,我们把它移动到这个位置,然后呢他就应该去 重复的去判断有没有碰见鼠标指针,有没有按下鼠标了。好,那这里呢,我们稍微的调整一下, 我们碰见鼠标指针呢,让他有一个跟刚才这样类似的效果,所以这个地方呢,我们可以把它分成两个,如果,那么否则如果碰见鼠标指针了, 如果碰见鼠标指针,我们把它的亮度呢调整一下,跟刚才一样,亮度呢?调成 二十,然后如果没有碰见鼠标之针,还是恢复成零 好, 碰到他点亮了,然后这时候 如果你再按下鼠标的话,就跟之前一样了,我需要克隆一下,当然了还是需要把这个金币判断一下,如果我的金币大于四十九的话,我才应该把它减少,那这个鼠标操作呢,因为是给克隆体的,我们这里也就不需要了。然后呢,为了防止他出现太多个,再来一个 这个点击之后松开的操作,等待松开,然后这时候呢也就不能克隆自己了,要去克隆一下炮台,然后这个检测呢,也一样要克隆一下这个检测二呢,刚才我们删掉了,这个也不要了。好, 这样的话啊,我们这个图标的角色就完了,这个克隆炮台,那这个炮台应该有什么反应呢?在这里我们之前是不是有当周围克隆体启动的时候,他有对应的功能啊?啊,原来这个地方的 就不要了。好,相当于我们把它分成了两部分来,我们试验一下。好,一开始他是不是应该隐藏,我们把它隐藏掉, 然后克隆体显示出来没了,点击出来一个图标,碰到他有显示点击一下,哎,可以跟着我走了,哎,但是这个是不是并没有显示出来,我们看一看。为什么 好,刚才点击之后没有选中,我们检查一下,应该是这个炮台,刚才我们删除了一个克隆体里面的,当他被点击的时候设定成选中,我们把这个功能呢加回到克隆体里面,选中好,再测试一下点击, 打开商店,点击好,他能够跟着我们进行移动了,跟之前是一样的,放置第二个也第二个也可以。好,验证一下能不能攻击 好原来的功能,正常进行没有问题。好,我们把打开商店的这个电量可以隐藏起来了。 好,那现在呢还有一些细节要优化,当我的鼠标挪到这个炮台上面的时候,下面是不是要显示一下他的这个说明呀?所以我们呢再建立一个角色。 好,这个角色呢我们可以填一填他的一些这个描述信息,我们填一个这里呢我们选择自己喜欢的颜色,我快速的来做一下。 好的,那这个呢,我们就修改完了角色名称,我们给他改成炮台描述, 然后呢为了跟上面的炮台图标有所区分呢,我们往这画一条横线,在商店里面给他加个横线,按住序谱的可以画直线,大概这个位置吧,太高了,往下挪一挪,箭头选中 好,差不多把这个文字呢,我们往上稍微拖一拖,好这个位置好。那这个 炮台描述都有什么样的功能呢?我们来验证一下。首先当利息被点击,他应该是隐藏的 隐藏显示,当角色被点击,然后呢一定让他固定在这个 位置,我们把它确定一下,免得不小心拖动了。然后当我打开商店的时候呢,他应该出现, 当我打开商店的时候,他应该出现。当我关闭商店的时候,他应该隐藏 好。然后这个显示呢,因为不同的这个炮台,他显示的名称也显示的文字应该是不一样的,所以这个地方呢, 我们提前做一个准备,并且当我没有选中这个炮台的时候,他是不是应该不应该显示啊?所以这个地方呢,我们通过一个变量来控制,叫 炮台描述 按钮吧。炮台 描述编号 好,炮弹描述编号, 这个编号是怎么修改的呢?我们在炮台图标这里,当我碰见,当我碰见这个图标的时候,我是不是可以把它设定成一啊?把它碰到,如果碰见鼠标指针,将 炮台描述编号设定成一,然后一开始的时候把它设定成零, 设定成零,那这个地方当他是零的时候,他就不显示了哦,忽略了一个细节,最下面也得把它设定成零,当我没碰见他的时候,他就不显示了。设定成零,然后这个角色里面呢,我们加一个,只有当他炮弹角色等于 一的时候才显示,加一个重复执行。如果,那么,否则,如果你的这个变量等于一,炮弹描述编号等于一,我就显示出来, 并且呢给你换成造型衣,否则就直接隐藏。 好,我们测验一下,点击预习,点开点,哎,鼠标挪上来,普通价格,鼠标挪开不显示了。好的,没问题,然后我们点击一下, 哎,可以克隆。那当我从商店里面购买了这个炮台之后,这个商店是不是应该关掉呀?所以我们再做一个增强,在这个炮台图标这里, 当我购买了之后呢,让他立即广播一个关闭商店,广播关闭商店, 好,广播一个关闭商店,然后他自己本身是不是就应该隐藏起来了?当他接收到关闭商店的时候呢?把自己隐藏起来, 哎,隐藏了对不对?好,没问题。但是有没有发现一个问题,当我鼠标挪到这里的时候,这个价格呢?就又出现了,这个价格就又出现了。 这个地方,因为这个炮台描述呢,这个地方呢,他还在起作用,所以你看他还是亮着的。我们呢,一个呢是为了解决这个 bug, 另外一个呢也是让程序更优化, 把这些不必要的重复停,重复执行内给停下来,我们在这里加一个,停止该角色的其他脚本,当我买完之后呢,这个这一部分代码就可以停掉了。 好,我们能看到哦,那他是不是应该隐藏呀?我们把这个呢再隐藏起来。 好,这个问题呢,跟刚才我们这个炮台图标这里类似,这部分代码,这部分代码是不是还是一直亮着呀?所以呢,他并没有及时的隐藏起来,我们这里也加一个,当他接收到关闭商店的时候呢,这个脚本就可以停下来了,这样他就可以隐藏的状态。 好,哎,这个状态这个文字呢,文,文字描述就没有了。 之后呢,我们在 有一点小小的优化,当我打开这个商店的时候呢,我让他来一个虚向的特效,这样是不是把我们的路线给挡住了呀?所以我们在这个地方给他加一个虚向特效,将虚向设定为 十,试一下,好,没问题,好。然后呢,有可能有些同学在做的过程中,这个地方会有成疾的问题,因为这个东西炮台跟下面的这个商店背景还有这个描述呢,他们 都在右半部分,有可能出现成疾的问题。我们把这个地方调整一下,这个商店呢,他应该在最最下面,所以我们先让他移到最前面,然后让他后移两程,后移两程, 然后,然后让我们的炮台和这个角色呢始终在最前面,这样的话他就不会覆盖了。我们往炮台图标里面给他加一个重复执行,移到最前面,然后描述这个角色呢,也是一样,重复执行,移到最前面, 这样的话他们就不会有看不见的问题了。哦,当我点击的时候呢,这个炮台能够出来,这个炮台呢,之前我们为了防止他遮挡住,一开始复制的时候遮挡住也可以加一个,当他一开始 出现的时候呢,哎呀,克隆,克隆出来之后呢,也让他一直移到最前面,然后让他往后移一点点,后移五成,好,这样可以避免你克隆 一瞬间,然后这个地方被挡住。好,我们测验一下, 没问题,没问题, 放一下,没问题,把这个边量呢给他藏起来描述编号。好的,那我们这次的功能呢就做完了,最后呢我们来回顾一下 大概的功能,大家也可以看一下代码。首先我们增加了一个商店按钮,然后呢这个是控制他的关闭和隐藏放大一点。 接着呢为了配合商店呢,我们建了一个背景,背景呢这个配合商店的打开和关闭,同时呢设定了一个虚向特效。然后炮台呢我们单独出来一个图标,专门用来控制,当点击图 标的时候呢,生成一个新的炮台更合理一点,这是他的代码。 最后呢当我的鼠标碰到碰到炮台图标的时候呢,显示一个描述,这是描述的功能, 描述的功能,当然一定要记住在炮台里面这个原来的这个点击之后克隆自己的功能呢要去掉,并且呢在克隆奇里面控制一下这个鼠标操作的变量。 好,这是我们本次视频的所有内容了,我们下次再见,拜拜。