噔噔噔噔从这个视频开始,我将跟大家一起重新开始制作一个 surprise 版卡牌游戏。为了精心准备卡牌游戏制作教程,我调研了目前主流的卡牌游戏,并借鉴了其他博主的优秀成果。 在结合多款视频教程的经验以及大家积极的留言,我将分十级完成这个作品,根据大家的评论建议会适当修改哦,欢迎大家踊跃评论。鉴于大家在之前的视频中经常问我课程是否收费,软件是否收费,我在这里统一回复是免费的, 学费就是点赞收藏加关注。我们也建立了学习交流粉丝群,有很多热心的粉丝会互相解答问题,欢迎你的加入,共同进步。当然侯老师仅仅只是做免费的课程,完全没有收入,肯定也是坚持不下去的,所以我也有小店售卖一些硬件编程的套装, 点我主页可以查看详细介绍,期待你的支持!话不多说,开始编程。在第一集中,我们会首先实现基本的发牌特效,点击发牌按钮, 我们会给敌人发七张牌,给我们自己也发七张牌。敌人的牌我们只能看到背面,我们的牌可以看到正面,并且鼠标悬浮在卡上面,会有一个特效,把它放大,展示我们卡牌都有什么样的属性。 今天我们来完成这个功能。点击文件新作品我们从一个空白的作品开始创作,首先将自带的小猫删除,接下来我们来绘制需要的塔牌以及按钮。我们首先来改变一下背景, 用一个深色的背景让游戏更有氛围。我们选择长方形,来一个渐变色,从灰色,深灰色变成黑色,那这个地方选择渐变,调节一下属性值到深深灰色,然后拖动他。 当然这个颜色呢,你可以根据自己的喜好来设定。当我们发牌的时候呢,中间会有一条白线,用来区分上面敌人的卡片和我们玩家的卡片,所以我们把它复制一下,改成白色,轮廓也改成白色。 好,这个渐变效果去掉。好的背景绘制完成之后,我们来绘制我们的角色,首先是这个地方要有一个卡包,我们还是选择一个渐变的颜色, 绘制一个长方形,适当调整一下大小,放在正中间,他的边缘我们可以加一个轮廓,稍微来一点浅灰色吧。 好的,然后呢中间呢,我们给他写一个卡,按住 shift 可以是一个正圆好填充的部分呢,我们让这个卡包有点不一样的感觉,这个地方呢,我们让他偏红一些,中间写一个卡字, 把这个呢设定成白色,稍微有点小,我们把它调整一下。然后呢我们也可以加一些装饰的直线,这个直线的颜色呢,我们也改成跟刚才轮廓一样的浅灰色吧,让它出一点。 然后呢简单的给他画几笔,让我们一个卡牌的轮廓呢就画完了,为了赢到这个卡牌 重叠的感觉,我们可以选中最外面这个轮廓,点一下,复制,粘贴好,往旁边挪一挪,选择放在最后面,再复制,再粘贴,挪一挪, 放在最后面,这样就有卡包的这个感觉了,重叠的感觉,好的,那这个呢,我们给他起个名字叫卡包或者卡牌包都可以。 接着呢,来创建一个我们的敌人的卡片和我们自己的卡片,敌人的卡片跟这个呢是很像的,我们右键复制一下,简单改一下,他不需要背后的卡包的感觉,只需要这个卡就可以了,对不对?好大, 待会我们可以适当的再修改一下。然后为了有所区分呢,我们把这个渐变的色给它去掉, 改成跟这个一样的就可以。好,这是这个取出去的卡,卡包的卡有所区分,当然你保持一致也是可以的。然后呢,我们来汇集一下玩家的卡片,这个改成敌人卡, 玩家卡好,玩家的卡呢显示的是正面,所以这些我们就不需要了,好,选择键盘上的删除键或者这个删除按钮也可以。 我们把这个颜色呢给他调成,调节成蓝色,再来一个不一样的蓝,有一点渐变,看着更好看一些。 好,当然了你也可以选择自己喜欢的配色。然后呢旁边的轮廓呢,我们也给他改成黑色吧,蓝色配黑色。然后呢往上面写一下我们卡牌的名字,第一张卡牌用狮子, 然后呢默认他是这个颜色,我们改成白色。然后呢这里有一个小技巧,这个文字的怎么样实现加粗的效果呢?我们可以通过设定他的轮廓来实现,选中他, 箭头选中他,把这个轮廓增加一,他是黑色的对不对?我们也改成同样的颜色, 白色好多了,一个白色的轮廓就显得有一些加粗的感觉。然后呢我们要去找一个狮子的造型,点开我们的造型库,点到动物, 找到狮子,好,这里点中他之后呢,他在这个造型里面,对不对?我们通过这个箭头用一个选中,然后呢你可以组合一下,复制到这个造型里面,点一下粘贴, 调整一下他的大小,放到中间位置,好差不多,然后这个造型呢就可以把它删除了,在这个下面呢,我们要介绍一下我们卡牌的一些属性,再来一个 t, 这个狮子呢是三点生命, 然后把它改成白色,变小一点,回车一点伤害,需要耗费一个法力。 好,为了对齐呢,上面你也可以给这个正的数字呢加一个空格,往下放一放,我们玩家的卡牌也就绘制好了。我们再来一个发牌的按钮,绘制一个 接一下他的颜色,这个颜色呢我们可以还是用灰色,灰色,然后他的旁边呢轮廓可以用一个稍微深一点的颜色加粗一点。好的,这中间呢我们写上发牌 颜色,注意选成黑色,有所区分,调节一下大小啊,太大了,我们把按钮开小一点,在中间这个位置,那接下来我们就要编写具体的程序了。那首先对于发牌来说,当我点击他的时候呢,我 希望他能够通知我们的两个卡牌,开始呢出现在我们下方,那我们当这些被点击的时候,首先这个发牌是要显示出来的,然后当我点击他的时候,他就应该隐藏, 同时呢广播一个消息,通知我们的两个卡牌,开始做自己的工作,通知一下发牌了,看到我们的背景,刚才也有两个,对不对?一开始的时候我们换成背景一 哦,点了发牌之后呢换成背景二,当这些被点击好,当我发牌之前,这两个是不是应该隐藏啊?所以对于扔卡来说, 当力气被点击的时候,他是隐藏的好,对于玩家卡也是一样,拖动他可以复制过来点击。 好的,现在是一个初始的画面,点击发牌,他们接收到消息的时候是不是应该显示出来呀?所以呢,当我们接收到 发牌消息的时候,让他显示出来,但是因为我们只有一个敌人卡,你即使显示出来也只有一张,对不对?那因为我们要发七张牌,所以呢,我们要用到克隆的功能,这个地方呢,我们做一下克隆, 当接收到消息的时候,克隆自己重复执行七次, 每一次呢稍微有一点间隔,克隆自己, 克隆自己。然后呢,为了有这个延迟一点的效果,不要太累,在一起全出来,我们让他稍微等一会,可以等 个一秒。好,然后呢,我们让我们的克隆体出来的时候显示一下, 显示一下,然后呢?点立即。为什么没有显示呢?我们查看一下发牌哦,代码是空的哦,刚才我们不小心把代码写在了玩家卡里面,他应该在发牌里面,我们给他拖过去 检查一下。好,现在代码已经有了,那我们就可以把这个地方多出来的删除。 好,现在点进去发牌换了按钮了,哎,出来了一个敌人卡对不对?好,那我重复使用七次,为什么只出来一个呢?他都重叠在这个地方了,所以对于克隆体来说呢,我就需要他移动一个位置, 怎么把他们区分开呢?我们就需要让我们的每一个克隆体呢,都往右,也就是 x 坐标增加一定的数值,那一开始我们把本体的位置给他固定好,那本体一开始我让他在这个位置 好,然后呢当他显示出来之后呢,我让他往右移动,将 x 坐标增加,假如说是移动五十吧,我们试一下发牌一 好,应该是本体每一次移动五十再克隆,我们再试一下。好的,没问题。那现在呢,挨的还有点紧,我们再改成七十。 好,这次呢已经松开了一点,但还有一部分排出去了,改成六十五。这个过程呢大家多查 尝试一下,找到最适合你大小的就可以了。好的,没问题,但是现在呢还有点紧,我们把这个大小呢给他设定一下,将大小设定为 七十五啊,的话,正好均匀排列没有问题。但现在呢,是不是并没有从这个地方抽排出去的功能啊?只是沿着这个地方出来了,要实现这个效果呢,他稍微难一点,这个呢作为可选项,大家可以啊,跟着我来操作一下。 那为了让每一个牌都从这个地方直接到他自己所在的位置,我们需要做两个改动,第一个改动是每一个克隆体出来的时候呢,要移动到卡包的位置,先移动到卡牌包后呢,我们来一个出牌的 声音,点到声音这个地方呢,他本身自带一个,你也可以自己录一个,点击下面的声音,录一个随便什么声音啊,就是你假装出牌的声音。 好,我模拟了一个秀的声音,大家可以自己录制一个,然后呢我们播放一下,每出一张牌就播放一下这个声音 好,然后呢他应该移动这个这个位置之后移动到哪一个位置呢?是不是每一个的位置都不一样啊?所以呢,我们就需要通过变量记录一下,仅是因为当前角色,因为每一个克隆体都有,我们叫 卡牌编号,一开始的时候把卡牌编号设定成一第一张卡牌, 然后每克隆一次,都把卡牌编号增加一, 这个就不要了。好,对于每一个卡牌,我们都应该让他把先隐藏掉,基于这个位置往右挪就可以了,我们这个是负一百九十五,对吧?我们加一个滑行效果,依次填小数的零点二秒内滑行到哪个位置呢? 好, y 坐标还是一百二十六? x 坐标呢?我们给他改一下,他应该是跟他的号有关系的,在他原来的基础之上负一百九十五, 这是最左边的这个位置,加上跟他编号相关的,他编号是几就应该是几,往右挪几个六十五,对不对?所以我们应该有一个乘以一个六十五,那第一个他是不用移动的,所以我们 我们把它减去一,这样就完美了。拿编号减去一乘以六十五,代表着基于第一个往右挪躲远,把它放进去。好,我们运行一下发牌。 哎,这个发牌的过程是不是就模拟出来了?那接下来同样的功能,我们可以做到玩家卡里面,我们把这个功能复制一下 玩家,玩家,玩家,好到玩家里面,他显然初始的位置是需要变化一下的, 把玩家显示出来,他在这个位置, y 坐标是负一百一十六, 如果是负一百二十六的话,会不会上下对称呢?显示出来好,把他的大小呢?给他也设定成七十五,移动到卡牌位置,卡牌编号,卡牌编号也没问题,来,我们运行一下, 我们让玩家牌先出吧,不加,等待了,走你哦。好,这个位置我们没有改,对不对?地方没有改,他应该是负的,要不然两个就重叠了。 好,这样的话,这个过程我们就发牌的过程模拟完了,然后对于这个玩家卡呢,我们给他增加一个特效,当我的鼠标挪到上面的时候,我希望让他能够变大一些,他的时候呢变小一些, 我们加一个重复执行,如果,那么否则,如果他碰到了鼠标指针,我就把他的大小设定一下, 变大一些,大小设定为一百,试一下,然后如果没有碰到的话,就把它恢复成七十五, 发牌。好,已经发出去了,变大变大变小,变大变小。然后呢,他是不是被旁边的给遮盖住了呀?所以我们给他加一个,移到最前面,发牌 变大变大变大,如果一百太小的话,改成一百二,哎, 已经有这个效果了,对不对?好,那基本的功能我们就完成了,接下来呢,关于这个变大变小呢,我把它优化一下,这一部分需要一定的数学知识,然后呢比较难啊,这个同学们可以尝试跟着我做一下,我们让这个变大的过程呢更流畅一些。 我们把它大小呢改成每一次都增加,有一个逐步增加的过程,将大小增加,然后呢基于一个基准线, 一百六减去大小,找到他原来的大小 乘以零点二,同时呢他的 坐标呢要往上挪动一点,刚才我们这下面是不是都被挡住了呀?将歪坐标增加,增加多少呢?跟上面这个类似,我们呢,让他基于现在的歪坐标来进行变化,负一百 乘以零点二。好,那这整个增加的过程他应该是不断增加的,直到我们鼠标离开,他又恢复成一个大小,对不对?嗯,加一个,他有没有到最上面? 我们把这个放在这上面,然后右键复制一下,如果没碰见鼠标的话,就让他恢复成我们的七十五。哎,我们运行一下,然后这个大小呢,让他恢复到我们原来的副 一百二十六点。绿奇发牌。好,鼠标挪上来,他变大了,对不对?离开变小了,这有点太大了,我们还用我们刚才的一百二 好点,对齐发牌,鼠标挪上来变大,离开变小。好,我们增加了一个不断变大的这么一个效果啊,他会更平滑一些。当然了,这个一百二还是一百四,这个跟你自己绘制的大小有关系,大家一定要灵活调整。 好的,我们今天卡牌游戏第一集的功能呢,就做到这里了,再次我们会丰富一下我们的玩家卡片,让他有各种不同的属性,然后呢,选中之后可以去出牌,在这一部分相信大家会有很多的创意,你也可以提前思考你想要什么样的卡牌,我们的基本 原理是有生命,有给对方造成的伤害,当然每出一张牌要消耗一定的法力值,如果你还有其他更好的建议,欢迎在评论区里面留言。做完之后一定记得点击文件保存到电脑,给你的作品起一个名字,比如 卡牌游戏第一集,确定一定千万千万记得要保存,否则你一旦关掉,刚才做的东西就没有了。拜了个拜,下次再见。
粉丝8.7万获赞44.1万

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

