说明这几天没有更新主要是因为回家了,有些琐事,而且家里没网又跑去镇里的营业厅办网花费

了一些时间。我到铁血丹心论坛(专业的金庸群侠传mod论坛)上逛了一下,浏览了一些高手的帖子,

决定先做一个rpg游戏的框架,资源的加载采取插件的形式,这样以后可以更方便的重用已有的代码。

这篇是gui的继续,由于loveframe不支持中文,我便有了直接实现一个中文输入法的想法。由于还

没有完全实现,而且loveframe连显示中文都不支持,只做了一个非常简单的示例。

中文输入法就是一个转换器,把我们输入的音码/形码/其它码,转换为汉字,要想实现这种转换需要一个转码表。

我到百度文库里找到了一个所有汉字拼音的码表,用查找替换加手动修改

做成了一个lua的table(惭愧,使用Linux却不会用sed和awk),部分代码如下:

string_zh_cn       ={}
string_zh_cn.a     ={"啊","阿","嗄","腌","锕","錒",}
string_zh_cn.ai    ={"爱","矮","挨","哎","碍","癌","艾","唉","哀",

还有的字省略

,}

在main.lua里首先检测键盘,把输入的拼音到string_zh_cn里查表,把查到的汉字先保存到一个临时的

汉字表里。如果临时表里的汉字个数小于9,则直接显示,若大于9则分页显示,“=”键下翻页,“-”

键下翻页。效果如图:(现在还无法删除屏幕上的汉字,希望读者指正)

main.lua如下

