吊爆了的汉字输入法 我的世界拼音输入法原理详解

时间:2017-11-02 来源:88130安卓下载 作者:佚名

  吊爆了的汉字输入法 我的世界拼音输入法原理详解。那在我的世界里面也可以打汉字吗?那当然是不行的啦!那怎么给大家分享一下大神的汉字输入法原理及制作详解吧!感兴趣的玩家不妨进来看看哦~

  游戏园我的世界官方群:325049520 二群:256070479 欢迎各路喜爱我的世界的小伙伴们加入讨论!

  玩服务器的小伙伴们可以加入:464651602 群一起联机玩游戏哦!

  如果你有心仪的作品或者心得分享的话,欢迎来游戏园投稿,大家可以点击>>>投稿<<<进行投稿哦~ 有奖品哦~

  首先呢,我先要说一下,为什么在玩家可以直接输入文本的游戏里加入这样一个输入法呢?因为游戏目前并不能获取玩家输入的文本,而一旦可以输入,我们就可以处理这样的一个文本。一旦处理这个文本,我们又能加很多特技了,这个输入法的原型,出自我快一年前的扫雷的英雄榜。

  总共创立的计分板只有一个。我写的名称为end。

  这个计分板承接各种功能,我会在模块介绍中提到具体用法。

  那么废话不多说,我们开始吧。

  首先附上效果图。

  这是整个电路的鸟瞰截图。

  这些模块环环相扣,先从原理说起吧。

  原理

  Tellraw可以通过选择器事件来显示和say一样的效果,那么我们可以通过只选择一个实体的方法来实现在tellraw中自定义文本。这一点我在很久之前的帖子里屡次提到或用到。而点击事件也可以用于制作软键盘。综合两点可以做出不错的效果。

  原理完!

  下面分模块进行讲解。

  软键盘-防溢出模块

  下面是一个指令样本。

  tellraw @a [{"text":"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn","color":"green"},{"selector":"@e[-8,4,1,r=0,name=!print]"},{"selector":"@e[-8,4,2,r=0,name=!print]"},{"selector":"@e[-8,4,3,r=0,name=!print]"},{"selector":"@e[-8,4,4,r=0,name=!print]"},{"selector":"@e[-8,4,5,r=0,name=!print]"},{"selector":"@e[-8,4,6,r=0,name=!print]"},{"selector":"@e[-8,4,7,r=0,name=!print]"},{"selector":"@e[-8,4,8,r=0,name=!print]"},{"selector":"@e[-8,4,9,r=0,name=!print]"},{"selector":"@e[-8,4,10,r=0,name=!print]"},{"text":"n"},{"text":"【←】","color":"green","clickEvent":{"action":"run_command","value":"/tp @e[0,4,-1000,dz=2000,dx=0,dy=0,type=ArmorStand] ~ ~ ~10 "}},{"text":" "},{"selector":"@e[0,4,1,r=0]","clickEvent":{"action":"run_command","value":"/setblock -7 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,2,r=0]","clickEvent":{"action":"run_command","value":"/setblock -8 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,3,r=0]","clickEvent":{"action":"run_command","value":"/setblock -9 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,4,r=0]","clickEvent":{"action":"run_command","value":"/setblock -10 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,5,r=0]","clickEvent":{"action":"run_command","value":"/setblock -11 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,6,r=0]","clickEvent":{"action":"run_command","value":"/setblock -12 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,7,r=0]","clickEvent":{"action":"run_command","value":"/setblock -13 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,8,r=0]","clickEvent":{"action":"run_command","value":"/setblock -14 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,9,r=0]","clickEvent":{"action":"run_command","value":"/setblock -15 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,10,r=0]","clickEvent":{"action":"run_command","value":"/setblock -16 4 -4 minecraft:redstone_block"}},{"text":"【→】n","color":"green","clickEvent":{"action":"run_command","value":"/tp @e[0,4,-1000,dz=2000,dx=0,dy=0,type=ArmorStand] ~ ~ ~-10 "}},{"text":"n"},{"selector":"@e[-10,4,1,r=0,name=!check]"},{"selector":"@e[-10,4,2,r=0,name=!check]"},{"selector":"@e[-10,4,3,r=0,name=!check]"},{"selector":"@e[-10,4,4,r=0,name=!check]"},{"selector":"@e[-10,4,5,r=0,name=!check]"},{"selector":"@e[-10,4,6,r=0,name=!check]"},{"text":"n","clickEvent":{"action":"run_command","value":"say hi"}},{"text":" [ Q ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 16 minecraft:redstone_block"}},{"text":"[ W ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 22 minecraft:redstone_block"}},{"text":"[ E ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 4 minecraft:redstone_block"}},{"text":"[ R ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 17 minecraft:redstone_block"}},{"text":"[ T ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 19 minecraft:redstone_block"}},{"text":"[ Y ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 24 minecraft:redstone_block"}},{"text":"[ U ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 20 minecraft:redstone_block"}},{"text":"[ I ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 8 minecraft:redstone_block"}},{"text":"[ O ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 14 minecraft:redstone_block"}},{"text":"[ P ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 15 minecraft:redstone_block"}},{"text":" │ ENTER │n","clickEvent":{"action":"run_command","value":"say hi"}},{"text":" [ A ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 0 minecraft:redstone_block"}},{"text":"[ S ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 18 minecraft:redstone_block"}},{"text":"[ D ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 3 minecraft:redstone_block"}},{"text":"[ F ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 5 minecraft:redstone_block"}},{"text":"[ G ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 6 minecraft:redstone_block"}},{"text":"[ H ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 7 minecraft:redstone_block"}},{"text":"[ J ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 9 minecraft:redstone_block"}},{"text":"[ K ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 10 minecraft:redstone_block"}},{"text":"[ L ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 11 minecraft:redstone_block"}},{"text":" ","clickEvent":{"action":"run_command","value":"say hi"}},{"text":"│ 删除文字│n","clickEvent":{"action":"run_command","value":"/setblock -15 5 -2 minecraft:redstone_block"}},{"text":" [ Z ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 25 minecraft:redstone_block"}},{"text":"[ X ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 23 minecraft:redstone_block"}},{"text":"[ C ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 2 minecraft:redstone_block"}},{"text":"[ V ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 21 minecraft:redstone_block"}},{"text":"[ B ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 1 minecraft:redstone_block"}},{"text":"[ N ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 13 minecraft:redstone_block"}},{"text":"[ M ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 12 minecraft:redstone_block"}},{"text":" "},{"text":" │ 删除拼音 │","clickEvent":{"action":"run_command","value":"/setblock -15 4 -2 minecraft:redstone_block"}}]

  其效果如上方动图所示。

  所有点击事件均为放置红石块,由于这个系统并未实装,所以enter那里并未实装命令。

  吊爆了的汉字输入法 我的世界拼音输入法原理详解。那在我的世界里面也可以打汉字吗?那当然是不行的啦!那怎么给大家分享一下大神的汉字输入法原理及制作详解吧!感兴趣的玩家不妨进来看看哦~

  游戏园我的世界官方群:325049520 二群:256070479 欢迎各路喜爱我的世界的小伙伴们加入讨论!

  玩服务器的小伙伴们可以加入:464651602 群一起联机玩游戏哦!

  如果你有心仪的作品或者心得分享的话,欢迎来游戏园投稿,大家可以点击>>>投稿<<<进行投稿哦~ 有奖品哦~

  首先呢,我先要说一下,为什么在玩家可以直接输入文本的游戏里加入这样一个输入法呢?因为游戏目前并不能获取玩家输入的文本,而一旦可以输入,我们就可以处理这样的一个文本。一旦处理这个文本,我们又能加很多特技了,这个输入法的原型,出自我快一年前的扫雷的英雄榜。

  总共创立的计分板只有一个。我写的名称为end。

  这个计分板承接各种功能,我会在模块介绍中提到具体用法。

  那么废话不多说,我们开始吧。

  首先附上效果图。

  这是整个电路的鸟瞰截图。

  这些模块环环相扣,先从原理说起吧。

  原理

  Tellraw可以通过选择器事件来显示和say一样的效果,那么我们可以通过只选择一个实体的方法来实现在tellraw中自定义文本。这一点我在很久之前的帖子里屡次提到或用到。而点击事件也可以用于制作软键盘。综合两点可以做出不错的效果。

  原理完!

  下面分模块进行讲解。

  软键盘-防溢出模块

  下面是一个指令样本。

  tellraw @a [{"text":"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn","color":"green"},{"selector":"@e[-8,4,1,r=0,name=!print]"},{"selector":"@e[-8,4,2,r=0,name=!print]"},{"selector":"@e[-8,4,3,r=0,name=!print]"},{"selector":"@e[-8,4,4,r=0,name=!print]"},{"selector":"@e[-8,4,5,r=0,name=!print]"},{"selector":"@e[-8,4,6,r=0,name=!print]"},{"selector":"@e[-8,4,7,r=0,name=!print]"},{"selector":"@e[-8,4,8,r=0,name=!print]"},{"selector":"@e[-8,4,9,r=0,name=!print]"},{"selector":"@e[-8,4,10,r=0,name=!print]"},{"text":"n"},{"text":"【←】","color":"green","clickEvent":{"action":"run_command","value":"/tp @e[0,4,-1000,dz=2000,dx=0,dy=0,type=ArmorStand] ~ ~ ~10 "}},{"text":" "},{"selector":"@e[0,4,1,r=0]","clickEvent":{"action":"run_command","value":"/setblock -7 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,2,r=0]","clickEvent":{"action":"run_command","value":"/setblock -8 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,3,r=0]","clickEvent":{"action":"run_command","value":"/setblock -9 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,4,r=0]","clickEvent":{"action":"run_command","value":"/setblock -10 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,5,r=0]","clickEvent":{"action":"run_command","value":"/setblock -11 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,6,r=0]","clickEvent":{"action":"run_command","value":"/setblock -12 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,7,r=0]","clickEvent":{"action":"run_command","value":"/setblock -13 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,8,r=0]","clickEvent":{"action":"run_command","value":"/setblock -14 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,9,r=0]","clickEvent":{"action":"run_command","value":"/setblock -15 4 -4 minecraft:redstone_block"}},{"text":" "},{"selector":"@e[0,4,10,r=0]","clickEvent":{"action":"run_command","value":"/setblock -16 4 -4 minecraft:redstone_block"}},{"text":"【→】n","color":"green","clickEvent":{"action":"run_command","value":"/tp @e[0,4,-1000,dz=2000,dx=0,dy=0,type=ArmorStand] ~ ~ ~-10 "}},{"text":"n"},{"selector":"@e[-10,4,1,r=0,name=!check]"},{"selector":"@e[-10,4,2,r=0,name=!check]"},{"selector":"@e[-10,4,3,r=0,name=!check]"},{"selector":"@e[-10,4,4,r=0,name=!check]"},{"selector":"@e[-10,4,5,r=0,name=!check]"},{"selector":"@e[-10,4,6,r=0,name=!check]"},{"text":"n","clickEvent":{"action":"run_command","value":"say hi"}},{"text":" [ Q ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 16 minecraft:redstone_block"}},{"text":"[ W ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 22 minecraft:redstone_block"}},{"text":"[ E ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 4 minecraft:redstone_block"}},{"text":"[ R ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 17 minecraft:redstone_block"}},{"text":"[ T ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 19 minecraft:redstone_block"}},{"text":"[ Y ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 24 minecraft:redstone_block"}},{"text":"[ U ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 20 minecraft:redstone_block"}},{"text":"[ I ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 8 minecraft:redstone_block"}},{"text":"[ O ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 14 minecraft:redstone_block"}},{"text":"[ P ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 15 minecraft:redstone_block"}},{"text":" │ ENTER │n","clickEvent":{"action":"run_command","value":"say hi"}},{"text":" [ A ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 0 minecraft:redstone_block"}},{"text":"[ S ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 18 minecraft:redstone_block"}},{"text":"[ D ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 3 minecraft:redstone_block"}},{"text":"[ F ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 5 minecraft:redstone_block"}},{"text":"[ G ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 6 minecraft:redstone_block"}},{"text":"[ H ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 7 minecraft:redstone_block"}},{"text":"[ J ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 9 minecraft:redstone_block"}},{"text":"[ K ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 10 minecraft:redstone_block"}},{"text":"[ L ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 11 minecraft:redstone_block"}},{"text":" ","clickEvent":{"action":"run_command","value":"say hi"}},{"text":"│ 删除文字│n","clickEvent":{"action":"run_command","value":"/setblock -15 5 -2 minecraft:redstone_block"}},{"text":" [ Z ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 25 minecraft:redstone_block"}},{"text":"[ X ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 23 minecraft:redstone_block"}},{"text":"[ C ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 2 minecraft:redstone_block"}},{"text":"[ V ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 21 minecraft:redstone_block"}},{"text":"[ B ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 1 minecraft:redstone_block"}},{"text":"[ N ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 13 minecraft:redstone_block"}},{"text":"[ M ]","clickEvent":{"action":"run_command","value":"/setblock -15 4 12 minecraft:redstone_block"}},{"text":" "},{"text":" │ 删除拼音 │","clickEvent":{"action":"run_command","value":"/setblock -15 4 -2 minecraft:redstone_block"}}]

  其效果如上方动图所示。

  所有点击事件均为放置红石块,由于这个系统并未实装,所以enter那里并未实装命令。

  其原理为

  读取字库召唤出来的同音字纸条,纸条上每个盔甲架都代表着一个字,模块的读取长度为10个字。那么我们就应该要注意一点,字在多于十个的时候我们要提供翻页功能。但是我们不能翻的太过头,否则模块读取不到字。

  那么我们就需要探测这个纸条是否已经到了头,那么我们就要对超出的部分进行探测,一旦没有超出的部分,那就代表着已经翻到了头,这时候就需要消除掉那处的点击事件,也就是换一条指令。(虽然别的办法也行,不过这样最简单粗暴)

  /scoreboard players set l end 0

  /testfor @e[0,4,0,dz=-100]

  /scoreboard players set l end 1 (con模式)

  这是一组探测是否能够向左翻的指令,向右的指令结构相同。

  /scoreboard players test r end 1 1

  /scoreboard players test l end 1 1 (con模式)

  /tellraw (con模式)

  这里是一个探测的例子,用于探测指令状态。

  由于左边和右边各有两种可能,所以总共需要四条序列。不同的tellraw有着不同的翻页状态。

  缓存模块

  也就是中间那两行目标所在的位置,这个位置呢是非常有趣的。白桦木木板那一行所存储的是拼音,因为拼音最多的可能性为6个字母,所以这里也就有六个位置。橡木木板那一行所存储的是打出的字,作为一个中继缓存。按下enter可以将打好的字转移到指定的位置。

  每行有一个属于自己的指针。拼音那一行由于需要读取数据所以有一排盔甲架。图中的命令方块仅为召唤盔甲架使用,不影响运行。

  summon ArmorStand ~ ~ ~ {CustomName:"set",NoGravity:1,Marker:1}

  这是一个样例的指令。

  读取拼音内容的盔甲架名为set

  拼音行指针名为check

  文字行指针名为print

  按键录入模块

  首先上方有一排高频,用于读取拼音行的内容。

  /scoreboard players set @e[name=set] end 0

  /execute @e[name=a] ~-1 ~ ~ /scoreboard players set @e[r=0,name=set] end 1

  /execute @e[name=b] ~-1 ~ ~ /scoreboard players set @e[r=0,name=set] end 2

  …

  /execute @e[name=y] ~-1 ~ ~ /scoreboard players set @e[r=0,name=set] end 25

  /execute @e[name=z] ~-1 ~ ~ /scoreboard players set @e[r=0,name=set] end 26

  A-Z对应数字1-26,空格对应数字0。

  然后接下来是26排命令方块,对应各个字母,执行一次输入字母的工作。

  以字母A为例。

  /setblock ~1 ~ ~ air

  /execute @e[name=check] ~ ~ ~ kill @e[r=0,name=!check]

  /execute @e[name=check] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:"a",NoGravity:1,Marker:1}

  /execute @e[name=check] ~ ~ ~ detect ~ ~-1 ~1 planks -1 /tp @e[name=check] ~ ~ ~1

  清理一次本格内容以防bug。然后写下“A”,最后向右移动一次指针。

  删除模块

  和边上的录入模块工作原理很类似。

  同样的,有删除拼音和删除文字两排指令。

  /setblock ~1 ~ ~ air

  /execute @e[name=print] ~ ~ ~ detect ~ ~-1 ~-1 planks -1 /tp @e[name=print] ~ ~ ~-1

  /execute @e[name=print] ~ ~ ~ kill @e[r=0,name=!print]

  kill @e[0,4,-1000,dz=2000,dx=0,dy=0,type=ArmorStand]

  最后的kill指令是为了刷新候选字。

  候选字模块

  如图所示,我们有十个候选字。

  每个候选字的处理方式如下

  /setblock ~ ~ ~1 air

  /execute @e[name=print] ~ ~ ~ kill @e[r=0,name=!print]

  /tp @e[0,4,1,r=0] @e[name=print]

  kill @e[0,4,-1000,dz=2000,dx=0,dy=0,type=ArmorStand]

  /execute @e[name=print] ~ ~ ~ detect ~ ~-1 ~1 planks -1 /tp @e[name=print] ~ ~ ~1

  /kill @e[-10,4,0,dz=10,name=!check]

  /tp @e[name=check] ~ ~ 1

  差不多意思就是汉字指针清除本格内容防止bug,将现有的候选字传送至指针位置,清除剩余候选字,移动指针。清除拼音。

  字库

  字库是个非常浩大的工程,本输入法支持20811个字,其中不同多音字视为各音节不同的字,累计103个多音字。

  那么这个大的字库我总得有个调用的好办法吧?否则实在是难以使用。

  上文对拼音的详解已经说明了调用办法。

  下文以音“中”为例。

  中= ZHONG

  ={26,8,15,14,7,0}

  以这样一个变幻方式我们可以将任何一个音变为一组6个的数组。

  汉语一共有406种音,所以我们会有406排命令方块。

  这是读取zhong音的命令。

  /execute @e[-11,4,1,r=0,name=set,score_end=26,score_end_min=26] ~ ~ ~ /execute @e[-11,4,2,r=0,name=set,score_end=8,score_end_min=8] ~ ~ ~ /execute @e[-11,4,3,r=0,name=set,score_end=15,score_end_min=15] ~ ~ ~ /execute @e[-11,4,4,r=0,name=set,score_end=14,score_end_min=14] ~ ~ ~ /execute @e[-11,4,5,r=0,name=set,score_end=7,score_end_min=7] ~ ~ ~ /testfor @e[-11,4,6,r=0,name=set,score_end=0,score_end_min=0]

  我们可以很清楚的看到6个数字所代表的位置。

  kill @e[0,4,-1000,dz=2000,dx=0,dy=0,type=ArmorStand]

  然后我们会激活一串清理现在的候选字的指令。

  summon ArmorStand 0 ~ ~ {CustomName:"中",Invisible:1,NoGravity:1,Marker:1}

  然后会在x=0的位置召唤出一条候选字纸带。

  故此我们才能够完整的使用汉字输入法,那么就是这样,希望大家喜欢。

  PS:在此非常感谢我的世界玩家乙烯_中国的分享。

  以上就是吊爆了的汉字输入法 我的世界拼音输入法原理详解。更多精彩尽在游戏园我的世界专区。

  最新热门攻略推荐:

  MC生物介绍 猪/牛/羊/鸡都是过年吃的动物

  红石党福利种子 红石最爱1.8.9地图种子详解

  我的世界惊现岩浆和水共存现象

  我的世界村民的用处 小伙伴们养个村民吧

热门搜索

手游排行榜

  • 最新排行
  • 最热排行
  • 评分最高