|
Casio fx9860 编译环境使用太痛苦 使用不习惯C语言的我是种折磨
新版的9750已经可以支持usb插拔交换数据 直接读取文本文件经测可行
所以从开发流程的角度来说,基于“设计-C语言-虚拟机仿真-真机运行” 效率还是存在问题
考虑到用Lua封装fxapi ,爬过很多了坑之后,终于让屏幕上显示出字符,
lua 的api基本和sdk一致
常见函数:(逐渐更新中)
locate(x,y)
print("..",x,y)
key() 阻塞的输入函数
iskeydown(a,b) 无阻塞的输入函数 基于sh4版本
还有一些简单的图形函数 如line rectangle cycle clear buffer_blit等
- lua_register(L, "locate", lua_locate);
- //print
- lua_register(L, "print", lua_print);
- lua_register(L, "printi", lua_printi);
- lua_register(L, "printr", lua_printr);
- lua_register(L, "iskeydown", lua_keydown);
- //graphics
- lua_register(L, "line", lua_drawline);
- lua_register(L, "key", lua_getKey);
- lua_register(L, "clear",lua_clear_screen);
- lua_register(L, "sleep", lua_sleep);
复制代码 针对lua调试做了优化,如果遇到语法错误,会显示在屏幕上
先不谈运行效率问题,直接上图
编辑页面
设计-lua平台编码-真机运行 实现一个简单文本浏览功能 代码看起来比Python要简洁,对缩进要求没有那么严格,
只是学习贴 不谈效率 更不谈优化 没有任何实用价值 完善后开源
- edit = {
- cx = 3,
- cy = 1,
- t = 1
- }
- content = {
- "VVVVV somthing",
- "forexample"
- }
- function drawcaret()
- if math.abs(math.ceil(math.sin(edit.t/10.0))) == 1 then
- locate(edit.cx,edit.cy)
- print("_")
- end
- end
- function draw()
- clear()
- for i,v in ipairs(content) do
- locate(1,i)
- print(v)
- end
- toolbar()
- drawcaret()
- end
- function toolbar()
- locate(1,8)
- printr("F_1")
- locate(5,8)
- printr("F_2")
- locate(9,8)
- printr("F_3")
- end
- while (true) do
- k = key()
- if iskeydown(2,9) then --up
- if edit.cy > 1 then
- edit.cy = edit.cy - 1
- end
- end
- if iskeydown(3,8) then --down
- if edit.cy < #content then
- edit.cy = edit.cy + 1
- end
- end
- if iskeydown(3,9) then --left
- if edit.cx > 1 then
- edit.cx = edit.cx - 1
- end
- end
- if iskeydown(2,8) then --right
- edit.cx = edit.cx + 1
- end
- draw()
- sleep(1)
- edit.t = edit.t + 1
- if edit.t>10000 then
- edit.t = 0
- end
- end
复制代码
|
-
icon
|