Funpack 第十期 Kitronik ARCADE 实现莫斯电码输入
使用 Kitronik ARCADE 实现莫斯电码输入与练习。
标签
嵌入式系统
cjmf
更新2021-08-26
719

ARCADE简介

Kitronik ARCADE是一款功能丰富的可编程游戏手柄,搭配微软MakeCode Arcade编辑器一起使用,你可以参考丰富的教学材料从头开始创建一个游戏,或者,调整现有开放源码的方式学习制作一款游戏。

完成任务

  1. LCD屏上随机出现一个字符,敲出对应的组合(3-5个字符即可),正确时,蜂鸣器响;错误时,振动电机发出振动
  2. 敲击按键,识别出按键组合对应的字符,在屏幕上打出自己的id

实现思路

功能分开实现,通过按钮进行功能间的切换。

实现流程 1. 启动初始化

初始化两个角色,分别为玩家和电脑,同时加载莫斯表。

FvGDDzcda40Nb8XquYwdBETV0-Us

(莫斯表建议使用 JS 编写,之后转换为方块,提高效率)

key = [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
".",
",",
"?",
"'",
"!",
"/",
"(",
")",
"&",
":",
";",
"=",
"+",
"-",
"_",
"\"",
"$",
"@"
]
value = [
"-----",
".----",
"..---",
"...--",
"....-",
".....",
"-....",
"--...",
"---..",
"----.",
".-",
"-...",
"-.-.",
"-..",
".",
"..-.",
"--.",
"....",
"..",
".---",
"-.-",
".-..",
"--",
"-.",
"---",
".--.",
"--.-",
".-.",
"...",
"-",
"..-",
"...-",
".--",
"-..-",
"-.--",
"--..",
".-.-.-",
"--..--",
"..--..",
".----.",
"-.-.--",
"-..-.",
"-.--.",
"-.--.-",
".-...",
"---...",
"-.-.-.",
"-...-",
".-.-.",
"-....-",
"..--.-",
".-..-.",
"...-..-",
".--.-."
]

2. 设置按键事件 左按键

实现 "-" 的输入

Fs9HuFR_EHkoRAe_Zp18PqtoXgNu

右按键

实现 "." 的输入

FlwbLP0vjyFn2NgcjInh3v4HLBWs

上下按键

上下按键实现了删除功能。这里使用Python的切片方法,相较于其它实现方便。

FqQAnDYyM-jkaa83cxxWQFy0EOnJ

def on_down_pressed():
    global user
    user = user[:-1]
    mySprite2.say(user)

 

A 按键

判断结果是否正确。

建议使用JS中的 indexOf 来减少方块的拖动。

Fk2zuRE__wRuG4AdI2Gzz4hxXMKC

if (mod == 1) {
        if (value.indexOf(user) != -1) {
            outshow = "" + outshow + key[value.indexOf(user)]
        }
        mySprite.say(outshow)
        user = ""
        mySprite2.say(user)
    } else {
        if (value[dest] == user) {
            effects.confetti.startScreenEffect()
            music.baDing.playUntilDone()
            pause(2000)
            effects.confetti.endScreenEffect()
            music.stopAllSounds()
        } else {
            effects.blizzard.startScreenEffect()
            controller.vibrate(500)
            pause(2000)
            effects.blizzard.endScreenEffect()
        }
        init()
}

B 按键

实现复位和功能切换。

FvznXxzzaMHvTkoTxHY9EQnoUsBi

心得体会

Makecode 平台支持方块拖动式编程,也支持高级语言JS和Python编程,在降低初学者门槛的同时也颇具可玩性。在此感谢硬核团队的技术支持。

项目分享地址

https://makecode.com/_aprioWe9zMMg

团队介绍
团队成员
cjmf
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号