百分之九十九的人不知道 girl 其中有多少种颜色特效,嗯,一起编程探究一下。没有编程基础,不知道什么是编程的小伙伴也可以通过视频感受一下 什么是图形化编程,欢迎大家一起来编程,体验编程的乐趣。话不多说,开始编程,双击打开 spr 这软件我们要研究的是外观分类里面将颜色特效设定为多少,增加多少这个模块。首先看一下它的基本用法, 如果我把颜色特效设定为零的话,小猫是没有任何变化的,如果我设定成五十,小猫的颜色就会发生改变, 那他最大支持多少种颜色特效呢?这个呢是我们今天要探究的主题。我们首先把他的颜色特效设定成零初始状态,然后呢,我们每一次把他的颜色特效呢给他增加一, 让他来一个重复执行,我们观察观察他的变化规律是什么?加一个,当绿旗被点击,我们会发现他从黄色变成了绿色,变成了蓝色,然后呢,一步一步的,最终又回到了这个黄色的这个最出色的颜色。 所以呢,我们可以得出结论,这个颜色特效呢,并不是无限大的,它是在一个范围内不断的循环,那它总共在多少种颜色之间循环呢?我们通过一个变量的来记录一下, 听见一个变量给它起名叫度量,一开始这个数量呢,我们把它设定成零,然后呢这个小猫呢,我们给它挪到最左边的一个位置, 然后呢让他一边改变特效,一边往前走,这样我们就可以记录下来了。那这个走的过程我们用一下图章,图章每增加一个颜色特 特效,我就盖一个图章,同时让它往右移动一下,往右移动呢是把它的 x 坐标增加一下,我们增加二,然后呢把这个数量对应着增加一下,增加一, 我们现在来试验一下,点击滤器,然后会发现这个小猫颜色在不断的发生变化,数量呢在不断增加,他最终呢变成了黄色,但数量还在增加,我们得想办法让这个小猫再次变成黄色的时候停下来,所以我们可以这样 再复制一个小猫这个角色。二,这个二是什么特点呢?我们让这个小猫二呢,去检测有没有碰到原来的那个颜色,重复执行, 然后如果不断的判断,如果他碰到了原来的颜色就停下来,那就证明第一个小猫呢,他恢复到了初死的这个黄色,那 这个颜色呢?我用吸管去吸一下他原本的这个黄色就可以了,对吧?如果我发现他已经恢复到最初的这个黄色了,我就把脚本全部停下来,不要再往前变化了。这个小猫他应该在什么位置呢?他应该不断的跟着这个 第一个小猫,对不对?但是呢,你不能一开始就跟着他,否则一开始他是不是就碰见这个颜色了?所以我们在前面加一个,等待一秒, 等待一秒,一秒钟之后让他一直跟着我们第一个小猫。好,我们来测验一下第一个小问题,我们原来画的这一些小猫是不是应该删除啊?所以在我们第一个角色里面,我们加一个全部 擦除,好一秒钟之后跟着我的小猫走了,然后一直往前走,一直往前走,数量在不断的发生变化。哎, 当它变成两百零一的时候,是不是就停下来了呀?但是呢,我们背后的那个小猫看不到它的变化了,我们再调整一下,对于这个角色二呢,我让它移到最后面去,不要挡着我们。第一个颜色变化的小猫,这有一个移到最前面,我们加一个,移到最后面,我们重新测验一遍,点击滤奇, 数量不断的发生变化,小猫移到了这个颜色特效的小猫后面。好,最终呢,我们数量定格在两百的这个位置,那我们还可以再验证一下,比如说这个小猫,我们把它拖出来, 我们用一个设定,一开始我把它设定成零。好,初次状态你再设定成两百,设定成有颜色的吧,设定成十,他是不是变成了黄色呀?那这个改成二百一十,我们把颜色 清除啊,甚至二百一十,是不是跟刚才颜色几乎是一样的呀?设定成五十, 二百五十,颜色呢,几乎是一样的。所以呢,我们的颜色特效呢,大概有两百种,他会从零变成两百,再变成两百零一到四百零一,这都是一样的 颜色特效。这个呢,我们就探究到这里了,那最后留一个问题,你知道什么是 rdb 颜色吗?下期我们一起来探究一下这个问题,记得点赞收藏, goodbye。

复活了这个系列,上一次更新应该是,嗯,好多天前了。今天我们得到了新的素材,矜持长老,有普通攻击、踏地攻击、 激光攻击以及挨打特效。感兴趣的小伙伴可以先从猴网下载这些素材,自己来挑战,实现对应的功能。 侯老师的教程还要稍等等,如果你之前还没有做过这个系列,强烈推荐挑战一下。我们已经实现了人物移动地图、滚动无限地图、轻攻击 棍、劈棍、利棍、戳棍、敌人所敌敌人移动物空攻击以及血量条。这些功能代码很多,难度也比较大。当然了,有挑战性的任务才更有意思,也更有价值嘛,小伙伴们加油加油!

接下来我将跟大家一起编程,从零开始,做一个杨贵阳,探究一下,观察背后的逻辑。没有编程基础,不知道什么是编程的伙伴,也可以通过视频感受一下什么是图形化编程。编程逻辑较为复杂,且设计一定的速决知识,建议点赞收藏,反复观看。 在这一集中,我们首先要实现三个基本功能,第一,点击滤镜后可以生成卡片。第二,点击卡片后可以进入选择框。第三,点击多个卡片后卡片会自动后移。话不多说,开始编程。首先打开编程平台,往下滑, 点击进入羊了个羊,这里就是我们的素材作品了,点击进入作品详情页,然后点击查看原代码,就能够进入编辑器查看各种素材了,一定要记得,首先点击改编,这样这个作品就会保持 存在你自己面。接下来我们开始骚脑编程。第一步,首先把没用的代码删除,暂时不需要的角色给他隐藏,如果声音正在播放的话,也可以给他暂时不播放,保存一下, 名字改成杨了个杨。第一集接下来我们完成第一个任务,生成卡片,因为我们只有一个角色,那怎么样生成很多个卡片呢? 点燃要用到克隆的功能,我们首先来做一下基本功能,当日系被点击的时候把本体隐藏起来,然后呢,我们让他重复执行九次克隆自己。我们 第一关先弄九张卡片,然后呢,当克隆题启动的时候,我们首先让它显示出来,但是呢,不能在同一个位置,否则会互相重叠,我们先让它滑到其他的位置去点滤器测验一下。好,这个卡牌的大小有点大,我们可以直接在这个地方 改成一百一,重新抽烟一下,没问题。那我们怎么来确定每一张卡片应该在什么位置呢啊?有很多种方法,在这个地方我们选择建立一个列表,在列表里面存储每一张卡片它的位置。卡片 x 坐标, 再建立一个卡片歪坐标。接下来呢,我把坐标填到里面,你们也可以选择自己想要的位置把它填进去。首先是前三张卡片都在 上面,部分坐标是幺零二,他们的 x 坐标分别是负三十零三十。接下来第二排的卡片全部的歪坐标是六十八, x 坐标跟上面一样负三十零三十。第三排的三张歪坐标是三十四, x 坐标一样。 那如果你想要更多卡片的话,可以按照这个方式把一百多张卡片呢全部添加进去。那接下来第二集的视频中,我会把这个坐标提供给大家,大家也可以先自己尝试一下。接下来我每生成一张卡片,是不是让它移动到 对应的编号的坐标去就可以了?所以我们要用到移到什么什么位置,移到哪一个位置去,是不是就需要用到这个列表的第几项啊?卡片 x 坐标的第几项?卡片 y 坐标的第几项里面这个数字呢是需要发生变化的, 每一个克隆体都需要记录一下自己的编号,所以呢,我们新建立一个变量,仅适用于当前角色,给他起个名字叫炸花线标志,他是私有变量卡片编号,所以克隆之前我们让他移到他所 对应的编号的 x 坐标和 y 坐标是不是就可以了?那这个编号怎么设定呢?当前我重复的第几次是不是就应该是编号是几啊?所以我们再建立一个变量,给它起名叫全局变量卡片数量。一开始这个数量呢,我们给它设定成零, 然后呢每重复执行一次,就把这个卡片数量给它增加一,然后第一次克隆是不是就是第一个卡片呀?然后呢把这个编号给它设定成卡片数量,这样的话我第一次肯定就挪到第一个位置去,第二次卡片数量增加一,编号呢就变成二了,然后呢挪到第二个位置去, 那我们呢可以加上一个测验,让他缩出来,他的编号发行不要了,测验一下,我们看到这个地方是不是九个卡片就影射 整好了,并且数字呢全部显示了出来是没问题的,只不过造型呢没有切换。我们接下来来解决造型的问题,因为我们只有九张卡片,所以呢我们选择让他克隆的时候,在三个造型里面去选择是不是可以了?我们加一个随机数, 让他在一到三字间换一个造型,然后再去克隆自己。这个说话我们先去掉,哎,能看到这时候已经出现了三种造型,但是他的数量是不是并不是三的倍数啊?那这时候你肯定是过关过不去的,这也是套路之一。 所以呢,我们为了保证自己能过关,我们选择一个方法,让他的卡片数量出来的时候呢,都是三的倍数。我们创建一个列表,给他起名叫卡片类型数量,在这个列表里面我们 会记录每一张卡片它生成的数量是多少,第一张卡片生成三张,第二张卡片三张,第三张卡片三张。那因为这个卡片数量呢?之后呢,你会经常改动,所以呢我们选择呢用代码来做, 当这些被点击的时候,先把里面的代码全部删除空了。然后呢在克隆之前,我把它添加进去,把第一张卡片三张加入进去,第二张卡片三张加入进去,第三张卡片加入进去,测验一下, 里面已经有了,那我怎么去用它呢?然后生成之后怎么把它剪掉呢?我们再新建一个变量,给它起名字叫生成原色类型,好把这个变量呢设定成 一到三的随机数,然后换成哪一个造型,直接用这个变量放进去是不是就可以了?假如说生成一,那就换成一造型,同时这个变量里面的这个三是不是应该减去一,变成二呀?我们再加上这样一段代码, 把这个数量里面的第几项替换为他原来的数字减去一,再找到卡盘类型的第一项,然后把它减去一, 减去一,找到新的数字之后,把它一替换,是不是就可以了?那这个地方不能永远是第一项,他随机出来是几,我就找到第几项。好,然后呢把它更新一下,我们测验测验走。你 好,有些情况下我们是能够生成正好的数量,有些情况下是不是不太对啊? 那这个是为什么呢?是因为我们卡片这个地方呢,他有时候会生成副的,对不对?所以这个地方呢,我们再加一个教验,如果这个地方 他随机生成的这个类型呢是小与零的,我们就得让他重新再去生成一下,直到呢他生成出来的这个造型他是大于零的才可以,所以这个地方我们加一个重复执行,直到重复执行,直到你想要生成的这个类型他是大于零的 好才可以。我们把它放到下面去,好,再次测验好,这一次是不是随机出来的,都正好是三的倍数啊。 接下来我们完成选择卡牌的功能,在克隆体里面 我要去判断一下他有没有被点击,所以我们加一个如果,那么那被点击呢?是两个情况的合集,按下鼠标并且碰到鼠标, 那为了防止重复点击呢,我们这个地方加一个常规操作,等待它松开鼠标之后才让它进行下一步动作,松开鼠标就是按下鼠标不成立,那这时候它是不是应该滑行到下面来啊?我们把变量隐藏起来, 我一点击他就应该滑到这个地方来,我们加一个在一定时间内滑行到什么位置,那这个地方呢?经过我们测验是负一百一十七,当然看你自己有没有改动这个拖动他的位置啊。负幺零三,点击是不是滑下来 速度有点慢,我们把时间改短一点,然后呢他划过来之后,他的代码是不是就执行完了,所以我们给他加一个,停止这个脚本 走你没有问题。第二个是不是就不行了,他又把它重叠了,所以我们需要记录一下每一张卡片他 应该划到什么位置。我们建立一个列表,起名字叫已选择卡片, 再建立一个变量,仅次用于当前角色,他的名称叫以选择卡片位置,就是说我选了这个卡片之后,他应该在选择框里面的哪一个位置,每一个是不一样的,所以仅次用当前角色。 当我松开鼠标之后,意味着我已经选择了,所以我需要把当前这个卡片 的造型给他加入到我们的已选择卡片里面去,然后记录一下这是第几个好,第几个呢?它里面有几个元素 项目数,那是不是就意味着我选了几张卡片了,然后呢?第一张卡片就移到第一个位置,第二张卡片就移到第二个位置,那这个地方呢?我们要把它修改一下,用上一个乘法 和加法还是负一百一十七,加上他的编号,假如说是第一的话,是不是应该还是这个位置啊?第二个就应该往后挪一定的间距,那这个间距呢?是三十七。 第一个编号是不挪动的,所以这个地方用一个简易好车验一下 点滴之后,你选择小草加入进去了,再选择胡萝卜,哎,也加进去了,往后挪动了,对不对?再选择胡萝卜也往后玉米,但是如果再选择小草,哎,他是不是并没有挪到前面去啊? 我们来解决第三个功能,自动后移,当我按下鼠标的时候,我首先是不是得判断一下现在有没有这张牌啊?所以我们加一个如果,那么否则旁边一点, 如果已经有了这张牌了,那就是包含以选择卡片,包含当前的这个造型,这样的话呢,我就需要把它插入到当前这个位置,其他的往后移对不对?如果没有的话,跟刚才一样 好,我就应该用这段代码来做,那这个呢?是移动是可以重复使用的,那如果包含它的话,我是不是应该首先知道 一下他在第几个呀?比如说草的话就应该插入到第一个,胡萝卜的话就应该插入到第二个,所以呢,我要先去记录一下他要插入到什么位置,建立一个变量记录一下,其他的可以先隐藏, 把插入位置设定成第一个出现这个的地方,把它撑起来,然后跟这个类似,我需要把它加入到这个卡片里面去,对不对?把它添加进去才可以。哦,那这个处置化的时候要把它删除, 不能用直接加入了,要用在以选择卡片的第几项呢?插入位置在这个位置前面插入一下这个编号,这个名称才可以。好,跟这个不太一样了,那插入之后他的这个位置是不是应该 就正好是这个变量啊?哎,我们来测验一下, 如果我选择玉米的话,是不是应该插入到一这个位置去?好,是不是应该插入到这个地方啊?如果是胡萝卜的话,哦,胡萝卜的位置应该在这个地方啊,这个不太对,我们检查一下。哦,是这个地方呢,应该是以选择卡片啊,再测验一下 插入到第一个没问题。哎,这个地方刚才是不是应该通通往后与挪动啊? 我们把往后移动的功能增加上,我们在这个位置给他广播一个消息,叫自动后移,是为了通知其他的克隆体呢,你应该往后挪动一下,当接收到自动后移消息的时候,当然 不是所有的克隆体都要往后挪,对吧?因为我们每一个是不是都有一个编号啊?我们可以把它写出来,你选择卡片的位置一二。 哎,当我再选一个的时候,这个一是不是不需要移动?原来的这个草往后移动就可以了,所以这个地方呢,要加一个判断,如果 这个克隆体的位置是大于我们插入的这个位置的话,他才应该往后移,同时移了之后,他的编号是不是应该增加一啊?因为他变到第三个编号的卡槽里面了,所以我们把他的你选择卡的位置增加一,然后呢往右挪动的话呢,我们用一个 x 坐标增加,因为总共是三十七,所以呢,我们给他重复十次,每次挪动一点点,这样有一个动画的 效果,来测验一下选择二三对不对?我选择小草,哎,刚才这个三已经挪动了,另外一个二十分没有移动啊,我们检查一下 哦,在这里不能大于插入位置,应该大于插入位置减去一才可以,因为他要插入到位置二的时候,位置二是不是也得往后挪呀?推荐一下, 好插入胡萝卜哎,胡萝卜是不是和玉米都往后挪动了,但是这个当前的这个卡牌是不是也挪动了?那要解决这个问题呢,有一个很好的方法,我们让他等一会更新就好了, 那至于为什么这样可以,大家可以思考一下,我们把不需要的变量和说话呢去掉,最后测验一下。 好的,这一期的视频就到这里了,关于怎么生成更多的卡片以及怎么消除卡片,大家可以先自己尝试一下,如果你有什么好问题或者好的建议的话,欢迎评论区里留言,记得点赞收藏, goodbye, 下期见!

