Scratch 消灭字母小游戏

背景

最近尝试一边自学Scratch,一边尝试教给小孩,看他打字时在键盘上乱打一气,想起来自己小时候玩过的学习机打字母游戏,就想给他下载一个。结果网上看到的代码,要么质量太差(有26个字母就要写 26 个判断,会把小孩水平教坏 😦 ),要么还要收钱才能下载。就决定自己写一个。

功能

  • 可以按需选择想要练习的字母范围 ( A-Z 中的任意连续字符, 从而方便逐渐练习)
  • 程序开始后从屏幕上方随机产生字母,逐渐下落。
  • 在字母掉落到最下面前按对应按键,会将火箭移动到字母下,发射闪电消灭字母。
  • 可以设置最大血量,当未打中的字母数量达到指定量时,游戏失败
    在这里插入图片描述

核心代码

  • 在屏幕最顶端产生随机字母,使用私有变量(随机初始字母)保留当前字母对应的值,从而判断按键
    产生随机字母
  • 作为克隆体启动时,一直往下掉,并检测是否被消灭或超出屏幕范围
    在这里插入图片描述
  • 按键判断的核心,检测到自己对应的字母被按下时,设置火箭要移动到的位置
    在这里插入图片描述
  • 闪电的代码:移动到消灭目标_X的位置后,克隆出向上发射的火箭。为了避免将还在空中飞的闪电也移动,使用了 y坐标=-130(初始值) 的方式判断,个人感觉不是很好,但没有找到更好的办法。
    在这里插入图片描述

已知Bug

  • 如果屏幕中同时存在多个相同的字母,始终会给位置高的字母发射火箭,直到其被消灭后才会给位置低的字母发射闪电,似乎和多个克隆体的执行顺序有关。已经尝试过 设置已发射子弹标志, 计算Y坐标位置等方式,但都不能解决。理论上说,通过设置列表变量跟踪的方法可能能解决,但感觉复杂度又上去了,就没有更改。看是否有高手能解决。

源码下载

  • https://gitee.com/fishjam/scratch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值