最新消息:码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。

Scratch教程:无中生有

Scratch 少儿编程 2019浏览 0评论

码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。

在Scratch中开发时,常常需要将角色转向某个方向。

 

Scratch在软件中提供了“面向”积木,可以使一个角色很容易地指向另一个角色所在的位置,十分方便。

        前提       

必须在指定的目标位置上有一个角色。

这样Scratch才能根据两个角色的位置关系计算出面向的角度。

 

        问题来了!

有的时候,在目标的位置上没有角色。或需要通过当前指向的角度进行一些其它控制时,就比较麻烦。

 

 

方案

 

对于这种问题,有两种解决方案。

1
目标角色法
2
基于角度计算的方法

本文章将介绍第一种方法,下一篇将介绍角度计算的方法。

 
无中生有
无中生有

目标角色法

此方法的思路是使一个目标角色移动到目标点,之后再让角色指向这个目标角色,实现的过程涉及到位置的传递和移动。

下面给出一个常用的例子
 

即给出两个点的坐标,在两点之间绘制一条虚线。

如果是绘制实线,程序会很简单,即移动到第一个点后,落笔再移动到第二个点。但如果绘制虚线,就涉及到面向终点所在的位置移动的问题了。

 

实施这个方法需要建立两个角色,一个是draw,用于绘制线,另一个是target,用于移动到目标位置。

这两个角色都不需要有造型图片。

 

 

无中生有

 

 

在draw中编写如下的程序绘制一条随机虚线。

 

无中生有

绘线子程序完成绘制虚线的功能。

 

无中生有

子程序中使用了全局变量gTargetX和gTargetY来传递两个角色之间的变量(当然也可以使用访问另一角色变量的方式)。之后发出消息(注意一定是广播并等待),target角色在接收到消息后,就移动到由指定的位置,之后draw角色面向target移动,就完成了绘制过程。

现在程序中的终点判断比较简单,如果基于两个角色之间的距离,可能得到更好的程序。

 

在target中只需要编写如下的程序,接收到消息后移动到指定位置就可以了。

无中生有

使用此程序绘制多条虚线,就能得到类似于如下的效果。

 

无中生有

稍作调整,还可以绘制出有规律的图形(此程序略)

 

无中生有

 

  目标角色法:  

优点:

是直观好用,便于理解,不需要自己进行计算。

缺点:

是需要使用额外的角色充当目标。

在有很多个角色(比如说多个克隆体)需要同时进行操作时,必然会带来移动的冲突。而且需要使用全局变量及消息来进行信息的传递。    

 

结论

1   为了使角色能够面向一个指定的坐标位置,有不同的方法;

2   本文章介绍了目标角色法,其中心思想是将目标点的坐标传递给另一个角色(可以通过全局变量或访问角色变量的方法),之后使目标角色移动到指定的位置,再把主角色面向这个目标。

3   目标角色法的核心思路是:既然在指定的位置上没有角色可以用于朝向,就设法在那个位置上放置一个角色,也就是“无中生有”!

 

 

参考资料:此方法参考了网上其它作者的研究内容。可参考https://www.cctalk.com/v/15066922221635.

 

您必须 登录 才能发表评论!