这样的鼠标拖尾特效,侯老师之前分享了一种制作方法,视频的评论区就有其他同学留言了新的方法,侯老师学习实践后分享给大家,也希望大家能继续多多思考,多多留言。话不多说,开始编程。 打开 scratch 软件之后,我们首先呢来从扩展模块里面找出来画笔,本次我们主要用里面的图章模块来实现拖尾特效, 我们首先呢来复习一下图章本体呢,本来只有一个,我点一下图章本体呢就会生成一个新的小猫, 但是图章产生的这个小猫呢,他没有办法像克隆体那样来回的有所动作,所以呢他呢消耗电脑资源就少一点,所以当我们图章特别多的时候呢,电脑也不会变卡。然后呢,我们还需要添加一个 新的角色,我们找到长方形绘制一下,把它的填充颜色改成纯黑色,这个几乎上是覆盖了我们的整个 舞台,但是呢还是有一点偏差,我们到运动里面把它挪到正中间就可以了,零和零是正中间加上一个,当绿棋被点击,我们要用一下外观,里面有一个虚像特效,虚像特效默认为零,这个角色呢是没有什么变化的, 如果虚像特效是一百,他就是完全透明的一个状态。这一次呢,我们要用到虚像特效为九十点,一下仔细观察,你会发现舞台上其实有一个淡淡的黑色的蒙城,是刚才那个蒙城虚像特效百分之九十之后的结果。然后我们到画笔里面找到图章, 注意观察舞台的变化,随着我不断的点击图章,舞台上面的黑色是不是越来越重啊,直到呢这个小猫把它完全的给盖住了,这就是我们这一次的原理啊,我们用一个黑色的蒙城不断的产生图章的方式,把小猫产生的 图章呢慢慢的给盖住,本体呢是不受图章的影响的,所以呢,你产生图章比较早的这些小猫呢就被盖住了,刚刚产生的小猫呢就还没有被盖住,从而形成这样一个脱尾的特效。我们把整个过程呢连起来大家来看一看,就不用手续点击了, 直接让电脑呢来重复执行。小猫呢也是一样,他需要重复执行图章,同时呢跟随鼠标进行移动。 当绿棋被点击的时候呢,我们首先把默认的原来的这些呢全部擦除走。你 好,大家能看到是不是已经有这个效果了,回想一下刚才我们的原理,先产生的小猫呢,先被盖住,后产生的小猫图章呢后被盖住。好,我们还可以调整一下这个拖尾的数量,我们只需要呢把这 这个虚相特效色的再大一点,他需要比之前多很多的图章才能够完全盖住,所以呢,这个小猫显示的就会更多一些,明显比刚才更长了一些,对不对?好的,这就是评论区里面学到的另外一种方法了,如果你觉得本视频有所帮助,记得点赞收藏和分享哦! goodbye, 下期见!

