新的scratch作品更新了:数字华容道,源码直接给

希望大家能持续关注我们,我们经常会分享一些少儿编程相关的资料。

请大家记得我们是一个资料分享的公众号,只要你找少儿编程相关的资料,来我们这里就对了相关资料分享如果有问题,大家可以在文字底部留言。

大家方便转发文章到朋友圈的可以帮忙转发一下,非常感谢

84038e9d4949d70ba2509c8a0bf94fd3.png

我用夸克网盘分享了「数字华容道.sb3」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。

链接:https://pan.quark.cn/s/64a4a596ae41

以下是使用 Scratch 制作数字华容道小游戏的基本步骤和示例代码:

一、角色与背景设置

  • 背景:选择一个简洁的游戏背景画面。

  • 数字方块角色:创建 8 个数字方块角色(分别代表数字 1 - 8)和一个空白方块角色。

二、变量与列表

  • 数字位置列表:创建一个列表用于记录每个数字方块的当前位置信息。

  • 游戏状态变量:例如,用于表示游戏是否胜利、是否正在移动数字等。

三、数字方块生成与布局

  • 在游戏开始时,随机生成数字 1 - 8 在 3x3 网格中的位置(除了空白方块位置),并将其位置信息记录到数字位置列表中。示例代码如下:

when green flag clicked set [数字位置列表 v] to [] repeat 8  add (pick random (1) to (9)) to [数字位置列表 v] end // 确保没有重复位置且空白方块位置合理(这里假设空白方块初始在右下角,位置为 9) // 检查与修正位置代码省略,可自行补充完善 set [数字索引 v] to 1 repeat 8  create clone of [数字方块角色 v]  set [x 坐标 v] to (((item (数字索引 v) of [数字位置列表 v]) mod 3) * 50) - 75  set [y 坐标 v] to ((ceiling of (item (数字索引 v) of [数字位置列表 v]) / 3) * 50) - 100  set [数字索引 v] to (数字索引 v) + 1 end create clone of [空白方块角色 v] set [x 坐标 v] to 75 set [y 坐标 v] to 50

四、数字方块移动逻辑

  • 当按下上下左右键时,检测空白方块的相邻位置是否有数字方块,如果有,则交换它们的位置,并更新数字位置列表。以下是部分移动代码示例(以向上移动为例):

  • when [up arrow v] key pressed if <(空白方块 y 坐标 v) > -50>  set [检查位置 v] to ((空白方块 x 坐标 v) / 50) + ((空白方块 y 坐标 v) / 50 * 3) - 3  if <(检查位置 v) > 0>    set [移动数字索引 v] to (1)    repeat until <(移动数字索引 v) > 8>      if <(item (移动数字索引 v) of [数字位置列表 v]) = (检查位置 v)>        set [移动数字 x 坐标 v] to (((item (移动数字索引 v) of [数字位置列表 v]) mod 3) * 50) - 75        set [移动数字 y 坐标 v] to ((ceiling of (item (移动数字索引 v) of [数字位置列表 v]) / 3) * 50) - 100        set [x 坐标 v] of clone at (移动数字索引 v) to [空白方块 x 坐标 v]        set [y 坐标 v] of clone at (移动数字索引 v) to [空白方块 y 坐标 v]        set [x 坐标 v] of clone at (空白方块索引 v) to [移动数字 x 坐标 v]        set [y 坐标 v] of clone at (空白方块索引 v) to [移动数字 y 坐标 v]        change item (移动数字索引 v) of [数字位置列表 v] by (3)        change item (空白方块索引 v) of [数字位置列表 v] by (-3)        break      end      set [移动数字索引 v] to (移动数字索引 v) + 1    end  end end

五、游戏胜利判断

  • 每次移动数字后,检查数字方块的位置是否按照 1 - 8 的顺序排列在数字位置列表中,如果是,则游戏胜利。示例代码:

when green flag clicked forever  if <(数字位置列表 v) = [1, 2, 3, 4, 5, 6, 7, 8]>    // 游戏胜利显示相关代码,如显示胜利消息、停止游戏等    stop [all v]  end end

六、界面显示与交互

  • 可以在舞台上显示游戏提示信息、步数计数等。例如,创建一个文本角色用于显示步数,每次移动数字时更新步数计数。

这只是一个基本的数字华容道游戏框架,在实际制作中还需要进一步优化移动逻辑、处理边界情况、添加动画效果和音效等,以使游戏更加完善和有趣。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青少儿编程课堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值