cnCalc计算器论坛 [原fx-es(ms)论坛]

 找回密码
 注册
搜索
查看: 24856|回复: 60

[Nspire] TI-Nspire Lua简介&资源整合

[复制链接]
发表于 2013-9-29 20:54:14 | 显示全部楼层 |阅读模式
(P.S:此贴不接受任何与此帖本身内容无关的提问,包括但不限于Lua类技术问题)

前言


自从TI-Nspire系列(以下简称NS)更新至OS3.0以后,加入了对Lua脚本的支持。
根据国外的资料来看,NS使用的是一个轻量化的Lua 5.1.4引擎。尽管去除了os、io与file库(这也使对NS中的文件操作成为不可能),但是TI又加入了大量的API,使其与标准Lua有很大的不同。而且,自从更新至API 2.0 (需要OS3.2)以来,NS中加入了一个2D物理引擎Chipmunk Physics,使得一些游戏的编写成为可能。
使用Lua的好处是起点低、开发效率较高、使用程序几乎无风险,同时可以很容易做到跨平台(例如我的iRead II),但是无论是效率还是功能比ndless的程序还是稍逊一筹。当然Lua目前也是OS3.2中唯一的SDK解决方案。

但是国内目前对Lua的研究非常少,无论是程序资源还是开发资料都比较少(如果发现有什么好的资源请在本贴回复补充,另外此贴会定期进行更新)。


一、现有程序/游戏

国内程序与游戏比较好的主要有以下这些(有多个版本的仅贴出最新版本,排名不分先后):

imath:

iDict6 Air
一款简洁易用的英汉词典

iNote2
一款简洁的笔记本

Xcode_Framework
一款可以快速为TI-Basic程序构造简易GUI界面的程序

iMatrix
一款可以快速显示矩阵的程序

iWrite3
一款文本编辑器

ExAcler:

Advanced Plotter
类似HP Prime高级绘图功能的绘图工具

eLyrics I
实时歌词显示软件

eAlbum
很方便的图片查看器

Fawpad Air
一款五子棋游戏,有简易AI

2048 GX
一款很有意思的益智游戏

zsdsgjb:

常用测量V1.0
适合工程测绘人员使用

秒表计时程序V1.3
小巧的秒表计时程序

wtof1996:

iRead II
简单易用的电子书阅读程序,可将txt转换为tns

二、开发资料

首先,你需要有一定的Lua语言基础(语法,一些标准库函数等)。如果没有的话建议去找一本教程自学一下(随便搜一下就有一大堆),而且如果有其他编程语言基础估计几个小时就可以上手了。
然后就是看官方的API手册,当然阅读他人的程序也是很好的方法。
另外也可以参考一下这个教程:https://www.cncalc.org/forum.php?mod=viewthread&tid=12768

NS的Lua通常需要在PC上进行开发,方法主要有以下这些:

1.使用TI-Nspire 系列软件中的Script Editor(脚本编辑器)

即使用常说的“官方模拟器”即可进行编辑,需要3.2以上版本。
使用方法很简单,新键一个页面然后执行(见下图):
Insert > Script Editor > Insert Script

插入->脚本编辑器->插入脚本

Insert Script.PNG

之后会提示为脚本命名,当然可以也直接留空,然后就可以开始编辑了。

Script Tit;e.PNG

使用这个方法的好处是可以为脚本的源代码加密(见下图),也可以进行一些调试,因此如果你想阅读一个tns中内嵌的Lua源代码只能使用官方模拟器了。

Script pass.PNG

但是由于官方软件一般是不会免费提供的(比如说国行/二手用户),因此就有了下面的其他方法。

2.使用第三方文本编辑器&Lua Booster/Luna

国外的ExtendeD大神写出了一个命令行工具Luna,可以直接将Lua脚本转化为tns。
因此如果你没有官方模拟器也没关系,你只需要去找个第三方的文本编辑器,比如说Notepad++, Scite...... (如果你喜欢记事本也可以:-D)然后把源代码保存成lua文件,在实体机上调试。

缺点是文档只有一页(即Lua脚本,不过一般情况下也够了),而且不能对源代码进行加密,因此如果要有多个页面需要在实体机上进行进一步的操作然后重新保存文件。

由于CUI界面用起来毕竟不是很方便,因此LZ编写了Lua Booster工具集。其中的iLua就整合了Luna,不但可以作为一个GUI的"编译器",同时也在一定程度上的提供了类似C语言的文件包含功能。
(以上工具请在本楼最后下载)