一大波数学就要来临,就问你怕不怕?本机要编程实现的定位功能用到了大量的数学知识,学习的数学终于派上用场了,来感受一下数学和编程相结合的魅力吧!如果你是第一次看这个系列,请留意,接下来我将跟大家一起编程,从零开始,做一个 大战僵尸游戏。没有编程基础,不知道什么是编程的小伙伴也可以通过视频感受一下什么是图形化编程。欢迎大家一起来编程,体验编程的乐趣,改编后还可以参加编程比赛哦!编程逻辑较为复杂,也设计一定的数学和物理知识,建议点赞收藏,反复观看。 上一集我们完成了植物卡片的选择和种植,但还有一些遗留问题,比如还没种就扣除了阳光,比如植物可以随意种植,比如代码。 虽然好理解,但是比较勇于,很多同学也提出了自己的解决方法,非常棒,希望大家继续积极思考,在评论区留下你的建议。在这一集中,我们要实现的是网格的定位功能,植物只能种植在草地之内,不能种在草地之外, 种不下,并且种植在网格上之后也会排列的非常整齐,不能像之前一样随意种植。同时我们也会对代码进行适当的优化。话不多说,开始编程。打开我们上一集的代码之后,我们首先来把这一段看着比较勇于的代码优化一下, 那今天呢,我们来优化这一段,那这一段的代码的意思是说,当我点下卡片的时候,如果我点到了次向日葵,我就把这个变量设定成向日葵,如果 点到的是豌豆射手,就设定成豌豆射手,同时扣除对应的阳光,对吧?这段代码呢,这两部分显然是重复的,而且呢扣除阳光太早了,我们应该再放下植物之后呢再去扣除阳光,那所以呢,我们需要在这个地方 把它拿掉,待会呢把这个放在植物的角色里面去,那这两段代码一模一样,并且后面呢会有更多的植物,怎么优化呢?其实很简单,我们可以这样 种植,植物类型设定为什么呢?直接设定成这个克隆体的造型名称就可以了,这样的话我点到谁谁就把造型名称存到这个电量里面去,然后呢克隆一下植物,那这个植物克隆出来之后呢,等到我按下主标之后,再 剪掉对应的阳光值。好,那怎么样知道哪一颗植物对应的阳光值呢?如果在这个地方再去判断的话,是不是就很麻烦了呀?所以这一次呢,我们用另外一个方法来做,我们提前建立两个列表, 用来纯除我们的植物类型和植物的阳光。首先是植物类型确定,再建一个植物阳光 好,在植物类型这个列表里面,我们创建一下我们这一次要做的几个植物的类型,总共六个,第一个向日葵, 好的,我们把这六个植物呢全部添加到列表里面去了,接下来呢在阳光的这个列表里面,把每一颗植物 对应的阳光再填写一下,为了让其他的植物呢,先治灰,我们给他填的大一些,跟实际的是不一样的。 有了这两个列表之后,我们怎么使用呢?来我们回到种植植物之后,我们要找到种植的植物的阳光值,对不对?首先我们是知道我种了哪一颗植物的, 这个电量里面现在存的是豌豆射手,所以呢我需要在这个列表里面找到豌豆射手的编号,也就是二,那我们在列表的模块里面有一个 植物类型中的第一个什么东西的编号,这个地方我填豌豆射手,他就会得到二,对不对?那我种什么东西我就找他的编号就可以了,有了这个编号我就可以去另外一个列表里面去找他的编号对应的阳光值,我们再把这个 选择他的阳光值找出来,如果是二的话,选择阳光就找出来他的阳光值是一百了,把他们连在一起,我们就找到了豌豆射手对应的阳光值,这时候呢我们要给他减掉,所以呢要用一下减法, 用零减去我们得到的这个值,然后呢把它放进去来,我们把它隐藏之后测验一下, 点击之后并没有立马扣掉阳光值,而是当我种植了之后,他才扣出了阳光值,这样的话我们这个问题是不是就解决了呢?当然我们前面呢还有一段容易的代码, 这一部分代码呢也很长,每添加一个职务呢,都要去把它复制一下,并且里面的代码呢是重复的,你有没有什么办法能优化一下呢?欢迎在评论区里面留下你的建议。那今天呢 我们要做的是定位功能,就是说我的植物呢,要在种植的时候指定到对应的网格里面去,而不能随意种植。 那这个功能呢,之前评论区里面有同学建议可以使用生命游戏里面那个网格化的方式来做,给每一个网格呢都来一个克隆体,然后用克隆体去判断他到底有没有被种上植物,这个方法当然是可以的,大家可以去试验一下。那今天我们用另外一种方法, 用坐标去确定他是哪一个网格,然后呢来做出对应的判断。这个地方用到的数学知识就比较多了,大家做好准备。首先我们来做一个辅助功能,来时刻的检测我们的鼠标现在是在什么坐标的位置,我们随机找一个角色,居然随机出来 一个问号,没关系,不管它是什么,我们把它缩到最小,设定为一看不见它就可以了。然后呢我们让这个角色重复执行,跟着我的鼠标去走,移到鼠标指针的位置,然后呢让它缩出来它的坐标是不是就可以了? 那说出来的坐标呢?在运动里面有 x 坐标,有歪坐标这两个数字,我们怎么给它连在一起呢?用一下运算里面的连接好,第一个 x 坐标,第二个歪坐标,中间呢?我们删掉加两个空格连在一起, 好给他加个小绿旗,好。点击之后会发现我们鼠标不管移到什么地方都能够显示我们的坐标了。那我们来全屏测验一下我们这个草地的边界是多少,左边大概是负一百七十七, 右边大概是两百三十六,那整个宽度呢?计算一下,那是四百一十四的宽度,总共有九列,所以每一列的宽度呢是四百一十四除以九,也就是四十六。那上边界呢是一百二十 七左右,下边呢是负一百六十五左右,然后呢我们总共有五行,所以呢我们是评估下来是每一个高度是五十八,他的整个的高度呢是两百九十,我们把这些估算出来的数据呢给他纯除一下。 我们到草地这个角色里面来,在变量区域里面新建几个变量, 垫好这几个变量之后, 我们给他做一下初始化,当利息被点击的时候,把他们设定一下,上边界是一百三十,下边界是负一百六十, 左边界负一百七十八,右边界二百三十六。然后呢我们的网格的宽度和高度也设定一下,高度是五十八,宽度是四十六。有了这几个变量之后呢,我们就可以去把每一个格子的 位置给他确定一下了。为了得到每一个网格的坐标,我是不是知道每一行的歪坐标是多少,每一列的 x 坐标是多少?然后呢看一下这个网格是几行几列,就能够得到他的实际的中心点的坐标了呀。所以我们先把 每一行的歪坐标记录一下,草地的行歪坐标, 草地列的 x 坐标,每一列的 x 坐标,接下来呢我要把他们的 每一列的 x 坐标分别求出来,这个应该怎么算呢?很简单的计算一下,假如说我最左边的是负一百七十八,那我要找到这个位置,是不是加上我的网格宽度除以二就可以了,就得到 第一列的 x 坐标了。然后第二列的 x 坐标是不是在第一列的基础之上加上网格的宽度就可以了,第三列再加一个宽度,第四列再加一个宽度,那我们顺着这个思路呢,来写一个简单的重复的算法,首先我们找出来 左边界的值,他算第一个,第一列的 x 坐标的时候呢,要加上宽度的一半,所以要用到除法, 我们找到宽度,网格宽除以二,然后得到这两个数字呢,他们应该相加在一起,就得到第一列的 x 坐标了。那我要去计算第二列,是不是就要再加上 一个网格的宽度啊?那下一个又是一个网格宽度,那这个过程呢,我们用重复执行来做,这时候呢就需要一个临时变量,我给他起名叫爱,一开始呢把这个爱设定成零,这样的话,爱成这个地方 用上,不要网格宽度了,给他呈上这个爱好,当爱等于零的时候,零乘以网格宽 是不是还是零,所以计算出来第一列不变。当爱等于一的时候,乘以网格宽度加在一起,是不是就是第二列的这个 x 坐标了?好,这一段呢,大家要好好的理解一下。计算完了之后呢,我们把爱呢增加一, 整个过程呢,我们让他重复执行,当然这个结果呢,不要忘了给他存起来,把他计算的结果加入到 x 坐标里面去, 整个过程重复执行九次,因为我们有九列,把九列的 x 坐标都算出来,我们实验一下,点一下来看一看九列的 x 坐标哦,这个地方没有变化,我们看一看,为什么 八个很常见,没关系,我们看到了网格的宽度是零,这个地方呢,刚才没有出此话,然后呢我们再运行一下,哦,还没变哦,已经变了 在下面。所以呢,我们一开始的时候呢,要给他做一个列表的初始化,把他原来的呢都给他删除,顺便把歪也做了,然后连在一起,我们试验一下点绿旗, x 坐标呢是负一百五十五,我们看一看, 负一百五十五差不多,第二个负一百零九差不多,第三个负六十三差不多,第四个负十七差不多。那这样我们每一列的 x 坐标呢,就求出来了同样的方法,求一下每一行的歪坐标,我们可以把它复制一下 eq 四零,总共有五行,那就重复只用五次行的计算方法呢,应该是从最上方的这个边界一百二十七,每次减掉二分之一的高度是不是就可以了?然后呢,再减去一整个网格的高度, 就能算出来第二个,第三个,第四个,第五个。思路是一样的,这一块大家一定要仔细思考一下。我们这一次呢,换成减法 上边界减去网格的高度除以二,得到了第一个的外坐标,然后呢用它再去减去第几个,让他乘以网格的高度。 好的,有了这个结果呢,我们也把它存储到我们列表里面去,记得是歪坐标,好来测验一下。 哎,歪坐标也有了,那我们第一行第三列是负六十二,九十四,对不对?一行第三列,第三列的 x 坐标是负六十三,然后第一行的坐标是一百零一,好,基本上呢是中间这个位置没问题,这样的话呢,我们只要求出来 这个网格是第几行,第几列,再结合这两个列表,我们就能定位到他的中心点的坐标了。那接下来呢,我们就要求一下主标所在的是第几行第几列了,这个怎么算呢?我们到植物里面 放置植物的时候,计算一下他在第几行第几列就可以了,因为每一个植物放的行和列是不一样的,所以呢我要给他记录一下,我在列表里面创建一个仅适用于当前角色的电量,这样的话每一个植物都能记下来他在第几行第几列。那我们给他起名叫植物 行,因为他是个仅次用于当前角色的私有变量,为了区分呢,我给他加一个下滑线,这样的话以后我们只要是私有变量都加上下滑线,就很容易识别出来。同样的方法,再建立一个植物猎勾选 选一下,那怎么样计算他植物是哪一列呢?我们来看一看我们的算法。首先这个地方我们是不是能算出来 鼠标的 x 坐标啊?这个地方是负六十二,这个地方是负十五,有了这个坐标,我们减去最左边的边界,是不是能得到它的宽度啊?这个常识理解一下,用它的主标的 x 坐标减去最左边的这个边界,就得到了这个宽度。 那这个宽度呢?除以我们网格的宽度,是不是得到一个小数?比如在这个地方我一除可能得到一个二点几的数字, 那二点几的这个数字是不是对应我们第三列?所以我们只要向上取整就可以了。那对于这个地方,我算出来结果除以网格的宽度可能得到三点几,向上取整就得到了四。那这个过程怎么计算呢? 我们来看一下。我们首先找到鼠标的 x 坐标,然后让它减去我们的左边界,然后呢让它除以 网格的宽度,这样就得到一个小数,然后呢让小数呢用一下这个数学公式叫向上取整, 这样就计算出来他在哪一列了。然后呢同样的行呢?一样的思路,我们把行设定为他,就需要让上边界减去鼠标所在的歪坐标, 他们的结果呢就应该除以网格的高度,得到了职务所在的这个网格是在哪一行,那我们可以呢把 把这个坐标呢让它停下来,我们让植物呢把这一段话说出来, 说出来他的哪一行哪一列,那这整个过程我们放在这个地方来试验一下,把这些呢,我们可以把它隐藏起来, 全屏点击绿旗,选一下我们的向日葵,哦,他没有显示在最前面,待会我们完善一下,往这放一下,哎,是不是第二行第三列我就找出来了,这个第一行,第二列, 第三行、第五列,没问题,有了这个第几行,第几列呢?我们就可以把它种到对应的地方去了,不管是他多偏,我都知道他中心点的位置,我们找一个移到什么什么位置,然后呢 找到我们的这两个列表,第几项,第几项好? x 坐标怎么找呢?它,对呢是我们的这一列这一列所在的 x 坐标,找到它 y 坐标,对呢,是这一行,我们把它移动过去,哦,来实验一下, 假如说我种的比较偏,哎,他是不是也是到第二行第三列的中间去了,哎,自动就移动上去了,对吧?但是有点偏上,之前我们也遇到过这个问题,我们把它纠正一下,拿过来就可以了, 种一下,哎,自己到中间了,我偏一点,哎,是不是也自己到中间了,这样的话我们就能够实现这个功能了。但是如果我在外面,是不是,哎,他等就到这个地方了,其实在外面是不应该种植的,所以我们在整个的种植过程 程中呢,再给他加一个大的判断,如果他在区域内,如果他在我们整个的草地的这个区域内才能够种植,如果在区域外的话就不行,所以这个地方呢要用到多个判断。我们把大鱼小鱼号拿出来复制一下, 我们鼠标的 x 坐标应该是大于我的左边界才可以,对吧?要不然你就超过了范围了,你的 x 坐标同时应该小于右边界,并且呢这个呢应该是同时成立的,我们用一个语, 对于我们的歪坐标也是一样,歪坐标首先应该大于下边界, 同时歪坐标应该是小于上边界,应该同时成立,并且 x 坐标的限制和歪 坐标的限制也应该同时生效,我们把它卡进去这一部分是比较难的啊。好,那如果他满足这个条件我才能中,如果不能满足的话,他是不是就结束了,那不管在什么地方你都直接中下去了,我们来试一下 在这他是不是直接种在这里了,那也是不行的,我们要让他重新回到我们的鼠标指针这个位置,让他种不下去就好了,所以给外面再加一个重复执行,那当然这个地方种下之后呢,重复执行就应该停下来了,所以往这加一个停止这个脚本, 我们来试验一下哦,加一个显示在最前面,免得被遮挡住,点击向日葵在外面是没办法种植的,然后在这个地方一种,他自己呢?就到中间位置了。中间位置中间位置, 中间位置没问题。那这样的话,我们今天的定位的功能就做完了,涉及到很多的数学知识,尤其是坐标的知识,建议点赞收藏,多看几遍,理解消化一下。 如果你有什么问题或者更好的建议的话,欢迎在评论区里面留言,记得点赞收藏加关注,我们下期再见! goodbye!

