|
发表于 2006-9-6
|
|阅读模式
scratch如何模拟弹钢琴
$ V9 B5 }6 U# d; x 0 F+ T1 m/ d4 c
核心提示:大多数孩子学编程都会选择从Scratch入门,一方面是Scratch的界面十分有趣,能够吸引孩子关注,另一方面Scratch的功能也非常丰富,游戏、动画齐全,孩子上手会更容易。下面就来说说怎样用scratch模拟弹钢琴吧! 怎样用scra
) r9 }8 c. {7 s# F0 X; D$ I大多数孩子学编程都会选择从Scratch入门,一方面是Scratch的界面十分有趣,能够吸引孩子关注,另一方面Scratch的功能也非常丰富,游戏、动画齐全,孩子上手会更容易。下面就来说说怎样用scratch模拟弹钢琴吧! ' r( U0 p m1 l. v5 }7 u' K, a m
" D; R' v( N) K* e- R9 l3 w" d
怎样用scratch模拟弹钢琴
+ |/ N- a+ [! G8 M" `, b+ ~8 k) i' N" L& a4 W" C; f
( z8 t ^- `/ G
9 k! [ Z$ o5 x第一步、新建角色和背景
6 w5 m7 n3 E0 O _; F% T6 h0 }( G% J9 F* o! K4 a) ]
进入Scratch的角色库,点击“物品”,然后下拉,选取钢琴作为角色,名字是piano。接着,点击舞台区域里的“新建背景”按钮,选择“主题”下面的“音乐和舞蹈”,选取"Stage1"作为我们的背景。 5 ^' `3 D- i( Q
) P G1 j3 M; d; _5 l1 j( a
第二步、播放声音 7 l( ^& Q) y" J# t: X( E& {7 |
% C" x3 M& e: d( I$ m3 C1 a点击“角色”钢琴,再点击“脚本”右边的“声音”按钮,是不是可以看到有好多声音效果? + P" \' z( r$ x) V, ?8 B
" H0 ?8 U7 W) m) `) x# z
为了让键盘和钢琴之间有联系,你需要‘脚本’里的‘事件’按钮里的指令。把‘当按下空格键’这个积木块拖到代码区域,然后把‘声音’里的‘播放声音’这个积木块放到它下面。为了实习按“1”播放“哆”的效果,我们把长方形里的空格键改成1,声音选择“C piano”。
6 X( A/ m- `* c/ a/ u
, A* y9 h7 A) p1 B" u6 _同理,我们可以实现其它几个按键的播放声音效果,只需要右键点击代码,选择复制就可以啦,把复制代码里的1改成2,C piano改成D piano。
5 V; C8 Q3 g3 m$ ~5 G8 P7 B& E6 A0 L- f) R9 f( t: |( j
尝试地按1到8之间的数字键看看效果,是不是很简单? 7 E: c) x5 |0 z/ f! q" m( M
: k7 k) q8 B6 X) ]$ f2 ^! ~
第三步、让钢琴动起来
8 a3 _# M7 N+ O& v
4 e! F! L7 u/ c) T5 F8 [6 Y$ u声音已经出来了,但问题是钢琴没什么动静,如何让钢琴也有反应呢?
+ p) d8 _% v x- L. o# M: b2 T
6 X6 v9 X) K7 F% m- z8 U这也不难,你只需要点击钢琴,把外观里的‘将颜色特效设定为0’这个积木块拖到‘播放声音’块的后面,再改改里面的数字就可以啦。
: Y1 k* C; J8 F( |7 [, { }7 V% u
第四步、实现钢琴键盘的效果 3 {4 g1 x0 x5 D7 P$ p0 `3 L
+ ~7 H8 d* y2 T6 h# J6 y! |为了有一种弹钢琴的感觉,我们新建一个“键盘”角色(点击‘新建角色’,选择‘物品’,再选择里面的‘Piano-Electric’),然后把钢琴的代码复制给键盘。 ) a2 S8 f9 r, `# V$ @7 F
& O* X- X3 T+ S9 @) v5 F. Y
以此类推,把代码全部复制过来,再去掉所有的“将颜色特效设定为”的代码块。 % V- v. o1 P8 x- ^. [: a
7 v8 ?, a) c% H+ U( b8 M
因为我们要按钢琴键盘的效果,而键盘是有其它造型的。所以把‘外观’按钮里的‘下一个造型’积木块放到所有‘播放声音的代码下面,这样我们在按数字的时候,键盘就会变换造型,让你觉得你在弹钢琴。 ! c: w6 ^& ]! M/ U& |3 k
: t- x8 f0 _3 ?. Y! g1 m& q然后我们点击1到8之间的数字,就可以让钢琴变色,并且键盘也有特效。
1 X! g: R0 U9 w7 D9 ?' q P( _+ U* b% O0 D) Q- }
q% c$ G% h9 j
+ P# C! B- _& q6 l, C. G如何用scratch编写钢琴演奏程序 9 U' i X* @3 \/ v! b+ v$ d9 }
( i2 o% i' ?4 H* a6 ~! x目的:编写一个简易的钢琴演奏程序,了解Scratch对声音的处理(播放声音、弹奏鼓声、弹奏音符,控制节拍,选择乐器,控制音量等)。 " ]3 d9 b: ?5 d: i4 P2 K, V( S
+ {6 }; a2 H9 b6 B适用对象:适合有一定编程和数学基础的用户,例如一二年级学生。在家长指引下小完成多数练习,用时约2小时。 ) ]) r& `/ d8 q" J& G! ]
, a5 |! Q4 U1 S* {+ `- Q实现方式:尽量使用简单的语句和方法,实现一个简易的钢琴。首先自己制作一个钢琴白色按键,有两个造型,只是颜色有点区别。按下按键的时候,切换造型,显示按下的效果。实现从1,2,3,4,5,6,7,i八个音节,因此复制角色即可。方法相同,制作5个黑色按钮角色。(为了简单,并未使用克隆功能,因此代码是重复的。这种方式适合入门的用户。) ( m: L+ Y( T/ ]$ a! E
3 {% g# ]" t1 {" j2 G! O o' ^1 a
一、钢琴白键:造型、按键和播放声音
, P% X' T5 R& w- J7 e* } E" X9 K" z i b# ?
1)自己制作一个角色,用填充白色的长方形即可。制作完毕以后,复制这个造型,修改填充颜色。白键的两个造型即完成。
' ~) [' w7 S5 b) F1 T8 T6 E
: p, u+ S6 W" s1 ]5 I: m2)添加按键、播放音节的脚本:开始时切换造型到1(即白色)。重复执行,判断按键A被按下,则切换造型2(浅蓝色),然后“弹奏音符60 0.5节拍”,如果没有A被按下,则切换回造型1(白键)。 & [5 k# a2 t2 n4 P ? R4 R
' d- x' s, e1 j9 z; s: W: W
3)其他按键类似,只是弹奏的音符不同,1,2,3,4,5,6,7,i八个音符的数字依次为:60,62,64,65,67,69,71,72. * Q, ~6 V% ?( v; J
/ W( o. c# p! z4)为了使按键间隔一致,初始化时移动到X Y,Y为0,X从-180开始,每个按键增增加50。为了简单,这里并未使用变量。级别高的用户可以使用变量,以便在整体往右移动按键的时候会简单些。
: Q4 m0 P0 k: }# u; s4 ?6 D# t. y* n Q* `+ Y
二、钢琴黑键:造型、按键和播放声音 4 q+ ] Q; C8 |
& b6 {' g+ v: L6 l0 W' e, C/ W
1)使用相同的方法制作黑键。两个造型,高度稍短。位置和钢琴上的黑键相同,即3,4之间没有黑键。
6 ?7 s0 Z. q# D, f7 w7 U; R
/ q8 R1 R# a" c* U中高级用户可以实现这些改进功能: ' M" c3 X0 ~7 m% G4 t
" q$ J5 }* Q/ @! m' o0 U3 _# p
1) 使用变量统一控制钢琴按键在屏幕中的相对位置。
) \. u+ `0 y# ]+ c
6 q4 ^6 _3 U/ [ Q( G2) 使用克隆,减少角色数量,使用一个白色角色、黑色角色,通过克隆,即可实现所有按键。(代码虽有所减少,但单个角色中的代码会增加,程序会复杂一些)
# m( v% n; ~' l' @& \+ r1 O6 h* [4 n' _) R8 X4 w, \
3) 考虑按键时长:这种循环中,直接判断某个按键是否被按下,存在严重的缺陷。即用户如果连续按着按键,系统会再次播放这个音节。相当于每次都是固定的0.5拍,不会随着按键快慢而变换节奏。 8 z7 h- \+ _7 T: M- L' X$ ]# A
9 I6 N, ?. z$ Q8 _. B5 \使用scratch制作一个钢琴的步骤
+ Y0 k- E% G2 a$ {4 T" A! F1 r! r3 M3 z* H
打开软件,选择事件选项。 7 b ?6 W$ _% Q8 K9 H3 I
8 a8 \" ]2 C% i! A; x8 W& P" T6 ]选择事件下方的当按下空格键。拖到编程区域。 0 G j9 `! s; }3 {! j% H
, }1 V5 H) e E0 W点击空格键右边的倒三角。 ) D- h$ W5 [# A+ i7 a
- M' ^' _. s7 D/ P7 p% h; Q4 s" v下拉菜单选择数字1。 4 i% T. `( h7 c. [
$ h) O* O4 S5 a( A2 a# D# ^. H. f' `找到声音中的弹奏音符选项。
# x5 V! h8 w/ o; I+ g T7 R/ v( t# J6 ^& \
按下音符60后面的倒三角。选择中央C点击。
: x7 N' f2 D' I1 i) k+ b9 A) I, y8 g
同理,分别设置2,3,4,5,6,7按钮控制音符。 4 F5 N* a9 u& x
) f( s' K- q2 E9 P6 J* p4 a; ^
设置完成之后就可以按住按钮弹奏音乐了! |
|