require('string_zh_cn')local lg=love.graphics
pinyin="" --拼音
hanzi={} --显示的汉字
page=1 --页数
zi="" --选择的字--从输入的pinyin查string_zh_cn表里对应的汉字
function getHanzi(pinyin)--pinyin对应的所有汉字表local tmp= string_zh_cn[pinyin]--只从得到的汉字表tmp里取出9个if tmp thenif(#tmp >9) then--判断某个拼音下汉字的个数可以分成几个组(每组9个)local rows=math.ceil(#tmp/9) --page是页数,按“=”页数加1,“-”页数减1if page>rows thenpage=rowselseif page<1 thenpage=1endfor i=1,9 do--把取出的9个汉字放到hanzi表里hanzi[i]=tmp[i+(page-1)*9]endelsehanzi=tmpendelsehanzi={}end
endfunction love.load()--设置中文字体font=lg.newFont("YaHeiConsolas.ttf",18)lg.setFont(font)
endfunction love.update()getHanzi(pinyin)
endfunction love.draw()lg.print("fps: " .. love.timer.getFPS(), 20,20)lg.print("请输入拼音:" .. pinyin,100,100)lg.print("汉字:".. zi,300,100)if hanzi thenfor i,v in ipairs(hanzi) do        lg.print(i .. "." .. v,100+i*40,140)if love.keyboard.isDown(i .. "") thenpinyin=""zi=zi..vendendend
endfunction love.keypressed(key, unicode)--输入拼音local chars="abcdefghijklmnopqrstuvwxyz"if(string.find(chars,key)) thenpinyin=pinyin .. keyendif key=="backspace" thenpinyin=string.sub(pinyin,1,string.len(pinyin)-1)--[[if pinyin~="" thenpinyin=string.sub(pinyin,1,string.len(pinyin)-1)else--按退格键删除一个汉字 此处有问题hanzi=string.sub(hanzi,1,string.len(hanzi)-2)end]]endif key=="=" thenpage=page+1endif key=="-" thenpage=page-1endend

接下来会继续探讨碰撞检测,物理效果,把gui先放到一边.

代码下载(已clone的直接git pull),字体我放到font目录下。
git clone git://gitcafe.com/dwdcth/love2d-tutor.git
或git clone https://github.com/dwdcth/mylove2d-tutor-in-chinese.git

love2d教程16--简单拼音中文输入法相关推荐

  1. 阿里云ECS服务器环境搭建(2) —— ubuntu 16.04 安装中文输入法(搜狗输入法)

    阿里云ECS服务器环境搭建(2) -- ubuntu 16.04 安装中文输入法(搜狗输入法) 1. 环境 阿里云 ECS服务器 (4核 8G 4M) Ubuntu16.04-64-bit 图形界面 ...

  2. qt平台集成google拼音中文输入法

    qt自5.7.0版本后自带了qtvirtualkeyboard模块,在示例程序里面用过输入法demo,确实很赞,支持各国语言的输入法,中文输入法集成的google智能拼音,支持模糊拼音输入.很遗憾的是 ...

  3. android 繁体输入法,教程:白子繁体中文输入法v2.3.8 Android版

    Baizi繁体中文输入法是一款功能强大且非常易于使用的手机软件.它可以支持多种输入法,例如中文手写输入,传统语音输入,传统仓jie输入和英文输入.欢迎从当义下载! "百子"繁体中文 ...

  4. 使用lua开发游戏--love2d教程汇总

    说明,我只是在网上浏览时发现了"金庸群侠传lua复刻版",有源码,基于sdl使用C语言,我大概看了 一下不是很懂.后来发现了love2d,也是基于sdl,于是便有了用love2d再 ...

  5. 【原创】在RT1050 LittleVgl GUI中嵌入中文输入法框架

    时隔一年多终于又冒泡了,哎,随着工作越来越忙,自己踏实坐下来写点东西真是越来越费劲,这篇文章也是准备了好久好久才打算发表出来(不瞒大家,东西做完好久了,文章憋了一年了,当真"高产" ...

  6. WSL2 安装中文输入法教程 简单有效

    很多教程我都参考过 大多有问题 只有这个简单明了实用 WSL2安装中文输入法教程 https://monkeywie.cn/2021/09/26/wsl2-gui-idea-config/

  7. 树莓派系统汉化教程(汉语+中文字体库+中文输入法pinyin(拼音))

    目录 一.语言和区域设置 1.在putty登录树莓派,在命令行输入sudo nano raspi-config,然后回车如下图: 2.选择 5 Localisation Options Configu ...

  8. 树莓派4B-安装中文输入法Fcitx及Google拼音输入法

    树莓派安装Google拼音输入法 在安装之前请确保你的软件源已经切换国内否则可能因为网络问题安装失败 更换软件源教程:树莓派更换国内软件源 安装中文输入法时,需要使用到Fcitx框架,Fcitx 内置 ...

  9. 树莓派3 基于Ubuntu mate 16.04的调用中文输入法

    其实这个操作比较简单,不过还是纪念一下,在树莓派上写的第一篇简书吧,因为这样才能显示确实可以使用拼音输入了...嘎嘎嘎,不过说实话,树莓派运行起来真的超级慢..上传一张照片都要抓狂. 然后输入命令:s ...

最新文章

  1. 一起谈.NET技术,保护您的 Silverlight 应用程序的安全
  2. Bag-of-words model
  3. ArcGIS Pro 制作与发布高程服务Elevation Layer
  4. ASP.NET Core微服务(五)——【vue脚手架解析接口】
  5. 【完整可运行代码】剑指 Offer 29. 顺时针打印矩阵
  6. how is Customizing activity launched by ABAP Framework
  7. 低代码开发平台_低代码开发平台系列:6、低代码是编程技术发展大势所趋
  8. openoffice转化太慢且不能多线程_专访橙光卿蓝蓝:多线程IP如何赢在起跑线?丨制鲜者IP作者...
  9. windows 批处理设置环境变量
  10. Java Portlets 介绍
  11. python 开发公众号sdk_「公众号开发」基于Serverless架构Python实现公众号图文搜索...
  12. 使用cgroup限制某个程序对内存的使用
  13. java的split的正则_Java正则表达式之split()方法实例详解
  14. Pyrene-PEG-Biotin,芘丁酸聚乙二醇生物素,Biotin-PEG-Pyrene
  15. xlsx格式表格汉字批量转音节,不带声调(python)
  16. PC端微信图片的解密
  17. java 集成支付宝支付
  18. csgo调出参数_CSGO控制台全方位使用教程 控制台常用命令及参数说明
  19. python更新的命令_python升级命令
  20. gossiping路由协议仿真

热门文章

  1. UFLDL Tutorial Exercise
  2. 目标检测论文笔记二:CenterNet《Objects as Points》
  3. 物联网网关BL110对接华为云
  4. 《狙击手:幽灵战士》屏幕发白之解决
  5. 周志华机器学习--模型评估与选择
  6. 【原创诗歌】慢慢的时光
  7. 老子《道德经》第二十七章
  8. vivo的android是什么手机,酷派回归了!或成OPPO、vivo最大劲敌,2021安卓“机皇”会是谁?...
  9. 计算机输入法无法显示,电脑不显示输入法该怎么办?显示输入法的方法介绍
  10. ssh的tunnel设置+autossh设置