大家好,这是我们僵尸射击游戏的第四集,在第三集中我们实现了金币的获取以及商店的显示和隐藏,但是我们的商店还是目前还是 空的。在这一集中呢,我们就会给我们的商店添加第一个装备,通过这个装备呢,我们能够让我们的英雄更加的技能上得到提升。如果你在前面的教程中遇到了什么问题,欢迎在评论区里面留言我是我会及时给予你回复。 好,那接下来我们开始绘制我们的第一个装备,我们的第一个装备是针对手枪进行的增强,所以我们首先绘制一个角色,说明是针对手枪的, 为了让我们的图标呢显示更明显,我们对我们已有的商店呢做一个优化。 好的,这样我们的商店角色呢就优化完了,我们可以往中间绘制我们第一个装备的这么一个图标,新建一个 角色。那这个地方呢,大家可以根据自己的想象力画一个自己觉得比较好看的图标,当然如果你啊也可以从网上找一个现成的图标啊,建议 大家呢可以尝试一下绘画的功能,绘制一个比较理想的图标。 好的,到这里我们手枪的第一个装备就已经绘制完成了,他代表着我们可以加快我们手机射击的速度。 好的,要给这个装备加一个说明,我们再添加一个角色,在里面增加一 文字说明,以及他的价格,加快 射击速度。 好的,中间位置价格五十个金币, 我们把价格的颜色调整的不太一样一点 好,整体的大小呢,我们可以稍微放小一点, 九十吧。 好的,保存一下,这样的话我们前期的准备工作就已经做完了,我们有呃手枪的说明,这都是手枪的装备,以及这个装备对应的描述和价格我们就都有了。那接下来呢,我们就需要 让这些角色呢跟随我们的商店进行显示和隐藏,目前呢他们还没有啊,都是自己独立自己的。好,我们做这个功能。 好,对于手枪角色一开始呢,我们首先让他隐藏,当他接受到商店出现的消息的时候呢,跟随我们的商店进行移动, 我们用一个重复执行。好,怎么样让他跟随商店进行移动呢?我们有一个移到什么什么位置,如果直接用这个的话,他会跟随在商店的中间位置,这个呢是不太对的,我们有一点点位置的偏差,所以我们用一个移到什么什么位置,然后去侦测一下 商店的 xox 坐标是多少。商店是角色六,他的 s 坐标以及他的 y 坐标,我们复制一下, 很明显商店的中间位置在这里,我们这个手相的汉字呢要比他高一点点,所以应该是在商店歪坐标的基础之上增加一点点。 好,我们增加二十测验一下。好,这个地方我们先让他显示出来, 同时加一个一道坠丧成。 好,稍微高了一点点,我们改成十六。 好,这个位置呢就刚刚好好,但是呢这个手枪呢,他不能一开始就出现,当我们的商店从下面慢慢浮上来的时候,前半截这个手枪虽然跟着商店移动,但是是不能显示出来的,我们要给他加一个判断, 当这个手相冒出来进入到舞台的时候,再让他显示出来,所以加一个如果,那么,否则,如果我们发现他的歪坐标 小于我们的边缘负一百八,我们就让他隐藏隐藏, 如果他超过了这个范围,我们再让他显示出来。 好,我们测试一下。好,手枪已经可以跟着他进行移动了。好,没问题。 好的啊,这里有一个小小的问题,是这个重复执行呢?他是始终在进行进行呃判断的,这会导致我们已经商店出来之后呢,他还在这个地方一直移动到商店的这个位置,显然这个 重复执行是没有必要的,所以呢,我们把它优化成重复执行直道。好,那这个重复执行跟随商店角色移动直到什么时候停呢?直到 商店停下来的时候,这个手枪角色是不是也应该停下来?所以这个地方呢,我们要加一个呃标志位,我们在这个商店角色里面新建一个,用来标志他有没有移动结束。 好,当他开始移动的时候,我们把移动级数设定为零,当他出现到正确位置之后,把移动结束设定成一,一代表着他真的移动结束了。那他关闭的时候呢?也是一样, 一开始移动刚开始移动的时候设定成零,还没有结束,最后呢,把它设定成一,再把它移动结束了。那这样的话,我们手枪这里就可以写一个重复执行,直到我侦测到 你的移动结束,等于一了。好来,屁 来了。这时候我们看到这个地方已经不再高亮了,他已重复执行已经结束了。但是带来了另外一个问题,你再按下屁的时候呢,手枪并没有跟随商店的隐藏起来,所以这个地方呢,我们还要复制一下, 当他接收到商店隐藏的时候呢,他也应该隐藏掉,出现隐藏没有问题。那我们手枪这个角色呢,就做到了跟随商店出现和隐藏。接下来我们把另外两个角色呢也对应处理一下, 我们复制一份,好,走 走。哎,更改一下他,好,那他的坐标呢?跟刚才的手相这个文字就不太一样了,他不能跟他一样都显示在这里,他应该在这个地方, x 坐标呢要 往左偏一点,也就是要变小一点,歪坐标要往下一点,也要小一点。好,我们把这个地方改一下, 减少在商店坐标的基础之上,减去三十。我们试一下 y 坐标,在原来的基础之上,我们先减一个小一点的数字,十, 好,因为这个地方结束已经等于一了,所以我们这样来测试。好, 太小了,我们把它改成六十,歪坐标改成四十, 好,稍微大了一点点,三十五,这个可以再往左一点点,七十,好,又高了一点点,改成三十八, 好,这个位置呢就差不多是可以的,待会我们还有两个装备呢,就可以放到他的右边来。 好,那我们把对应的隐藏也改一下,去掉它, 好,来测试一下。好的,哎,这个图标也可以了啊,最后一个,这个文字 好,文字呢,不应该在这个地方,他应该跟手枪一样在正正中间的这个位置,所以他的 x 坐标呢,是不用增加的,直接跟 商店的 ic 坐标保持一致就可以了。他的歪坐标呢,应该再往下一点点,我们设定成一百,试一下,跟刚才一样的测试方法。 好,正好这个位置非常好,我们把这个删除掉。好, 屁,好,这三个角色呢都跟随商店进行显示和隐藏了,哎,看看这个是怎么回事? 好,在这里我们发现一个问题,有时候呢,当我的商店出现和隐藏,哎,连续按屁的时候呢,这个东西,这个角色呢没有及时隐藏,我们把这个地方优化一下。 啊,这个是因为我们的这个广播出来的消息还没有执行完的时候,这个移动结束就已经被设定成一了,所以我们可以在这个地方加一个广播,并等待。 好。这个意思是说当我广播出去这个消息之后,一定要等到接收到这个消息的这些角色,把它下面的功能执行完了之后,他才会执行下一步的动作,也就是说你下一次再按下批的时候呢,他才管用。所以我们把这个地方更改一下。 好,我们再测试一下,按下 p 没问题,按下 p 好,连续按 好也没有问题。 好的,保存一下。好,那接下来我们要做的功能是当我的鼠标移动到这个角色上面时候呢,要让这个文字显示出来,平常他是不显示的,平常他是不显示的。好,这个位置呢,我们再微调一下。 好, 好,我们首先把这个角色呢,既然做到这里了,把它增强一下,因为接下来我们还会有两个其他的装备,所以只有一个角色的话,我们得用上克隆的功能才可以,所以我们一开始呢 克隆一下这个角色, 当诸位科隆体启动的时候呢,好,我们再让他显示,这里的显示呢,我们用呃虚像特效来做, 一开始让他把虚像特效整成一百,这样的话本体是永远也看不见的。 好,然后呢,在科隆题里面,我们把虚象设定成零,好,这样的话理论上我们是能够 看见这个克隆体的,但前提是克隆体也得歪坐标大于负一百八才能把它显示出来,如果是隐藏的,即使虚像特效为零,他也显示不出来。好,这样的话呢,后面我们在做其他装装备的时候呢,就可以直接多克隆几个这个角色就可以了。好,那在这个地方呢, 我们需要做的功能是当我的鼠标碰见这个图标的时候,让这个解释的说明的文字显示出来,所以这里我们需要加一个重复执行,去判断有没有碰到他。 那之前我们用的最多的是如果碰到这个角色,侦测里面有一个碰到这个角色就让他干某些事情,那今天呢,我们换换一种方式,我们通过坐标来控制,我们去侦测一下鼠标有没有移动到这个范围之内,如果到这个范围之内 了,我让他去做对应的事情。所以呢,我们这次用一个大鱼并且小鱼,我们看他最左边的 s 坐标是我们这个地方可以看到鼠标的坐标, 这坐标是负九十六,当鼠标的 x 坐标大于负九十六, 好,并且小于这边是负四十九,并且鼠标的 s 坐标小于负四十九,说明他在这个范围之内,这个过程呢条件要用并且 好,那只有 s 坐标呢,也是不够的,比如这个地方他也满足这个条件,我们还要控制一下上下的歪坐标,他最高是负三十四,我们复制一下,把这个改成歪坐标, 鼠标的歪坐标, 鼠标的歪坐标小于负三十四,最小是 负七十四,负七十四。好,这四个条件呢得同时满足才行,所以我们再来一个,并且把他们分别放进去, 好, 好,我们用一个,如果,那么,否则,如果在里面怎么样?如果不在里面怎么样? 好,如果他在里面的话,我们就要通知这个角色呢显示出来,我们通过一个变量来控制他的显示和隐藏。这个变量呢,我们 给他建立一个叫描述 好 鼠标,在这个范围之内呢,我们就把这个描述设定成一,代表着我们要换成第一个描述, 如果不在的话,换成第零个描述,那这个第零个描述呢?把它设定成空的就可以了。我们改造一下这个角色,在造型里面我们建一个空角色, 这个空角色呢是零,第一个装备的说明是一。 好,那这个地方呢,就得当我们的这个角色出现之后呢,让他不断的去切换到这个造型上面去。换成 哪个造型呢?这个变量,这个描述变量对应的造型上面去。好,我们测试一下, 看一下屁,好好,价格出现了,哎,但是我们发现这些小人并没有停止,我们再看一下怎么回事, 好,我们检查一下是什么原因,刚才我们按下屁之后呢,我们的僵尸并没有停止移动,那僵尸这里写了,如果商店状态等于关闭,他才会, 他才会往前走,一开始是关闭的,他们会往前走,按下屁,哦,这个地方并没有改成打开。 好,我们这里写了,当我的商店出现并等待,这是我们刚才改的,也就是 说所有接收到商店出现这个消息的,必须执行完毕之后,他才会改成打开。哦,那我知道了,在这个角色里面我们添加了一个宠物执行,所以呢,这个代码呢,永远执行不完,所以这个地方呢,他就不会把它更改成打开了。那我们把这个地方调整一下, 让他到这个地方重复执行,切换成这个造型。好, 好,一开始过来按下屁,好,停下来了,好,这个位置呢,又不太对了,我们待会再调整一下。 好,应该是刚才改到哪个位置,把这个位置给调整了。好,这个坐标呢,对应调整一下, 整成适合你作品的这个坐标就可以了。这时候呢,当我们的我默认我们这个说明是不显示的, 当鼠标移动上来会显示这个装备是什么意思,然后挪开他就会又消失掉。 这个到这里为止呢,我们第四部分的教程就做完了,我们实现了在空的商店里面添加上手枪的第一个装备, 那至于这个装备怎么样能够生效,让我们的英雄的确射击速度变快,并且把金币花掉呢?这个呢,我们在下一集里面进行实现。 如果大家在做的过程中遇到了什么问题,欢迎在评论区里面留言,如果你喜欢我的教程,请点赞转发,谢谢大家。

在这个教程中,我将跟大家一起重新开始做一个僵尸射击的游戏。在这一集中,我们将首先实现基本功能,包括玩家的移动, 子弹的射击,以及检测僵尸是否被击中等基本功能。打开 surprise 软件之后,我们首先把自带的默认小猫角色删除,然后绘制一个新的英雄角色。 我们首先选择圆圈,按住 shift 可以画一个圆,放大一下, 可以调整一下它的大小和位置,放到中心点的位置, 填充的颜色我们选成白色,然后选择直线,添加上他的。 然后呢,重新选择矩形,去画一下他的武器。好,这个地方的轮廓可以设定成零。 填充颜色选择成灰色,跟我们的手臂颜色有所区分,可以调节一下他的位置。好,大小。 好,这样我们英雄玩家的角色就绘制完成了。现在背景呢,也是白色,跟玩家有所重叠,我们把背景改成浅灰色,营造一些灰暗的氛围, 拖动转化成为图喷壶。好,接下来呢,我们通过编程让角色能够行动起来, 当绿旗背。点击,判断一下有没有按下上下左右键。 首先是如果按下左一键,我们让我们的英雄左转五度,默认十五度,太大了,我们改成五度。如果按下右一键, 右转五度, 如果按下上一键,让他前进十步,十步呢,也太快了,我们改成五步。好,如果按下下一键,我们让他后退五步。 这个判断过程需要放在重复执行里面,否则他只会判断一次,并不能一直判断。好。 我们点击绿棋测验一下,左右前进后退没有问题。好,保存一下。 好,接下来呢,我们要让我们的英雄角色具有发射子弹的功能,我们要先绘制一个子弹 好,在造型里面,这个子弹呢,我们绘制简单一点,用一个黄色的小方块来代替,当然你也可以选择自己喜欢的颜色, 我们选择黄色的子弹 好,判断一下大小是否合适,有点大放小一点 好,差不多好。有了 子弹之后,他都有什么样的功能呢?只有一个子弹,我们要连续发射的话,就需要用到克隆的功能, 当我按下空格键之后,我需要克隆几发子弹,所以呢,我们要有一个判断空格是否按下的功能, 好,依然是重复执行这个判断, 如果按下空格键,我就要克隆一下子弹 好,按下空格我们看看 好,子弹已经被克隆出来了,那这个子弹被克隆出来他应该有 什么样功能呢?首先他应该立即移动到我们的武器这里来,好,我们把这部分功能加上,当利器被点击的时候,默认子弹是隐藏的, 当克隆出来这个子弹之后,他应该立马显示出来, 显示出来之后呢,要移动到我们的武器这个位置,运动一道 角色一就是我们的英雄武器。好,这样我们能看到他有两个小小的问题。第一个他虽然移到了角色一这里,但是呢是在左边这个位置,并没有在枪杆这里。另外一个呢,是他这个方向是水平的, 并没有像这个角色翼一样斜向上,所以我们要通过一个面向方向的功能,首先把它的方向调节一下, 在侦测分类里面有一个舞台的背景编号,我们把它选择成角色一的方向, 这个数字就代表着我们的英雄角色所朝向的方向,把它放到面向方向里面,好,能看到我们的子弹的方向发生了变化。好,那怎么让他重合到这个武器这个部位呢?我们让他往前移动一定的距离, 我们试一下三十 有点过了,来个二十八, 二十九, 好,这个位置正好,这个数字呢是需要根据你实际的位置来。呃,自行调节的。好,我们保存一下, 当这个子弹出现在武器部位之后呢,接下来他就应该不断的往前移动,直到打中僵尸或者碰到舞台边缘,我们用一个重复执行指导,让他重复执行往前走,直到碰到舞台的边缘, 下拉选项选择舞台边缘。我们试一下。好,现在子弹已经可以发射了,但是呢有两个问题,第一个是按一下空格出来好多子弹,同时这个子弹到舞台边缘之后没有立即消失, 我们要添加一个删除此刻龙体。好,这样呢,当到边缘的时候子弹就会消失。 那为什么按下一下空格会出现这么多子弹呢?是这个地方他判断的很快,所以克隆了很多个子弹,我们要在每一次克隆之间加一个等待零点三,这样即使你长时间按照空格,他也不会 出现太多的子弹,我们验证一下。好,他有一个时间间隔。好,到这里我们的英雄角色以及发射子弹的功能就做完了,保存一下, 接下来我们来做僵尸。首先呢,我们也可以在这里绘制一个你想象中的僵尸的角色,我们也可以呢,像这个英雄角色一样,用一个简单的 简体化来代替,我们复制一下, 用箭头把他的武器给去掉,然后呢把他的胳膊呢和颜色稍微调整一下,跟我们的英雄角色有所区分,我可以把它变短一点,然后呢变宽一点, 好,当然这个这个环节呢,是需要你自己来设计的,你可以模仿我的,也可以自己设计自己的僵尸角色,这个颜色呢,我们给他改成绿色, 好,深绿色好,这是 我们的僵尸。好,那这个僵尸应该有什么样的功能呢?我们设设计的功能是僵尸呢,要从舞台的右边缘不断的出现,然后朝着我们的英雄角色进行攻击, 那这个呢,只有一个僵尸造型,我们就需要用克隆的功能,让他不断的产生, 把原来的模块先删掉,我们让他每隔一点五秒 克隆一下自己, 好能看到已经有好几个僵尸出现了。一开始的时候呢,让这些僵尸隐藏,当他被克隆出来之后 再显示出来。好,那他显示出来应该在什么位置呢? 可能一下子出现在舞台的中间,这样的话英雄角色很难判断,游戏呢就太难太难太难体验了,体验感比较差,所以我们让这些僵尸呢,一开始出现在舞台的右边缘,然后慢慢的朝着英雄的方向移动, 我们加一个移动的模块,让他出现在最右边,最右边通过 x 坐标来判断, 让他移动到两百五,那他上下位置呢?我们通过一个随机数,让他随机出现在右边的上下位置, 上下位置是一百八到负一百八,为了防止在最边缘出现,我们用负一七零到正一七零。好,我们试验一下, 一个两个,三个好出现的位置是不一样的,那这些僵尸克隆体出来之后,他就应该朝着英雄角色移动了,所以我们要用一个面向 我们的角色一,然后呢重复移动,重复执行面向角色一,每次移动一步, 好,我们穿,随着我们的移动,这些僵尸呢也会改变方向,不断朝着你进行移动。 好,好,那接下来呢,我们就需要去做一下攻击的功能,当我们的子弹击中 这些僵尸之后呢,僵尸应该消失掉,所以这里面加一个判断,如果在行进的过程中碰到了子弹, 角色二就应该删除自己这个克隆体。好,再测试一下, 好,能看到。我们的子弹打中僵尸之后呢,的确消失了,但是呢也有两个小问题,第一个呢,是我们的子弹打中了僵尸之后呢,子弹并没有消失,而是继续往前行进了,这样呢不符合常识。我们把子弹呢增强一下, 当他碰见五条边缘或者打中僵尸之后,子弹都应该消失,所以这个地方我们用 一个或者碰见舞台边缘或者碰到僵尸,都应该删除这个克隆体。 那对于僵尸来说呢,打中一次呢,太脆弱了。我们给这个僵尸角色赋予一个生命值,我们假设他的生命是啊,三,要击中他三次,他才会消失,所以我们要在变量里面建立一个 僵尸生命, 注意这个地方要选择仅适用于当前角色。 这样的话呢,我们每一个克隆出来的僵尸呢,才会有自己的生命变量,我们把它叫私有变量。好,每一个克隆体出来的时候呢,僵尸生命 设定为三,他有三条生命,每一次被子弹打中呢,都要减少一,加一个判断,如果碰见角色二,也就是子弹,他应该增加负一,也就是减少一, 那什么时候这个僵尸应该删掉自己呢?当他的生命值变成零的时候,我们加一个判断,如果他的僵尸生命值小于一了,也就是变成零的时候,他应该删除自己。 好,我们来测试一下, 好,三次,好,三次消失了。好,功能没有问题, 但是呢,我们打中他之后呢,僵尸并没有任何反应,我们不确定是否打中了,所以我们给他加一个特效,让我打中僵尸的时候呢,闪烁一下,证明我的确打中他了。这个功能呢,我们通过外观分类里面的特效功能来实现。 好,默认是颜色特效,我们改成亮度,我们先测试一下,好,把僵尸拿出来,我把亮度特效设定成八十,我们看一看他的变化,好,变得特别的亮,仿佛被手电筒照到一样,如果重新把这个特效设定成零, 他就会恢复原状,我们在这两个设定之间加一个短暂的等待,零点零五。好,我们看看,他就会 闪烁一下,我们把这部分代码放在当他碰到子弹之后, 测试一下。 好,二三,消失了。一二三,一,二三,好,没问题,保存一下。 好,那到这里呢,我们的射击僵尸的基本功能就已经完成了,我们有一个英雄角色,按下上下左右键可以移动,按下空格键可以发射子弹, 子弹呢,击中了僵尸之后呢,僵尸会减少一条命,每一个僵尸呢有三条命,当三条命都完了之后呢,这个僵尸就消失了,然后僵尸呢是每隔一点五秒会出现一个。好,那后面 的功能呢?我们会给僵尸呢增加一个更强大的啊,不同的种类,给我们的武器呢增加一个 加特林机关枪的功能,让这个游戏呢更好玩。这一部分呢我们放到下一集。

