很早之前我就撰寫了一系列利用python turtle來模仿生成scratch動畫效率的例子,系列文章標題為
從scratch到Python
,今天有一款直接可以用Python操作scratch的軟件出現(xiàn)了,通過這個軟件可以像拖代碼塊一樣用Python對scratch編程.
Python如今得到了中小學(xué)編程教育的任何,山東省啟用了青島出版社出版的信息技術(shù)教材,有濱州,棗莊,臨沂等,其中第五冊上就有Python
的內(nèi)容,如何更有趣的教成為了可以探討的主題;同時舟山呂老師在學(xué)校開展了micro:bit教學(xué),在學(xué)生掌握了圖形化以后,Python將會成為接下來學(xué)習(xí)的主題;而Python已經(jīng)進入了浙江信息技術(shù)教材.
這款軟件為開展Python教學(xué)提供了一個有趣的教學(xué)工具.
本文電腦閱讀效果更佳.
轉(zhuǎn)載請注明出處
作者:郎丶
Email:964683112@qq.com
KittenBlock初體驗
可以看到我利用python實現(xiàn)了讓小貓說hello world
,代碼如下
from scratch3 import *
looks.say('hello world',1)
很簡單有沒有
軟件安裝
首先下載KittenBlock,安裝之后啟動軟件.
然后點擊Python就可以愉快的編程了
默認代碼是讓小貓叫起來,畢竟秋天來了嘛,很簡單有沒有.
from scratch3 import *
looks.say('hello world',1)
不過可能會不執(zhí)行,畢竟是開風(fēng)氣之先的軟件嘛,
如果出現(xiàn)的是這個提示,Error:python.exe: can't open file 'C:\Program': [Errno 2] No such file or directory沒有關(guān)系,由解決的辦法.
原理
其實你只要用任意編輯器寫一個Python文件,然后執(zhí)行就可以了,不一定非得用這里的編輯器的.
當(dāng)然你也可以用交互式命令行
- 打開KittenBot安裝目錄
C:\Program Files (x86)\Kittenblock\Python
- 雙擊Python.exe
- 在>>>后面輸入代碼
- 回車執(zhí)行
每輸入一行就回車,就像圖里那樣,如果你有Python基礎(chǔ)那最好了,你就可以體驗scratch的魅力;如果你沒有編程基礎(chǔ),不用擔(dān)心,照葫蘆畫瓢就好了.
任意編輯器都可以,sublime當(dāng)然也是可以的,不過**你要確保Python可以找到scratch3這個類,你可以把
C:\Program Files (x86)\Kittenblock\Python
加入到你的Python的查找路徑.或者直接在這個目錄里面寫文件.
我會以命令行為例進行說明,我所有輸入你也可以在KittenBlock輸入
可用命令
motion 運動部分
motion.move(10) #讓精靈移動10步
motion.gotoXY(100, 100) #讓精靈移動到坐標x100,y100
motion.turnLeft(90) # 讓精靈左轉(zhuǎn)90度
motion.turnRight(90) # 讓精靈右轉(zhuǎn)90度
motion.pointTo(180) # 讓精靈指向180度
motion.glideXY(100,100,sec=5) # 在5s內(nèi)讓精靈滑行到100,100
motion.changeX(10) # 改變X坐標
motion.changeY(10) # 改變Y坐標
motion.setX(10) # 設(shè)置X坐標
motion.setY(10) # 設(shè)置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) # 改變精靈特效, 第一個參數(shù)是效果類型跷车,第二個參數(shù)是改變的值
looks.setEffect("color",99) # 設(shè)置精靈特效橱野, 參數(shù)如上
looks.clearEffect() # 清楚特效
looks.changeSize(5) # 改變精靈大小
looks.setSize(50) # 設(shè)置精靈大小
# looks 聲音部分
sound.play("meow") # 播放聲音水援,對應(yīng)精靈所帶的音效
sound.stopAll() # 停止所有聲音
sound.playDrum(1,0.25) # 打鼓茅郎,第一個參數(shù)對應(yīng)鼓的類型可以去對應(yīng)圖塊查看系冗,第二個參數(shù)是節(jié)拍長度
sound.rest(0.5) # 停止節(jié)拍
sound.playNote(60,0.5) # 播放音符薪鹦,第二個參數(shù)是節(jié)拍長度
sound.setInstrument(2) # 設(shè)置樂器類型
sound.changeEffect(1,10) # 改變聲音特效
sound.setEffect(1,10) # 設(shè)置聲音特效
sound.clearEffect() # 清除所有聲音特效
sound.changeVolume(10) # 改變音量
sound.setVolume(100) # 設(shè)置音量
sound.volume() # 讀取音量
sound.changeTempo() # 改變節(jié)奏
sound.setTempo() # 設(shè)置節(jié)奏
sound.tempo() # 返回節(jié)奏
# pen 畫筆部分
pen.clear() # 清除當(dāng)前圖像
pen.stamp() # 用當(dāng)前精靈印章
pen.penDown() # 落下畫筆
pen.penUp() # 抬起畫筆
pen.setColor("#FF0000") # 設(shè)置畫筆顏色
pen.changeColor(10) # 改變顏色HUE值
pen.setShade(10) # 設(shè)置畫筆色度
pen.changeShade(10) # 改變畫筆色度
pen.setSize(10) # 設(shè)置畫筆大小
pen.changeSize(1) # 改變畫筆大小
讓小貓動起來
motion.move(10)
敲入這樣的命令就會發(fā)現(xiàn),小貓動起來了,跟我們之前學(xué)習(xí)的scratch是不是很相似呢?
旋轉(zhuǎn)的小貓
下面我們讓小貓轉(zhuǎn)幾圈
for x in range(1000):
motion.turnLeft(1)
注意旋轉(zhuǎn)完畢要恢復(fù)90°
注意到途中的:輸入冒號之后,需要縮進的,四個空格,然后回車再回車執(zhí)行代碼,python的縮進也是語法規(guī)則的一種喲
繪制正方形
我們接下來用小貓繪制一個正方形把
還可以
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)
執(zhí)行下代碼看看是什么效果
import time是導(dǎo)入時間相關(guān)函數(shù)
這里用到的time.sleep是等待0.25秒,你可以調(diào)整等待的時間
然后我們來改變下樂器
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)
動畫原理
我們知道只要快速切換圖片就會產(chǎn)生動畫效果
from scratch3 import *
import time
for x in range(100):
looks.nextCustome()
time.sleep(0.1)
time.sleep(1)類似于控制中的等待,意思是等待1秒.嘗試改變sleep方法的值觀察不同的動畫效果
總結(jié)
KittenBlock推出的Python功能涵蓋了常見的代碼塊,加上很多python代碼功能比如數(shù)學(xué)運算啊,控制結(jié)構(gòu)啊,變量和列表都是Python自帶的,用這個工具結(jié)合舞臺角色可以完成很多復(fù)雜的動畫了.
肯定有人會說,這個跟logo有什么區(qū)別呢?區(qū)別似乎不大,但是相比于logo對于角色的控制大大加強.
我們相信這款軟件一定會在不斷的完善之中,越來越好.基本上scratch有的模塊這里都會有對應(yīng),大家用scratch設(shè)計完,然后用Python實現(xiàn)就好了,不足之處在于目前對于事件還沒有良好的支持,所以改進的空間很大,但是我們要給新生事物足夠的信心.