3.使用机上Lua编程
最初同样是ExtendeD大神发现了Lua在实体机内部的一些接口,于是就有了这些:

oclua
用法很简单:新建一个页面,插入一个记事本应用,然后写一些代码,最后全选并复制粘贴至1.1页中即可。也可以看下面作者做的GIF演示(GIF上面的黑线大家无视掉好了...):
oclua.gif
以下是适用于不同的API版本(关于API版本参见TI的API参考)的oclua

API 1.0(OS>= 3.0):
oclua_API1.0.tns (1.71 KB, 下载次数: 65)

评分

参与人数 2金钱 +13 专家 +1 贡献 +2 收起 理由
ExAcler + 3 很给力!
lch + 10 + 1 + 2 很给力!

查看全部评分

 楼主| 发表于 2013-9-29 20:54:15 | 显示全部楼层
本帖最后由 wtof1996 于 2013-9-30 17:48 编辑

三、国外优秀资源整合

如果大家发现了什么优秀的资源,欢迎在论坛进行转载(建议自行开新主题),我会在这里进行补充。
(以下资源若无明确指出,均转自ticalc)

(1)游戏

p.s:如果国外的Lua程序在运行时提示不支持"setAlpha"之类的问题(通常是早期的一些程序),请自行将相关代码行注释/删除然后重新保存tns文件(一般均可正常运行脚本,这是一个早期用于调整Alpha通道的函数,但是未在官方文档中给出,因此在后期的OS中就不支持了),一般在程序中的zip都可以找到对应的lua源代码文件。

ActionSnake
一款小巧的贪吃蛇游戏
09-23-2013 Image001.png 09-23-2013 Image002.png
actionsnake.zip (44.24 KB, 下载次数: 372)
 楼主| 发表于 2013-9-29 20:54:16 | 显示全部楼层
本帖最后由 ExAcler 于 2014-4-22 01:24 编辑

Hangman
很古老的西方猜单词游戏,规则可参见 wiki
09-28-2013 Image005.png
hangman.zip (26.08 KB, 下载次数: 118)
 楼主| 发表于 2013-9-29 20:54:17 | 显示全部楼层
(预备更新用)
 楼主| 发表于 2013-9-29 20:54:18 | 显示全部楼层
(预备更新用)
 楼主| 发表于 2013-9-29 20:54:19 | 显示全部楼层
本帖最后由 wtof1996 于 2013-9-29 21:21 编辑

(2)一般程序

nSpaint
一款画图软件,同时附带一个动画软件
09-29-2013 Image002.png 09-29-2013 Image003.png
nspaint.zip (47.77 KB, 下载次数: 204)
 楼主| 发表于 2013-9-29 20:55:54 | 显示全部楼层

(占楼预备更新用)
 楼主| 发表于 2013-9-29 20:56:36 | 显示全部楼层
(预备更新用占楼)
发表于 2013-9-29 22:19:48 来自手机 | 显示全部楼层
挺棒的。研究lua的人本就不多。而我到目前只有一本官方lua参考手册...所以非常感谢楼主。
发表于 2013-9-30 12:46:18 | 显示全部楼层
这个必须顶;
发表于 2013-10-2 10:25:57 | 显示全部楼层
不顶伤不起啊
发表于 2013-10-2 20:41:29 | 显示全部楼层
这个得膜拜{:019:}
发表于 2013-10-6 19:29:22 | 显示全部楼层
顶小海龟!{:12_317:}
匿名人士  发表于 2013-10-21 10:51:10
不错,谢谢分享
发表于 2013-10-28 23:15:49 | 显示全部楼层
老夫聊发少年狂 已下单大黑…… 虽然目前当务之急是应付考试XD
看本帖还比较新的样子,来顶了
发表于 2013-11-1 23:30:56 | 显示全部楼层
牛啊。 。。。膜拜。。。
发表于 2014-1-12 00:26:51 | 显示全部楼层
正在努力学习中
发表于 2014-1-20 11:00:39 | 显示全部楼层
顶!
发表于 2014-2-21 14:59:47 | 显示全部楼层
复制文件时说不是TI的文件,不能复制进机器,怎么解决呢?
 楼主| 发表于 2014-2-25 15:18:40 | 显示全部楼层
lol 发表于 2014-2-21 14:59
复制文件时说不是TI的文件,不能复制进机器,怎么解决呢?

如果是Zip格式的麻烦解压后将其中的tns文件传入即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|Archiver|手机版|cnCalc计算器论坛  

GMT+8, 2019-1-18 18:06 , Processed in 0.098981 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表