测试移动功能啊,这怎么全都动起来了?不要紧,简单调整一下程序就可以了,再次移动,其他的就不会动了,怎么做到的呢? 从这个视频开始,我将跟大家一起编程,从零开始创作象棋。没有编程基础,不知道什么是编程的小伙伴也可以通过视频感受一下什么是图形化编程,欢迎大家一起来编程,体验编程的乐趣,改编后还可以参加编程比赛哦。首先打开我们上一次的作品, 改成 part 二,上一期视频,我们实现了棋子的摆放功能,本期我们来实现点击之后移动的功能, 从冰的移动开始。首先当我点击这个冰之后,是不是要根据冰移动的规则去提示一下我都能够移动到哪些位置去啊?所以我们点击冰之后,需要通知一下提示的角色显示出来。这里呢是两个动作, 第一个呢是我要点击之后广播一个消息,我们在事件里面找到,当角色被点击点击之后呢,为了让他明显一点,我们可以把他的大小给他稍微变大一些,他之前呢是五十五,那我们就把他的大小设定成六十一,开始呢给他设定成五十五, 到了之后呢,我们广播一个消息,通知一下兵路线计算。这个消息是发给谁的呢?应该发给一个提示的角色,这个角色呢,我们来自己绘制一下, 绘制其实呢很简单,画一个圆圈是不是就可以了呀?我们点中这个填充,我们不要轮廓改成红色,明显一点,可以稍微粗一点。画正圆的话,按住 shift, 它就是一个正圆了,我们把它挪到正中间,现在这个大小呢,是不是有点大,可以在这个地方去调节 一下啊,看看多少是合适,稍微有点小,二十五吧,大概呢这个大小,如果你觉得大或小呢,在这里可以调整,通过大小的属性设定呢,也是没问题的, 一定记得调整完之后放到正中间啊。回到我们的代码区域,他是不是应该去接收这个消息了?一开始的时候他肯定是要隐藏起来的,当接收到这个消息的时候呢,他再显示出来这个基本的代码,我们把它拖出来, 当接收到兵路线计算显示出来,显示出来之后,他应该移动到什么位置呢?兵还没有过河的时候,是不是只能往前走, 所以呢他一开始呢应该出现在这个位置,这个位置呢,我们可以通过点击这个冰呢,把它计算出来,首先计算一下冰的位置,他往前挪对应的距离是不是就可以了?我们在这个红色点击的时候呢,就要做一个增强了,这个地方呢,为了把 坐标传递过去,我们需要去创建两个变量,一个变量叫 x 坐标,一个变量叫 y 坐标,把 x 坐标设定成目前所在的 y 坐标,在运动里面 x 坐标放进来, y 坐标放进来, 这时候呢,我在这个角色里面就可以看得到这两个变亮的,也就知道我现在点的是哪一个位置的冰了,对不对?我们可以先把这个提示的移动过去, x 坐标, y 坐标来看一看, 当我点击中间这个冰的时候,哎,能看到这个红色的是不是已经出现在了冰这个地方啊,那我们在他过河之前是不是让他移动到这个地方就可以了?当过河之后他是不是可以朝三个方向移动?那个时候呢,我们就需要把一个变成三个,很自然就能想到应该再次用克隆的功能,对不对?所以这个地方 我们需要有一个判断,判断,判断他是不是过河了,我们找到控制里面的如果,那么否则在运算里面找到小雨过河的标志呢?是中间的那个歪坐标是零对不对?所以我们只需要判断一下他的歪坐标是不是小于零就可以了,小于零代表着他还没有过河,就只能往前走, 只能往前走,那是不是在目前坐标的基础之上,往上走这个宽度就可以了,宽度呢,上次我们总结了他是三十六,所以这个地方呢,我们用一个加号就可以了,歪坐标在原来基础之上增加三十六放进去, 放到这之后呢,因为后面的还要用克隆体,所以这整个地方呢,我们其实直接都用克隆体就可以了,让本体呢都是隐藏的,克隆一下自己,当克隆体启动的时候,让它显示出来。在这个地方啊,来试一下 点击哦,是不是出现在这个地方了?好,没问题,如果过河了的话,假如说在这个地方点击他是不是应该三个方向都出现这个提示啊?这是冰的移动规则啊,不熟悉的同学可以去陌陌 ai 里面问一问象棋的规则是什么? 接下来我们来实现过河之后克隆三个的功能,首先这一个呢,我们可以把它复制一下,当他过河之后呢,他的正前方还是出现一个提示,同时左右呢也应该出现,左右的话,他的 y 坐标就是不变了,他的 x 坐标对应着右边的话是加上这个宽度,我们上节课整理的是三十七, 左边的话是负三十七,这段单码理解一下啊,他这三个啊,我们运行一下大家就能看出来了。我现在点一下他是不是前面 y 坐标加三十六,出现一个,左右两边 y 坐标不变, x 坐标增加三十 七,这里出现了一个克隆体, x 坐标减少三十七,这个地方出现了一个克隆体,这样的话,我们是不是就由一个兵给出了三个位置方向的提示啊?接下来呢,我们给这个提示呢,一个动效, 否则的话只有一个静态的圆圈呢,不是很明显,我们让他有一个变大变小,同时呢像我们之前摆放棋子一样,以变亮的动效让他看着更明显一些。首先我们来一个变大变小,当他刚开始显示出来的时候呢,我们把它设为默认的大小,大小呢是二十五, 给他做一个先变大再变小的效果,先变大呢,给他来一个重复执行十次,每次增加二吧,每次增加二,再来一个重复执行十次,每次减少二,这样的话呢,他最终还是恢复到一开始的二十五的大小了,让整个过程呢去重复执行,我们来看看这个 效果。好,当我点击冰的时候,哎,出现了稍微有点大对不对?我们可以调节一下,让他一开始变成二十, 这个大小呢还可以,如果觉得还大的话,你可以根据自己画的提示角色的大小呢,来确定这个地方的数字应该填多少, 没问题,再加上上一节课类似于摆放棋子时候的变亮的效果,那个我们用的是亮度特效,对吧?我们可以把这张代码复制一下,让他们两个区分开,一个呢是控制大小,一个呢是控制亮度。 一开始把亮度特效设定为零,重复执行十次,每次增加二,显得有点少,我们让他增加大一点吧,增加三,减少三,来看一看。哦,这个增加的有点大,我们来看看是怎么回事,这不应该是大小,应该是 亮度特效啊,把它删掉,将亮度增加三,将亮度减少三。哦,这个呢,好像不是很明显,我们让他再大一点,直接来一个三十吧,将近一百了,一百是不是纯白色了?来看一看。 好,这次这个效果还可以,但是呢,他们的频率是不同步的,看到没有,我们可以再调节一下,调节成你满意的这个效果啊,比如说二十这个地方,来一个四二十五四,看一看这次的效果怎么样, 这次效果就还可以了,对吧?大家根据自己的喜好呢,去调节闪烁的这个效果啊,起到提示的作用就可以了。接下来我们是不是应该点击一下提示的地方,让这个兵挪过去啊?现在 点了是还不行的,因为我们还没有做点击的特效。这个事件我们找一个当角色被点击在事件里面, 当角色被点击被点击之后呢,是不是应该记录一下这个边应该挪到哪个目标位置去?跟刚才类似,我们再创建一个变量,叫目标 x 坐标,目标 y 坐标, 将他们设定成目前我的这个提示所在的 x 坐标的位置,以及 y 坐标所在的位置。广播一个消息通知一下妻子可以移动了。广播,移动 同时点击之后,这个红色的是不是应该被删除了?我们让他删除 clonet 这个棋子,接收到移动的消息之后,他是不是应该移到这个位置去?我们来一个滑行吧,在零点一秒内让他移动到目标 思和目标 y 的坐标里面去,来测试一下。一个提示点哦,现在点了之后是不是没有反应啊?这个地方呢,有一个细节,因为我们一开始绘制这个角色的时候, 里面是不是空心的呀?选择空心的话,你在舞台上去点击他的时候,他是没有反应的。这个地方呢,我们可以这样来做,既然想让他是空心的,但是又想去点击他,我们可以做一个假的空心。 在这个填充里面呢,我们不去勾选这个,完全没有空心,我们可以呢,还是把它选成红色,但是这个不透明度,我选择一, 这样的话呢,有一个淡淡的红色几乎是看不到的,但是呢,他又不是透明的。这时候呢,你就可以点击了,我们来实验一下。点击哦,是不是移动了,但是一瞬间所有 六的棋子是不是都移动过来的?这显然不是我们所需要的,而且呢,移动的也太快了,给改成零点八, 当然这个移动的速度呢,后面我们会根据他的距离来调整啊,这个地方暂时都用零点八或者零点五自己来决定就可以了。那为什么他们都移动过去了呢?因为所有的克隆体都会接收到这个消息, 移动到这个目标的位置去。我们怎么区分哪一个是应该接收到消息去移动呢?我们可以像之前在植物大战僵尸里面一样,建立一个私有的变量来解决这个问题,也可以用一个比较简单的方法, 因为只要移动的这个棋子是不是大小变化了呀?他变成六十了,而其他的克隆体都是保持默认的五十,大小是五十五,所以这个地方我们可以通过大小来判定一下,我们来一个如果,那么,否则吧,如果他的大小等于六十, 我们才让他移动,如果不是的话,我们这个地方因为测试吗?我们来做一个趣味的动作,让他说一个我不动,一秒钟吧,来测验一下, 点击之后走你,哎,其他的时候我不动,并往前走了,再点,现在还没过河,还是只能往前走,只有一个再点击好。过了河之后,是不是这三个地方我都可以走了呀?再点, 哎,又出现了一个小问题,这两个克隆体是不是没有删掉?我们需要在这个角色里面也加上一个,当接收到移动这个消息的时候,所有的提示的角色呢?克隆体呢?都把自己删掉。最后我们来测试一下点击,然后呢让他快速过河, 过河往这边移动。哎,剩下的两个是不是就已经被删除了这个坐标呢?我们可以把它隐藏起来, 这个我不动,如果你不需要的话呢,也可以把它删掉,用一个更简单的如果,那么就可以了。好的,本集的视频就到这里了,在这一集我们实现了冰的移动的功能,下一集我们来实现其他棋子的移动, 话说你知道其他棋子的移动规则吗?欢迎评论区里留言,记得点赞收藏, goodbye, 下期见!

