继续讲解通过python turtle从积木编程过渡到代码编程的技巧.角色是scratch中很重要的主角,每个角色可以更换不同的造型或者音效,堆叠不同的积木.如果把角色比做人,造型就是人物外观或者动作的变化,比如穿着运动服,打棒球或者走路等不同的造型.接下来我可能会很少截图,因为如果你看我文章的时候也跟着做了,那么还需要我截图么?
Scratch中新增角色或者造型有以下四种方法
Python turtle中,默认的角色是小乌龟,小乌龟默认有以下几种形状:
以上只能看做是同一个角色的造型,更改造型需要用到shape()
命令,
我们通过上述方法来改变角色的造型,如果想做动画,可以这样写
通过循环,不停的切换shape,就都达到了角色造型动画的效果,类似于scratch中的下一个造型
完整的Python程序如下
通过以上方式我们就利用默认的模版新建了一个名字是newSprite的角色.
然后我们可以用上述方式改变角色的造型了.
在scratch中通过上传图片新建角色或者造型很容易,在Python turtle中也不难.
需要注意的是在Python turtle中,所有的角色都是通过Turtle()
命令生成的,但是我们可以通过改变shape来形成不同的角色和造型.
要通过自定义图片来新建角色造型,我们首先要由图片,但是Python只支持gif格式的图片,同时大家最好设置的是背景透明的gif图片效果才好的.
通过以上代码,把造型c.gif导入程序,然后运行.这个过程就像是我们单击
Python turtle中没有绘图编辑器,所以你可以自己在别的软件中绘制造型,然后保存成gif图像,当然你也可以利用程序绘制一些图形作为角色,当然这个就比较复杂了.
强大的Python当然可以读取摄像头数据,然后生成gif图像,通过对应的库即可,而且Python强大的功能还可以对数据进行分析和处理,比如进行人脸识别,只把人脸加进来,不适合新手.
Scratch中的角色信息界面可以方便的查看角色的信息,在Python turtle中也是如此:
角色的名字,Python turtle中的名字是通过调用Turtle()
后返回给指定名称的变量名,这个就是变量的名字
以下是交互式命令行执行的结果
当然Python也是可以克隆的,比如以下代码所显示的:
可以发现t和t2指向同一个Turtle对象,而虽然t和t2指向了同一个对象,t3和t4经过克隆后所指向的代码是不同的.
如果需要改变默认角色的大小则要用到turtlesize()
命令
但是,似乎对于通过register_shape()
方法导入的gif图片无法通过这种方式来改变大小,以下是示例代码
因为Python turtle中没有绿色的旗子所以没有当绿旗被点击.
Scratch有当按下键盘按键执行某事,Python turtle对这个的支持是很强大的,比如我们来实现当空格键被按的时候,角色向右移动10个单位
猜测这个程序运行后是什么样子?
scratch可以侦测音量的大小,当然读取的是电脑麦克风的音量;计时器的值;和视频侦测.
不得不承认的是,scratch在这方面封装的很棒,但也仅止于此了;Python turtle是基于Python开发的,Python在多媒体处理,计算机视觉方面的功能十分强大,配合OpenCVC库,绝对的神兵利器,但是在这里,作为Python代表的Python turtle不能够发挥Python的水准,真是虎落平阳被犬欺啊.不过Scratch也是MIT媒体实验室经过10年的开发猜到现在这个样子而且主打多媒体故事,游戏以及互动故事的制作,而Python turtle在面向孩子编程方面并没有关注这方面,因为能够用Python turtle开发熟练程序的孩子最后去学习正儿八经的Python编程了,不再用积木块这种小儿科的东西了.
虽然切换背景很容易,但是Python turtle并非像Scratch一样专门为多媒体而设计所以在这些方面功能有点不足,这样比对Python对Python turtle是不公平的.不过Python有很多库可以解决这个问题,比如pygame
和pyglet
改进点:背景切换以及背景切换侦测事件
这个很简单要用到onclick()
命令
运行代码观察效果,会发现当角色被单击的时候,小箭头向下运动了180个单位
而以上代码,则因为给onclick()
加了一个参数,代表是右键,那么只有当右键箭头的时候鼠标才会移动,需要注意的是1代表左键,2代表右键
Scratch的消息广播实际上是ActionScript 3.0中的事件机制,ActionScript 3.0中提供的事件机制非常强大,在As3中,事件编程是一个相当高级的内容,编写游戏或者大型程序的时候十分有用当年记得清华大学胡登华和章精舍老师的As3编程书里的设计模式给我留下了深刻的印象.
Python turtle只实现了有限的鼠标,键盘和时间事件,自定义事件功能较弱需要完善.
Scratch中的控制模块实际上对应了编程中的顺序,循环和分支三大程序结构,下面我们来一一讲解
在Python涉及到时间的操作需要用到time模块,所以如果你仔细的话会发现我之前导入了time
模块,其中就包含了让程序等待的sleep()
命令
实现间隔一秒,角色改变造型的动画.
上面的例子True
的含义是真,意思是这个循环会一直执行,而直到是指一直到条件成立程序才会运行
我们让新鲜度开始是0,开始会觉得切换造型新鲜好玩,可是如果一直切换,会造成审美疲劳,所以当新鲜度增加到10的时候,就停止变换造型,当然了,这里每次循环都会改变xinxiandu的值的.
比如同样是执行10次代码,在Scratch中是
当然实际上Scratch和Python的程序不是对应的,如果想要结果一致,如何修改Scratch程序呢?
以上是重复指定的次数,如果是不停的重复呢
这里用到的就是重复执行循环内部的代码永远不停,如何用Python实现Scratch对应的程序,你动手了吗?
提示:学习程序,哪怕代码真的很简单,一看就会,也要实际运行一下,其实挺好的
这种情况下,只要满足某个条件,就执行某件事,当然这个时间一般不是一成不变的一定会改变某个对象的状态
改进点:鼠标滑过事件,Python turtle没有判断鼠标坐标的函数,o(╯□╰)o
Scratch中创造分身会用到克隆
比如上面的代码就生成了10个箭头,每个箭头向右移动10个坐标
上面这个导入了造型,并移动的可能更加明显一些
中文版是一款专门为青少年年龄段打造的简单趣味性的编程软件,软件经过完美的汉化处理,你只需要一个简单的编程思路即可开始接触编程的乐趣,没有什么繁琐的英文要求和各种逻辑结构语法要求,动动鼠标,敲敲键盘就能从小培养编程的兴趣。
1、软件为多语言版本,会自动根据用户的操作系统,自动转换成中文。
2、软件下载完全免费开源,公布源码,允许任意修改,发布,传播。
3、孩子的成品可以通过软件直接发布到官方网站上。官方网站给每个注册用户开通了一个空间,放置发布的程序。
孩子不用记住命令不代表不需要指导命令。积木模块包括8个大类,100多个功能。包括了过程一个完整程序的每个环节,甚至数组和函数。
这些图形化的积木使用需要老师或者家长正确引导。孩子从模仿的过程中,能感悟到条件语句,循环语句,判断。
能理解参数和命令的区别。
让孩子理性的总结出来是很困难的,引导是必须的。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。