wtof1996 发表于 2013-9-29 20:54:14

TI-Nspire Lua简介&资源整合

(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

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



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



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



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

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上面的黑线大家无视掉好了...):

以下是适用于不同的API版本(关于API版本参见TI的API参考)的oclua

API 1.0(OS>= 3.0):

API 2.0(OS>=3.2):


Jens' Script Editor
这是一个很好用的机上Lua 编辑器,目前本人已汉化。


LuaCS2
由Levak大大编写的一个简单机上Lua IDE。内部整合了oclua,适合新手练习API。
LuaCS2 下载


相关网站以及开发工具:

1. Lua Booster II
一个TI-Lua辅助开发工具集,提供了图片转换、菜单代码生成、预处理器&"编译器"等功能,可有效提高效率。

2.Luna
见以下附件


2.TI官方的Lua相关页面(英文)

3.TI官方的Lua API参考(中文)

4.Inspired-Lua Wiki(英文)

5.Compasstech上TI的教程(英文)

wtof1996 发表于 2013-9-29 20:54:15

本帖最后由 wtof1996 于 2013-9-30 17:48 编辑

三、国外优秀资源整合

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

(1)游戏

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

ActionSnake
一款小巧的贪吃蛇游戏



Alien Invaders
经典游戏的NS复刻版本



Block Dude Nspire
来自TI-84+的经典复刻游戏



Bobby Carrot
这个论坛里面已经有转载了,参见连接中的帖子即可。


Checkers
这个跳棋游戏应该是英国跳棋,玩法参见 wiki 。



ColorTetris
比较好玩的一款俄罗斯方块,有三种游戏模式可选。(P.S:可能存在SetAlpha问题)



CubeField
类似安卓上的Cube Runner的一款小游戏



DoodleJump4nSpire
涂鸦跳跃的NS版本



FreeCell
著名游戏空当接龙的NS版本



Gravity Guy
著名游戏Gravity Guy的NS版本(注:建议CX使用,非CX可能效果很不好)



wtof1996 发表于 2013-9-29 20:54:16

本帖最后由 ExAcler 于 2014-4-22 01:24 编辑

Hangman
很古老的西方猜单词游戏,规则可参见 wiki



Jens' Bomberman Rush
一款很不错的炸弹人游戏



Klondike
win中自带的纸牌游戏的NS版本,规则可参见 wiki



Mazes3D
迷宫游戏



Minesweeper
扫雷的NS版本



PacMan
经典游戏吃豆人的复刻版本



Pixel Escape
有点像以前手机上直升机飞行那种类型的游戏,大家看截图应该就明白是什么了......



RushHour
这款游戏源自ThinkFun公司的同名游戏,具体怎么玩大家看下面的GIF应该就明白了



The Squares Do Not Die
一款很有意思的射击游戏。
此游戏曾在2012 Omnimaga Summer Programming Contest Nspire Category中获得第一名。



Jen's Minecraft 2D
经典游戏《我的世界》的复刻版本,画面为 2D 效果 (有些不爽……)。



FlappySpire
像素鸟的移植版本,该版本画面效果最接近原版。




wtof1996 发表于 2013-9-29 20:54:17

(预备更新用)

wtof1996 发表于 2013-9-29 20:54:18

(预备更新用)

wtof1996 发表于 2013-9-29 20:54:19

本帖最后由 wtof1996 于 2013-9-29 21:21 编辑

(2)一般程序

nSpaint
一款画图软件,同时附带一个动画软件



base converter nspire
一款进制转换软件,最高支持36进制



bode
波德图(wiki)绘制软件



mempi
源自84的辅助记忆PI的小程序,当然这里还有PHI,e.根号2等常数,全部是1000位。



LogoMagic
还记得小学微机课上学的PC LOGO么?没错,现在有了NS版。



Formula Pro
相信很多人都知道89或者92上的EEPro吧,没错,这是NS版本!
这个看简介是给电气工程用的,不过因为专业名词太多LZ也看不懂这个是干什么的,学电气的可以下载下看看。



SD2
微分分步求解工具,论坛已有转载。


wtof1996 发表于 2013-9-29 20:55:54


(占楼预备更新用)

wtof1996 发表于 2013-9-29 20:56:36

(预备更新用占楼)

晓零辛纳 发表于 2013-9-29 22:19:48

挺棒的。研究lua的人本就不多。而我到目前只有一本官方lua参考手册...所以非常感谢楼主。

HHX-XXM 发表于 2013-10-2 10:25:57

不顶伤不起啊

sniyc 发表于 2013-10-2 20:41:29

这个得膜拜{:019:}

六合江山QQ 发表于 2013-10-6 19:29:22

顶小海龟!{:12_317:}

QQ_23B7A7 发表于 2013-10-21 10:51:10

不错,谢谢分享

Ulysses 发表于 2013-10-28 23:15:49

老夫聊发少年狂 已下单大黑…… 虽然目前当务之急是应付考试XD
看本帖还比较新的样子,来顶了

bioafanda 发表于 2013-11-1 23:30:56

牛啊。 。。。膜拜。。。

766634491 发表于 2014-1-12 00:26:51

正在努力学习中

blue_1644 发表于 2014-1-20 11:00:39

顶!

lol 发表于 2014-2-21 14:59:47

复制文件时说不是TI的文件,不能复制进机器,怎么解决呢?

wtof1996 发表于 2014-2-25 15:18:40

lol 发表于 2014-2-21 14:59 static/image/common/back.gif
复制文件时说不是TI的文件,不能复制进机器,怎么解决呢?

如果是Zip格式的麻烦解压后将其中的tns文件传入即可

lol 发表于 2014-2-28 08:25:13

wtof1996 发表于 2014-2-25 15:18 static/image/common/back.gif
如果是Zip格式的麻烦解压后将其中的tns文件传入即可

谢谢,成功了!
页: [1] 2 3 4
查看完整版本: TI-Nspire Lua简介&资源整合