本期我们来实现种植豌豆射手的功能啊,这没关系写程序吗? bug 是常有的事,稍等,我们一起来编程解决它。如果你是第一次看这个系列,请留意。接下来我将跟大家一起编程,从零开始做一个植物大战僵尸游戏。没有编程基础, 知道什么是编程的小伙伴也可以通过视频感受一下什么是图形化编程。欢迎大家一起来编程,体验编程的乐趣,改编后还可以参加编程比赛哦。编程逻辑较为复杂,也设计一定的数学和物理知识,建议点赞收藏,反复观看。 上一集中我们实现了向日葵产生阳光的功能,并且修复了几个 bug。 本集中我们会完成三个功能点,第一,向日葵产生阳光的时候会有动画的效果。第二个种植豌豆射手的功能。第三,种植 完植物之后会有冷却的效果。话不多说,开始编程。首先打开我们上一次的作品,不知道怎么获取素材的伙伴们请从主页查看置顶的视频。接下来我们首先实现第一个功能,向日葵产生阳光时有动画的效果。 我们到向日葵的代码里面没有用的,我们给他删掉。我们之前产生向日葵的代码呢?在这个地方默认来回摆动的代码呢?在这个地方,那我们产生完阳光之后,是不是也需要让他有一个造型的切换呀?我们在这个地方是有的 好秀的,开头秀的一,秀的二,秀的三,他是一个不断产生阳光的这样一个动画的效果,我们呢拿出来一个重复执行,一开始的时候呢,像 这个一样,可以直接把这个复制出来,一开始的时候呢,他是三 flower shooter, 一就是刚刚准备开始发色,然后呢你数一下,我们总共有九个射击的准备工作,我们让他重复执行八次到第九个,然后到第九个的时候我才去克隆阳光, 把这个克隆阳光的放在这个地方,产生了阳光之后呢,还有两个收尾的造型 可以数一数,在收尾阶段也有几个造型产生完了之后逐步的恢复,那这个呢,总共是六个, 我们可以把本体显示出来实验一下,点一下,哎,是不是有这样一个动画的效果了?接下来我们把代码呢拼在一起 来试验一下,种下向日葵六秒钟之后产生阳光 动画,哎,能看到他确实有了,但是跟左右的那个呢是有冲突的,一瞬间呢就被盖住了,所以我们需要把这两个代码呢做一个结合, 如果我们把这个代码直接拖到他下面,那这样是不可以的,为什么呢?因为他摆动了一轮之后,是不是等六秒钟才会去产生阳光啊?这个过程中他就不会左右摆动了,所以这个是不行的,我们把等待六秒呢给他去掉,换成 我们这个地方的不断摆动的时间,那他摆动一轮呢,就是十一乘以零点零五,大概是这整个过程需要重复执行十次左右才是五点五秒,对 不对?那因为刚开始测验的时候呢,我们希望他快一点产生阳光,我们让他稍微短一点,如果你需要等待更长时间的话,修改这个地方就可以了。等到他换完了之后,我们紧跟着在重复直行三次,后面加上产生向日葵的动作,我来看一看,测验一下, 待会这个变量呢,可以隐藏起来产生,哎,没问题,只不过位置不太对,对吧? 哎,没问题,我们来调整一下他的位置,我们到阳光代码里面,那这个阳光代码里面正好之前呢,有同学提到一个 bug, 当这个系统产生的阳光落下来的时候呢,点击是没有没有效果的,这个怎么办呢?因为这里有一个等待, 我们把这个等待去掉就可以了,他在这个重复执行的过程中就可以搜集了。好,那对于向日葵产 的阳光,我们可以在这个地方呢调节一下它的位置,等它产生之后,我们让它有一个往上再下来的效果,我们来试验一下,我们把歪坐标给它修改一下。 好,一开始的时候呢,他稍微有点偏下,我们让他往上挪一挪,把歪坐标给他增加三十,然后呢他需要往上有一个慢慢上升的过程,我们通过重复执行 十次,每次增加二来实现这个功能。然后呢到上面之后他还得掉下来,掉下来的这个过程应该比较远,我们让他重复执行三十次,每次增加负二。我们来试一下这个效果啊, 首先停掉,把整体露出来,这个效果呢,我们加到克隆体里面看一看怎么样?这个变量的 隐藏起来开始三秒钟左右产生阳光,哎,没问题,再来一个, 没问题,稍微弹起来的有点高,我们来调整一下,这个地方呢,我们让他小一点,同时呢我们让他丧生的这个过程呢,变成一个非线性的啊,有重力效果的这么一个丧生和下降。之前我们在跑酷的地方呢,也做过,感兴趣的同学可以再去看一下。原原理, 我们建一个私有变量叫阳光速度,因为不同的向日葵会种出来不同的阳光,所以我们要用成私有变量,一开始的时候把这个阳光设定成五,每一次把歪坐标增加之后,我们都把这 阳光速度给他减小一下,减小一,然后歪坐标增加多少呢?就增加这个阳光速度,这样的话这个阳光速度从五变成四变成三,他每次歪坐标增加的是不是越来越少,而且后面呢会变成负数,他就会又在往下降, 我们把它拼到这个地方来看一看效果, 产生阳光, 哎,还是有点高。那这个地方呢,我们来调节一下,我们把这个地方改成零,试验一下,当我点绿旗的时候,种下向日葵,它产生阳光, 我们发现呢,他在这个地方产生,哦,这个地方突然变成五了,有点 bug 啊,我们再测验一下,我们换一个位置, 我们等到他三秒钟之后,哦,产生的阳光的位置也不太对,我们来检查,检查是为什么?首先呢,我们把系统产生的阳光给它断开, 我们看一看我们的植物的 s 坐标, y 坐标,这里大家看一下,里面存了很多之前存储的位置,这个是不对的,我们应该给他加一个清除,我们给他加到这个地方 复制一下,一开始的时候把植物的 x 坐标,植物的 y 坐标全部给它删除,这样的话你每一次往里面添加的这个地方添加的才是新的。好,那这些呢?我们给它删除掉。来,我们再测验一下, 一点击滤器里面是空的,我中一个向日葵好有位子, 哎,这个地方是不是产生了?那现在呢?我们再去调节这个外坐标,应该是没问题了,我们一开始的话让他增加三十五,从这个脑袋上产生,哎,没问题,上升的高度有点低,我们测验一下,时期应该差不多, 但是下降太多了,应该是这个阳光速度没有设置。哦,这个地方写错了,应该是阳光速度设定成五,我们再测验一下阳光产生,哎,弹出来有一个蹦出来的效果,那这样的话就比较合适了。 接下来呢,我们来恢复一下系统产生阳光的功能,我们来做一下豌豆射手的种植,这个可以隐藏起来了。那对于豌豆射手跟 向日葵是不是类似啊?前面是向日葵不断的摇晃,然后产生阳光,那对于豌豆射手来说,一开始是不是不断的摇晃,然后产生子弹呀?是类似的,我们可以把这段代码呢复制一下。 好,我们到下面去比较一下,这一段是不断去摇晃对不对?那它间隔多少秒去产生一个子弹呢?就取决于这个地方,你重复执行几次了,我们可以把它拿下来,把这个呢重复执行几次给他套进去,我们也让他晃三次两次吧,去产生一个子弹, 那这些代码呢?可以把它删除了,整个过程呢是要重复执行的。那对于子弹来说呢,就不需要去区分向日葵还是系统产生了,都是豌豆射手产生的。然后呢我们把它的坐标给它存起来, 但是这样存到这个列表里面去,跟向日葵的是不是就没办法区分了?所以呢,我们再建立一个列表,给他起名叫豌豆射手 x 坐标,然后再创建一个豌豆射手 y 坐标, 把这个地方改成豌豆射手 x 坐标,豌豆射手歪坐标,那其实原来的这个植物 x 坐标呢,就可以直接让他叫阳光 x 坐标了,这样更的针对性一些。 夹到这个里面之后呢,我们换成豌豆射手射击的造型,然后重复执行,我们可以数一下,五次之后他就可以发射豌豆射手了,那就克隆一下豌豆子弹,然后呢两次 这个发射之后的动作,那同样的这个坐标呢,要像一开始的向日葵一样做一个删除,这是豌豆射手还是坐标?豌豆射手玩坐标向日葵吧。 好的,那对于豌豆子弹来说,他都有什么功能呢?一开始肯定首先是要隐藏起来的,本体隐藏,然后克隆体显示,并且给他移到最前面来 看一看。他的造型有两个,一个是普通造型,一个是爆炸造型。我们一开始换成普通造型,然后呢他应该移到什么位置呢?跟我们的阳光一样,一开始要移到这个列表里面的这个位置去,我们加一个移到豌豆射手的 x 坐标的第一项, 豌豆射手 x 坐标的第一项,豌豆射手歪坐标的第一项。然后呢,是不是跟之前一样要把它删除啊?删除 x 删除 外,然后呢,一旦他出来之后,是不是应该往前不断的攻击啊?所以呢,我们加一个不断的往右走五吧,重复执行,直到他碰到舞台的边缘。 重复执行,往前行进,直到碰到舞台边缘,然后呢,把自己删除掉,删除。此刻龙底来,我们来测验一下,点击绿奇, 好拿一下。豌豆射手。哎,确实能够产生子弹了,但是这个位置是不是稍微有点偏差?那?像之前调节阳光一样,我们把这个地方 坐标刚才有点偏左,我们给他增加一下,增加十五。歪坐标有点偏下,我们让他往上一点,把歪坐标给他增加五,再来测验一下。动一下, 走你。哎,没问题,走你,没问题。好的,至于攻击到僵尸有什么效果呢?这个功能要等我们捉完僵尸之后再来完善。豌豆射手, 接下来我们来做一个冷却的功能,当种完这个植物之后呢,他的卡片呢要冷却一段时间,所以呢,我们回到植物这个地方, 卡片这个地方每一次种完之后呢,都要让他冷却一会,那种完之后是不是得通知一下你,哪一个植物应该冷却了?那这个地方呢,可以用广播,也可以用跟我们这个宜选 卡片这样的变量控制的方式来做广播的话,他有可能会有一些问题,所以我们沿用我们的变量的这个方法,我们创建一个变量,给他起个名字叫冷却植物类型, 也就是说当你种完植物之后,我需要知道哪一个卡片是需要被冷却的,我们往这里加一个,种的是哪一个植物,是不是就应该冷却哪个植物啊?所以呢,我们把种植植物给它放进去。 好,虽然他们俩的内容有时候相同,但是呢,一旦我点了新的卡片之后,他们两个是不一样的,这个细节要思考一下啊。那一开始的时候呢,我们把这个变量给他做一个初始化,一开始要冷却的植物呢,是空的, 不需要冷却,删除里面的内容。然后对于每一个克隆体来说,我们都去判断一下,当克隆体启动的时候 后呢,不断的去判断重复执行。如果这个克隆体的造型编号等于我们要冷却的职务的话,找出来造型名称等于要冷却的这个职务类型, 哎,那他是不是就应该变成一个灰的状态,再慢慢恢复啊?那这个呢,我们通过亮度来做,首先把原来不管有什么特效都清除一下,然后呢把它的亮度 设定成负二十,跟我们上面这个一样,他就是灰的一个状态,然后呢让他慢慢的恢复,我们加一个重复执行二十次, 每一次把亮度呢给他增加一下,这样二十次之后是不是他就恢复成正常了呢? 亮度特效我们可以找到卡片本体来试验一下。好,这个地方我点一下,哎,是不是重黑慢慢就变亮了?当然呢,他稍微有点快,我们可以加一个,等待零点一秒,零点一秒 再来,哎,慢慢的就变亮了,对不对?我们把它放进去,然后呢等到这个植物它冷却结束之后,你是不是要把这个冷却植物的类型给它改掉啊?否则它会重复执行这一段动作了, 所以再加上一个,将冷却植物类型给它重新设定成空, 哎,这样的话他只执行一遍这个特效,我们来测验一下,一开始空的不用冷却,点击向日葵还是空的,我往这一放,是 变成向日葵了,但是仔细观察,他是不是散了一下,实现那个逐步变亮的效果呀?我们来看一看代码, 哦,是这个原因,因为这个地方呢,他一直在重复的去判断啊,一旦阳光够的话,他立马呢就把它设定成零了。那这个地方呢,我们要给他做一个限制, 我们往这个地方加一个变量吧,对于每一个冷却中的卡片来说呢,他都有一个自己的变量来控制他到底冷却到什么程度了?我们给他起的名叫冷却值。 哎,一开始的时候,我们把冷却值设定成零,也就是没有冷却,然后只有在没有冷却的情况下才去进行这个判断,如果 冷却值等于零,才进行这个判断。一旦他开始冷却,比如在这个地方,我判断出来他是要冷却的这个职务了,我就把他的变量给他设定一个 数字,二十,哎,那这个地方条件是不是就不成立了,他就不会立马把它设定成零了,只有我们这个地方在起效果,然后在冷却的过程中,我把这个冷却值不断的给他减少 冷却值,每一次增加负一。哎,是不是最终他又变成零了,等到他冷却效果结束之后呢,又受这一段代码的控制了,我们来测验一下效果。陈平,把这个变量隐藏一下, 哦,变暗了,然后慢慢的变亮,没问题,豌豆射手变暗了,慢慢的变亮没问题,再试一下向日葵没问题,但是现在呢,你再点一下, 是不是还是能够去种植啊?所以这个地方虽然变暗了,但是并没有实现这个控制功能,所以我们需要再点击这个地方,再优化一下,我们在这个条件的基础之上呢,再给他加一个,并且不仅阳光要满足这个条件,他还得不是冷却状态才可以, 我们加一个冷却值等于零,只有这个情况下他才能够去点击,那也就是说他有两种情况不能去点击,点击了没有反应,我们把这两个呢也给他做一个提示吧,把这个改成如果,那么否则这段代码跟之前是一样, 如果他不成功的话,我们给他做一个提示,两种情况吧。第一种情况是如果他的阳光是小于他的,我们就说一个阳光不足,如果我们发现他的冷却值是大于零的,或者不等于零的也可以 大于零的,我们就让他说一个冷却中。好,我们来测验一下, 点击阳光种下来,再点冷血中啊,没问题,冷血结束之后可以点了冷血中,这个多点几次冷血中 还在冷却中。 好,这时候 你再点这个阳光不足是不?两种情况我们就都测验到了,那我们这一期的视频到这里就结束了,如果你有什么问题或者好的建议的话,欢迎评论区留言,记得点赞收藏加关注,我们下期再见! goodbye!

