You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Scratch中实现可点击切换颜色的动态点阵网格?

Scratch 动态生成可点击切换颜色的点阵网格实现方法

核心思路

不用制作多套背景或精灵组,靠克隆功能动态生成点阵,一套脚本就能适配任意完全平方数的网格(比如49对应7×7、36对应6×6)。

具体步骤

1. 准备基础点阵精灵

  • 新建一个小圆形/方形精灵,命名为「点阵单元」
  • 给它做两个造型:一个红色填充、一个蓝色填充(用造型切换比颜色特效更直观)
  • 将原精灵设为隐藏状态(只通过克隆生成可见的点阵)

2. 处理用户输入与网格计算

  • 用「询问并等待」积木让用户输入总点数,询问内容设为「请输入完全平方数(如49=7×7):」
  • 计算行列数:用sqrt(回答)积木取平方根,比如输入49就得到7。加个判断逻辑:如果取整(sqrt(回答)) * 取整(sqrt(回答)) ≠ 回答,就说「请输入有效的完全平方数!」并停止当前脚本,重新询问
  • 计算点阵间距:为了让网格居中且不超出舞台,留左右各50、上下各50的边距,间距公式设为(480 - 100) / 行列数(舞台默认宽度480),y轴间距同理用(360 - 100) / 行列数(舞台默认高度360)

3. 克隆生成网格

在原精灵的脚本里编写如下逻辑:

当绿旗被点击
删除所有克隆体
询问「请输入完全平方数(如49=7×7):」并等待
设 行列数 为 取整(sqrt(回答))
如果 行列数 * 行列数 ≠ 回答 那么
    说「请输入有效的完全平方数!」2秒
    停止当前脚本
设 x间距 为 (480 - 100) / 行列数
设 y间距 为 (360 - 100) / 行列数
设 当前行数 为 1
重复执行 行列数 次
    设 当前列数 为 1
    设 y坐标 为 (180 - 50) - (y间距 * (当前行数 - 1))  // 180是舞台半高,减50为上边距
    重复执行 行列数 次
        设 x坐标 为 (-240 + 50) + (x间距 * (当前列数 - 1))  // -240是舞台半宽,加50为左边距
        移动到 x: x坐标 y: y坐标
        克隆自己
        将 当前列数 增加 1
    将 当前行数 增加 1

4. 实现点击切换颜色

在「点阵单元」的脚本里添加克隆体交互逻辑:

当作为克隆体启动时
显示
当此克隆体被点击
下一个造型  // 依赖提前做好的红、蓝两个造型,实现循环切换

如果不想做造型,也可以用颜色特效替代:

当此克隆体被点击
如果 颜色特效 = 0 那么  // 假设初始红色对应特效0
    将颜色特效设定为 100  // 切换为蓝色(数值可自行调整)
否则
    将颜色特效设定为 0

5. 重置功能(可选)

添加一个触发(比如按下空格键),快速清空网格并重新生成:

当按下 空格 键
删除所有克隆体

内容的提问来源于stack exchange,提问作者Jeffery Lou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:14:55