" />

您的位置是:少儿编程网>Scratch编程教程Scratch编程教程

跟我学Scratch第九十讲 :3D贪吃蛇-教程

少儿编程网2020-11-19 20:34:33Scratch编程教程 人已围观 来源:少儿编程 -用户投稿

简介CC哥做了两讲3D的游戏,有学友就提了问题:“你这看着不像3D呀,3D不是应该远的小,近的大吗?" CC哥再强调一遍,目前为止,CC哥讲的都不是真正的3D,而是小游戏的伪3D。真正的3D说句实话,还是挺有难度的,涉及到了透视的原理,矢量的方法,这些理论恐怕初中生甚至高中生也未必能轻易理解。所以CC哥还是要强调一下,Scratch更适合做一些小程序和小游戏,虽然也能做一些复杂的设计,但是其开发思维的教学意义就大大减弱了。不过后面CC哥有时间的话会逐步利用3D的理论做一些游戏给大家学习。

CC哥做了两讲3D的游戏,有学友就提了问题:“你这看着不像3D呀,3D不是应该远的小,近的大吗?" CC哥再强调一遍,目前为止,CC哥讲的都不是真正的3D,而是小游戏的伪3D。真正的3D说句实话,还是挺有难度的,涉及到了透视的原理,矢量的方法,这些理论恐怕初中生甚至高中生也未必能轻易理解。所以CC哥还是要强调一下,Scratch更适合做一些小程序和小游戏,虽然也能做一些复杂的设计,但是其开发思维的教学意义就大大减弱了。不过后面CC哥有时间的话会逐步利用3D的理论做一些游戏给大家学习。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

 gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

在上一讲给大家展示了小火车之后,大家有没有对这种通过克隆来做的3D效果有了一个了解?为了让大家加深对这种方法的理解,CC哥又找了个互动性稍强的小游戏例子给大家来展示和讲解一下:3D贪吃蛇。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

 gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

 

游戏非常简单,就是不断吃肉,而避免碰到妖怪,碰到妖怪游戏就自动结束。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

游戏的关键就是蛇的形成。这条蛇就是通过对造型的克隆来形成的。这条蛇的形成是属于水平视角方法(用纵向剖面图克隆形成),与上一个示例的区别是,这个蛇身的形成不是通过在克隆时不断增加Y轴坐标形成的,而是通过在运动过程中的运动滞后来动态形成的。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

蛇身的形成gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

 gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

这条蛇的纵向剖面图有44个,相当于切菜一样,把蛇给切成刺身了。其实蛇身大多数都是同样的造型。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

 gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

跟我学Scratch第九十讲 :3D贪吃蛇-教程
跟我学Scratch第九十讲 :3D贪吃蛇-教程
跟我学Scratch第九十讲 :3D贪吃蛇-教程

前面是蛇头的切片造型,后面是蛇尾的切边造型,中间都是蛇身的。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

跟我学Scratch第九十讲 :3D贪吃蛇-教程

 gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

蛇身运动的逻辑是:gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

1:首先形成蛇,将44个造型依次克隆,同时为每一个克隆体编号。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

2:当鼠标运动时,用一个长度为44个列表来存储鼠标的运动轨迹,然后让对应克隆编号的蛇切片克隆体移动到列表编号对应的位置。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

 gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

让我们看看代码的关键部分:gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

鼠标轨迹列表的形成:(代码位于背景)gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

跟我学Scratch第九十讲 :3D贪吃蛇-教程gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台
跟我学Scratch第九十讲 :3D贪吃蛇-教程gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

列表初始化就是程序开始时生成一个长度为44的列表,然后每一项都设为0。循环的部分就是轨迹跟踪的过程。每一个循环里先删掉列表的**后一项,然后把鼠标的位置插入到第一项。(删除列表项目的命令中,参数可以写“last”来代表**后一项)然后通知蛇来移动。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

这段代码的关键就是,整个列表数据是动态跟新的,列表的第一项,是**先跟进鼠标的位置,然后后面的每一项顺序跟进。当鼠标停止移动时,**后每一项都会逐渐变成鼠标的**后位置。这就形成了一个轨迹的效果。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

 gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

蛇身的形成:(位于蛇的角色里)gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

跟我学Scratch第九十讲 :3D贪吃蛇-教程gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台
跟我学Scratch第九十讲 :3D贪吃蛇-教程gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

这个代码很简单,就是要完成44次克隆,让每个克隆体对应一个切片造型。同时为每一个克隆体依次编号。level#这个变量是私有变量。关键点之前的讲座就说过,用克隆剖面来做3D效果时,要特别注意克隆体层次的关系。在这个示例中,就用了专门的后移命令,把每一个切片都放到对应的图层上,以保证3D效果的正确。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

 gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

跟我学Scratch第九十讲 :3D贪吃蛇-教程gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

 gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

这里有一个命令,就是用b键来显示蛇背面视角的效果,其实很简单,就是把图层重新排列,**后的排在**前面,**前面的排到**后面。

 gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

上面形成的蛇因为没有移动,所以是看不出蛇的效果,只有蛇移动的时候,每一个切片才会产生错位,从而形成蛇身。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

跟我学Scratch第九十讲 :3D贪吃蛇-教程gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台
跟我学Scratch第九十讲 :3D贪吃蛇-教程gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台
跟我学Scratch第九十讲 :3D贪吃蛇-教程gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

刚才在形成轨迹的代码中有一个消息命令,就是通知蛇移动到鼠标位置的消息命令。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

每一个蛇的切片克隆体都会收到这条消息:gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

1: 先找出切片要去的位置和当前位置之间的距离,△x, △ygWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

2: 用直角三角形公式算出距离长度。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

跟我学Scratch第九十讲 :3D贪吃蛇-教程gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

3:如果这个长度小于等于1,就直接移动到目标位置上。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

4:如果这个长度大于1,如果距离超过15,那么每次移动7步。如果距离在1~15之间,那么每次移动这个距离的三分之一。(这种移动方式就是增加了时延来更好的体现蛇身的效果,时延越长,就会造成切片之间错位的时间越长,从而展示出蛇移动的效果)gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

5:中间的部分是移动方向的算法,如果是水平移动,那么就根据△x的正负来决定移动方向。否则的话,就根据三角函数来算出移动方向。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

 gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

敲黑板gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

 gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台

因为这一讲主要还是讲通过克隆来形成3D效果的应用,所以CC哥只贴了跟内容相关的代码,大家可以用这种方法去设计自己的游戏,千万别跟CC哥说照着图片编的程序没法运行哈。gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台
gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台
gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台
gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台
来源    CC哥教你编程gWx少儿编程网-Scratch_Python_教程_免费儿童编程学习平台


相关文章:

支持一下 ( )

跟我学Scratch第九十讲 :3D贪吃蛇-教程

      匿名评论
    • 评论
    人参与,条评论
    少儿编程网

微信公众号

免费视频教程

先知道