Day27 ( 高级 ) 小画家 ( 舞台上画图 )

小画家 ( 舞台上画图 )

教学原文参考:小画家 ( 舞台上画图 )

这篇文章会介绍,如何在 Scratch 3 里使用多个角色造型、画笔、重复无限次、更换造型、侦测碰到角色...等积木,实作一个可以在 Scratch 舞台上画图的小画家功能。

相关文章参考:角色造型画笔重复无限次更换造型侦测碰到角色

角色设定

在角色编辑区,删除猫咪角色,使用「绘画」功能绘制新的角色 ( 参考:造型与绘图 )。

Scratch 3 教学 - 小画家 ( 舞台上画图 )

绘制一大一小的黑色圆形,小的圆形命名为「画笔」,大的圆形命名为「black」( 黑色 )

Scratch 3 教学 - 小画家 ( 舞台上画图 )

用滑鼠在大的圆形按下右键,点选复制,就能复制大圆角色,复制角色後,将圆形改成红色,命名为「red」

Scratch 3 教学 - 小画家 ( 舞台上画图 )

依此类推,建立 black、red、yellow、green、blue、white 和 clear ( 清除 ) 的圆形角色,作为点击後,画笔会更换颜色的颜料

Scratch 3 教学 - 小画家 ( 舞台上画图 )

画笔角色造型设定

点击「画笔」角色,切换到「造型」页签,替画笔角色制作六个不同颜色的造型 ( 形状位置相同 ),分别是 black、red、yellow、green、blue 和 white ( 颜色与大圆的颜色接近或相同 )。

Scratch 3 教学 - 小画家 ( 舞台上画图 )

设定角色位置

调整圆形角色在舞台上的位置,使其看起来像下图一样。

Scratch 3 教学 - 小画家 ( 舞台上画图 )

如果担心会不小心移动角色的位置,也可以替每个「大圆」角色加上「点击绿旗」的程序积木,在点击绿旗时设定摆放的位置。

Scratch 3 教学 - 小画家 ( 舞台上画图 )

积木程序原理

加入扩充功能的「画笔」,点击「画笔」角色,设定一开始点击绿旗的程序:

  • 清除笔迹、停笔。
  • 设定画笔宽度为 10。
  • 设定画笔预设颜色为黑色
  • 设定画笔造型为 black 黑色画笔

Scratch 3 教学 - 小画家 ( 舞台上画图 )

接着加入「用滑鼠画图」的程序:

  • 使用重复无限次积木。
  • 每次重复时,让画笔角色定位到滑鼠位置 ( 跟随滑鼠移动 )。
  • 每次重复时,判断是否按下滑鼠,如果按下滑鼠就下笔画图,放开滑鼠就停笔

Scratch 3 教学 - 小画家 ( 舞台上画图 )

完成後,切换到「专案页面」,就能用滑鼠在舞台上画图。

Scratch 3 教学 - 小画家 ( 舞台上画图 )

新增另外一组点击绿旗的程序,负责更换画笔颜色:

  • 放入重复无限次积木。
  • 每次重复时,判断如果碰到黑色大圆角色 ( black ):
    • 停笔。
    • 判断如果按下滑鼠 ( 碰到黑色大圆 + 按下滑鼠 )。
    • 将画笔颜色设定为黑色,造型换成黑色画笔。
  • 每次重复时,判断如果碰到红色大圆角色 ( red ):
    • 停笔。
    • 判断如果按下滑鼠 ( 碰到红色大圆 + 按下滑鼠 )。
    • 将画笔颜色设定为红色,造型换成红色画笔。

Scratch 3 教学 - 小画家 ( 舞台上画图 )

依此类推,放入判断碰到黄色 ( yellow )、绿色 ( green )、蓝色 ( blue )、白色 ( white ) 和清除 ( clear ) 大圆角色的程序积木。

Scratch 3 教学 - 小画家 ( 舞台上画图 )

比较不同的是点击「清除 ( clear ) 角色」的程序积木为「笔迹全部清除」。

Scratch 3 教学 - 小画家 ( 舞台上画图 )

完成效果

完成後,切换回「专案页面」,就能开始在舞台上画图。

Scratch 3 教学 - 小画家 ( 舞台上画图 )

范例解答

范例解答:小画家 ( 舞台上画图 )

延伸练习

如果已经熟悉了小画家 ( 舞台上画图 ) 的原理,还可以尝试更多好玩的作法:

  • 增加更多颜色
  • 增加调整画笔粗细的按钮 ( 或使用变数滑杆 ) ( 解答 )

关於我

大家好,我是 OXXO,是个即将迈入中年的斜杠青年,如果对我有点兴趣(笑,可以与我联系,一起来做点有玩又有创意的东西吧!


<<:  [Day 27] JS实作练习 - Music Player

>>:  GCP loadbalanc(二)

RNN
杂谈    

[Day11]Bangla Numbers

上一篇介绍了Cubes,主要是考回圈的运用及判断,仔细思考之後就会发现不是那麽困难了。 今天讲解的题...

Day25-你的资料安全吗(三)

前言 因为资料库基本上可以分成 SQL 跟 NoSQL 两大类,昨天讲完 SQL injection...

用函式来传达你的心意> 0 <

前情提要一下,上次在变数命名的善意那篇中我们把arr换成seats代表一堆位置,n1换成seat代表...

[Day 20] Facial Recognition: OpenCV + Dlib可以一次满足

想起小时候常看到的一个广告:三个愿望、一次满足! 前两天讲到的孪生网路, 提到一个概念:相似度 (...