很早之前我就撰写了一系列利用python turtle来模仿生成scratch动画效率的例子,系列文章标题为
从scratch到Python
,今天有一款直接可以用Python操作scratch的软件出现了,通过这个软件可以像拖代码块一样用Python对scratch编程.
Python如今得到了中小学编程教育的任何,山东省启用了青岛出版社出版的信息技术教材,有滨州,枣庄,临沂等,其中第五册上就有Python
的内容,如何更有趣的教成为了可以探讨的主题;同时舟山吕老师在学校开展了micro:bit教学,在学生掌握了图形化以后,Python将会成为接下来学习的主题;而Python已经进入了浙江信息技术教材.
这款软件为开展Python教学提供了一个有趣的教学工具.
本文电脑阅读效果更佳.
转载请注明出处
作者:郎丶
Email:[email protected]
KittenBlock初体验
可以看到我利用python实现了让小猫说hello world
,代码如下
from scratch3 import *
looks.say('hello world',1)
很简单有没有
软件安装
首先下载KittenBlock,安装之后启动软件.
然后点击Python就可以愉快的编程了
默认代码是让小猫叫起来,毕竟秋天来了嘛,很简单有没有.
from scratch3 import *
looks.say('hello world',1)
不过可能会不执行,毕竟是开风气之先的软件嘛,
如果出现的是这个提示, Error:python.exe: can't open file 'C:\Program': [Errno 2] No such file or directory没有关系,由解决的办法.
原理
其实你只要用任意编辑器写一个Python文件,然后执行就可以了,不一定非得用这里的编辑器的.
当然你也可以用交互式命令行
- 打开KittenBot安装目录
C:\Program Files (x86)\Kittenblock\Python
- 双击Python.exe
- 在>>>后面输入代码
- 回车执行
每输入一行就回车,就像图里那样,如果你有Python基础那最好了,你就可以体验scratch的魅力;如果你没有编程基础,不用担心,照葫芦画瓢就好了.
任意编辑器都可以,sublime当然也是可以的,不过**你要确保Python可以找到scratch3这个类,你可以把
C:\Program Files (x86)\Kittenblock\Python
加入到你的Python的查找路径.或者直接在这个目录里面写文件.
我会以命令行为例进行说明,我所有输入你也可以在KittenBlock输入
可用命令
motion 运动部分
motion.move(10) #让精灵移动10步
motion.gotoXY(100, 100) #让精灵移动到坐标x100,y100
motion.turnLeft(90) # 让精灵左转90度
motion.turnRight(90) # 让精灵右转90度
motion.pointTo(180) # 让精灵指向180度
motion.glideXY(100,100,sec=5) # 在5s内让精灵滑行到100,100
motion.changeX(10) # 改变X坐标
motion.changeY(10) # 改变Y坐标
motion.setX(10) # 设置X坐标
motion.setY(10) # 设置Y坐标
motion.xPosition() # 返回X坐标
motion.yPosition() # 返回Y坐标
motion.direction() # 返回精灵朝向
# looks 外观部分
looks.say("hello world") #让精灵说话
looks.show() # 显示精灵
looks.hide() # 隐藏精灵
looks.switchCostume("custome1") # 改变精灵皮肤
looks.switchBackground("background") # 改变舞台背景
looks.nextCustome() # 切换到下一个皮肤
looks.nextBackground() # 切换到下一个背景
looks.changeEffect("color",10) # 改变精灵特效, 第一个参数是效果类型,第二个参数是改变的值
looks.setEffect("color",99) # 设置精灵特效, 参数如上
looks.clearEffect() # 清楚特效
looks.changeSize(5) # 改变精灵大小
looks.setSize(50) # 设置精灵大小
# looks 声音部分
sound.play("meow") # 播放声音,对应精灵所带的音效
sound.stopAll() # 停止所有声音
sound.playDrum(1,0.25) # 打鼓,第一个参数对应鼓的类型可以去对应图块查看,第二个参数是节拍长度
sound.rest(0.5) # 停止节拍
sound.playNote(60,0.5) # 播放音符,第二个参数是节拍长度
sound.setInstrument(2) # 设置乐器类型
sound.changeEffect(1,10) # 改变声音特效
sound.setEffect(1,10) # 设置声音特效
sound.clearEffect() # 清除所有声音特效
sound.changeVolume(10) # 改变音量
sound.setVolume(100) # 设置音量
sound.volume() # 读取音量
sound.changeTempo() # 改变节奏
sound.setTempo() # 设置节奏
sound.tempo() # 返回节奏
# pen 画笔部分
pen.clear() # 清除当前图像
pen.stamp() # 用当前精灵印章
pen.penDown() # 落下画笔
pen.penUp() # 抬起画笔
pen.setColor("#FF0000") # 设置画笔颜色
pen.changeColor(10) # 改变颜色HUE值
pen.setShade(10) # 设置画笔色度
pen.changeShade(10) # 改变画笔色度
pen.setSize(10) # 设置画笔大小
pen.changeSize(1) # 改变画笔大小
让小猫动起来
motion.move(10)
敲入这样的命令就会发现,小猫动起来了,跟我们之前学习的scratch是不是很相似呢?
旋转的小猫
下面我们让小猫转几圈
for x in range(1000):
motion.turnLeft(1)
注意旋转完毕要恢复90°
注意到途中的:输入冒号之后,需要缩进的,四个空格,然后回车再回车执行代码,python的缩进也是语法规则的一种哟
绘制正方形
我们接下来用小猫绘制一个正方形把
还可以
from scratch3 import *
pen.clear()
pen.penDown()
for x in range(4):
motion.move(100)
motion.turnLeft(90)
播放声音
先来播放个音阶把
from scratch3 import *
import time
for x in range(36,98):
sound.playNote(x,1)
time.sleep(0.25)
执行下代码看看是什么效果
import time是导入时间相关函数
这里用到的time.sleep是等待0.25秒,你可以调整等待的时间
然后我们来改变下乐器
from scratch3 import *
import time
sound.setInstrument(9)
for x in range(36,98):
sound.playNote(x,1)
time.sleep(0.25)
反过来呢
from scratch3 import *
import time
sound.setInstrument(1)
for x in range(98,36,-1):
sound.playNote(x,1)
time.sleep(0.25)
动画原理
我们知道只要快速切换图片就会产生动画效果
from scratch3 import *
import time
for x in range(100):
looks.nextCustome()
time.sleep(0.1)
time.sleep(1)类似于控制中的等待,意思是等待1秒.尝试改变sleep方法的值观察不同的动画效果
总结
KittenBlock推出的Python功能涵盖了常见的代码块,加上很多python代码功能比如数学运算啊,控制结构啊,变量和列表都是Python自带的,用这个工具结合舞台角色可以完成很多复杂的动画了.
肯定有人会说,这个跟logo有什么区别呢?区别似乎不大,但是相比于logo对于角色的控制大大加强.
我们相信这款软件一定会在不断的完善之中,越来越好.基本上scratch有的模块这里都会有对应,大家用scratch设计完,然后用Python实现就好了,不足之处在于目前对于事件还没有良好的支持,所以改进的空间很大,但是我们要给新生事物足够的信心.