能实现刘谦春晚的魔术吗?你是男生女生?南方人?北方人。你只有几个字,在这一刻,我们都会见证奇迹!第一步,随机四张牌。第二步,对折并撕开。第三步,名字几个字,侯老师三个字。 第四步,拿起三张插到中间哪个位置呢?填个四。第五步,藏起第一张。 第六步,选择南方人还是北方人。第七步,选择男生或女生。第八步,见证奇迹的时刻, 每念一个字,拿一张牌放到最后面。第九步,好运留,烦恼丢,念好运留下来,拿一张牌放到最后面,念,烦恼丢出去,拿一张牌扔掉,重复,直到剩下最后一张牌。最后,恭喜你对三了!接下来展示一下原码,强烈建议有时间的小 伙伴自己编程做一遍,相信会很有收获。相比背后的数学原理和程序逻辑,更让侯老师佩服的是刘谦老师的创造力,能够将简单的数学跟魔术创意结合的如此巧妙,期待小伙伴们能够迸发出更多的创意。如果需要作品中素材的话,可以从这里下载。最后祝各位小伙伴春节快乐! goodbye, 我们下期见!

你能编程做出这样的打字机效果吗?在这个视频中,我将跟大家一起编程,从零开始做一个大地图,介绍家乡的作品。这个作品特别适合参加比赛,因为家乡不同,角度不同, 每个人都可以做出独特的创意作品。另外还可以参与点亮地图的活动,你的家乡等你点亮。没有编程基础,不知道什么是编程的小伙伴,也可以通过视频感受一下什么是图形化编程,欢迎大家一起来编程,体验编程的乐趣。话不多说,开始编程。 首先打开上一次的 scratch 作品,上一集我们实现了基本的大地图的功能,按下上下左右键,可以让小猫在地图上移动。这一次呢,我们首先来做一个小小的增强,因为除了上下左右,我们也经常会使用 wasd 这四个按键去实现移动,对不对?我们把这个 修改一下,左键我们可以再加一个 a, 这样的话你按下左键或者 a 都可以往左走,右键改成 d, 上 w 下 s。 有了这个功能之后,我们再测验一下,哎,你会发现按下 wsd, 小猫呢确实在改变造型,但是地图并没有移动,为什么呢? 上一次我们讲过,我们实现这个大地图移动呢,其实是地图的相对移动,所以呢是需要让背景呢去进行移动的,我们同样的把这个地方改一下, 对应关系是一样的。然后我们重新测验一下,往左往右,往上往下都是没有问题的,这是 wasd 四个按键。那接下来呢,我们来实现开场白的功能,我们给小猫加上一个开场白,我们这里的这个导 由角色呢就让小猫来承担了,如果你想用其他的造型也是可以的,之前我们在跑酷游戏里面画过这样的一个角色,也挺适合的, 你可以根据自己的喜好去挑选一个导游角色。这个呢是需要自己绘制的,如果你能够绘制出来更好,如果你实在不会绘制的话,会员可以找我来去要一下这个角色,直接上传就可以 回到我们的代码里面来,我们首先来实现基本的开场白,当绿鞋被点击的时候,我们让他说一句话,外观里面说 让他说一个你好,欢迎来到安阳市。第一句话就完了,等待着按下鼠标再让他去出现下一句话,这个是不是很多游戏里面都是这种机制啊,需要你按下鼠标才会往前推进剧情,再复制一下这个地方呢我们改成, 接下来就让我们一起探索一下这个城市吧。最后一句话复制一下,按上下左右键进行移动出发吧这是最后给了他一个提示,我们可以来试验一下全屏点绿旗,首先第一句话, 再点一下第二句话,再点一下第三句话,这样的话我们最基本的开场白就做完了,但是呢并没有文字一个一个出现的效果,也就是我们说的打字机的效果, 要实现这个功能的话还是比较麻烦的。接下来呢我们来增强一下这段代码呢,我们先把它放在一边,因为待会里面的文字我们还要使用,不要把它直接删掉。为了实现打字机的功能,我们去创建三个变量,先把自带的删掉,第一个变量叫完整内容,确定 再创建一个变量,叫当前内容再创建一个变量呢?起个代号 i 就可以了,这是存储一个不断变化的数字的。当滤芯被点击的时候,我把完整内容设定为第一句话, ctrl c、 ctrl v 复制过来,当前内容一开始是空的, 小写的爱,一开始是一,这样的话我们就做完了初始化,第一句内容存起来了,想要说的内容刚开始是空的,这个小爱呢?一开始是一, 那接下来我们怎么样文字一个一个出现呢?要用到一个运算里面的模块,叫什么的第几个字符?如果苹果第一个字符是不是平啊?那我们把完整内容放进去, 完整内容的第一个字符是什么呢?是你对不对?那他的第二个字符就是好啊,我们只需要呢后面的数字不断的发生 变化,是不是就能够取到每一个文字了?刚开始 i 四一取到你,我们把这个 i 增加一,是不是变成二了?这时候取掉的就是好了,我们把每一次取到的文字呢,都给它连接在一起,放到当前内容这个变量里面去,就能够把它都存储起来了。这个地方我们增加一下, 把当前内容设为一个新的值,设为新的内容呢?是在他原来的基础之上新增了一个字,所以要用到连接,连接的意思就是说把这两个和这两个连在一起,输出出来,苹果、香蕉,对吧?我们应该把谁和谁连在一起呢?把当前内容现在的值,比如说现在是空, 把空和第一个字连在一起,这个是不是第一个字啊?把它连在一起,把它重新存起来,这时候当前内容是不是就变成你了呢?看这里当前内容是不是变成你了? 我们把爱增加一,这时候爱变成二了,那这个地方取出来是不是好啊?这个地方呢?是你把他们俩连在一起,是不是?你好再把它存起来,这时候当前内容是不是就增加了一个字啊?你好, 你再把爱增加一,是不是就你好逗号啊?这样的话就依次实现了文字一个一个出现的效果,我们把它连在一起,当然这整个过程呢,我们不能一直用手点,所以我们需要用一个重复执行,那重复执行几次呢?他是不是里面有几个文字,我就重复执行几次啊?在里面数一数 十一对不对?可以直接填十一,我也可以呢,用一个简单的方法,这个地方有一个什么什么的字符数,默认填的是苹果,它有两个字符,把变量放进去,完整内容点一下,哎,十一个字符放进去,这样的话,当你改变里面内容的时候,这个 重复执行的次数呢,就对应的发生了改变。那现在呢?我们来测验一下,这时候你点绿旗,你会发现一瞬间当前内容呢就变成完整的内容了,是因为这中间我们没有加等待,我们可以加上一个等待,零点二秒才改变这个癌,看这里,这个你好,欢迎来到安阳市。是不是一个一个出现的, 那这个变量的已经发生了变化,我们让小猫对应的把这句话说出来就可以了,我们找到说话,说出当前内容,每一个内容之间是间隔了零点二秒,来测验一下,走,你 第一句话是不是已经实现了逐字出现的效果了?接下来呢我们来实现第二句话,第二句话很简单,我把这一部分复制一下,哎,把这个等待按下鼠标,别忘了啊,放在这个地方把它复制一下是不是就可以了呢?我们来看一看 点击率齐,第一句话结束之后,按一下鼠标,第二句话又是一个字一个字的出现,这个功能呢也就实现了,但是这样看起来代码是不是比较臃肿啊?重复的太多了,所以我们呢不用这种方法。我们把这段代码呢包装成一个新的积木, 这个新的积木呢给他起个名字就叫竹字说话,新的积木呢需要传进去一个内容,他就会把这个内容呢 竹子说出来,这样的话就有这个积木了,对不对?这个积木它里面有什么内容呢?我们把刚才这段代码放进去这个地方呢,要做一个增强了,这个内容里面是什么东西呢?现在还不知道。我们把这个复制一下放到这里, 这样的话,当我点绿旗的时候,他会运行新的这个积木,然后把这个呢传给积木,到这一行的时候呢,他 一只手会去找这个积木在哪,哎,发现这个新的积木在这个地方,他就会去运行下面的代码,这个里面的内容呢就会出现。 你好,欢迎来到安阳市瓦三调,那这个内容呢,我们把它放到这里,他就会放到完整内容这个变量里面去。当我换了一个内容,换成第二句话的时候, 他找到这个积木的时候呢,第二句话就会存到内容里面,内容呢进一步存到完整内容里面,这样的话呢,就实现了不同内容竹字出现的效果,我们把它放一下,紧跟着我们把第三句话也改了,看他能不能正常进行, 来看看效果,点击率齐。你好,欢迎来到安阳市,点鼠标,接下来就让我们一起探索一下吧。点鼠标按上下左右键进行移动,点鼠 目标之后,这个是不是应该消失啊?我们把这个呢最后给他修正一下,最后加一个说出空就可以了,这样的话,哎,他这个地方就不再说话了,现在这个代码看着比刚才已经简洁了很多,把这个删掉,但是呢,如果你的开场白,比如说有十句话的话, 这个地方是不是显得还是有点重复啊,还可以进一步优化。我们在这个地方新建一个列表,专门用来纯属我们的开场白。 当绿棋被点击的时候呢,我先把这个开场白初次化一下,原来不管你有什么东西,全部删除,然后把我要的开场白添加进去, 这样的话我的开场白是不是就已经有了?我依次把这个列表里面的内容取出来,是不是就可以了?注意看开场白里面有三句话,我先把第一句话取出来,再把第二句话取出来,再把第三句话取出来就 没问题了。为了实现这个效果呢,我们再创建一个变量 g, 这个 g 呢,一开始呢,跟这个 i 一样,设定成一代表我初始要取第一句话,怎么取出来每一句话呢?在这个地方有开场白的第几项,那我是第真项,我们先点一下初始化一下, 第一项啊,我想取第二句话的时候呢,把这个 j 增加一就可以了,它就变成二了,对吧?取出来这个内容是需要把它缩出来的,所以我们要用一个逐字说话,把它缩出来,缩完之后 等待着我按下鼠标啊,再把它增加一去,取下一句话,整个这个过程重复执行几次呢?有几句话就应该重复执行几次,所以我到变料里面找到这个模块叫开场白的项目数,也就是他有几句话的意思,这样的话有几句话他就重复执行几次,每一次呢, 都把这一句话的文字一个一个显示出来,当然最后不要忘了也要说一个空,这个就可以删掉了,这样来看的话,我们最终的代码是不是就比较简洁了?首先一下, 好,你好,欢迎来到安阳市,按一下,接下来就让我们一起探索一下这个城市吧。 再点一下,按上下左右键进行移动出发吧,再点一下,消失了,完整的功能就做完了。当然了,有些同学会觉得说话的速度比较慢,一方面呢,你可以通过去调节秒速来实现加快,另外一方面我们也可以做一个 小小的后门,比如说按下空格键就让它变快一点。每一句话呢,刚开始是默认的速度,按下空格键有一个加速的效果,要实现这个效果,我们加一个速度,首先我们把速度这个 电量在初始化的时候给它设定成零点二,我们默认就是零点二,对不对?等待多少秒呢?不等待零点二了,等待速度秒,那其实也是等待零点二秒,对吧?测验一下的话跟之前是一样的,那我们现在就可以按下空格键去改变这个速度了, 当我按下空格键的时候,我把速度设定成零点一,比原来快了一倍,对不对?好,我们试一下把这些呢先隐藏一下,这样看的更清楚,只保留速度, 当绿皮被点击,他是零点二,是这样一个速度按一下空格,是不是说的就非常快了?但是呢,我们希望效果是我按下空格的时候他比较快,松开的时候呢,他恢复成零点二,这样的话更灵活一些。这个地方我们就可以再加一个代码, 按下空格不成立,一旦他松开,我就把速度呢重新恢复成零点二,再来测验一下,默认零 点二,按下变成零点一,再松开变成零点二,加快变慢,这样的话我们这个功能呢就实现了,我们把这个变量隐藏起来,记得保存一下代码。 如果你顺利完成这一部分的话,欢迎投稿到点亮地图这个活动,让更多人看到你通过学到的编程知识做出来的,有创意的介绍自己家乡的作品,今天就到这里了,记得点赞收藏,拜拜,下期见。