cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 73560|回复: 72

[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, 下载次数: 87)
API 2.0(OS>=3.2):
oclua_API2.0.tns (1.75 KB, 下载次数: 204)

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


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



相关网站以及开发工具:

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

2.Luna
见以下附件
luna-v0.31-beta1.zip (1.09 MB, 下载次数: 422)

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

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

4.Inspired-Lua Wiki(英文)

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

评分

参与人数 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, 下载次数: 439)

Alien Invaders
经典游戏的NS复刻版本
09-23-2013 Image003.png
aliens.zip (4.64 KB, 下载次数: 242)

Block Dude Nspire
来自TI-84+的经典复刻游戏  
09-24-2013 Image001.jpg
blockdude.zip (6.67 KB, 下载次数: 227)

Bobby Carrot
这个论坛里面已经有转载了,参见连接中的帖子即可。
09-24-2013 Image002.png

Checkers
这个跳棋游戏应该是英国跳棋,玩法参见 wiki
checkers_screen3.gif
checkers.zip (113.9 KB, 下载次数: 207)

ColorTetris
比较好玩的一款俄罗斯方块,有三种游戏模式可选。(P.S:可能存在SetAlpha问题)
Screen1.jpg Screen2.jpg
colortetris.zip (34.61 KB, 下载次数: 331)

CubeField
类似安卓上的Cube Runner的一款小游戏
09-28-2013 Image001.png
cubefield.zip (4.52 KB, 下载次数: 193)

DoodleJump4nSpire
涂鸦跳跃的NS版本
09-28-2013 Image002.png
doodlejump4nspire.zip (22.05 KB, 下载次数: 414)

FreeCell
著名游戏空当接龙的NS版本
ScreenShot.png
freecell.zip (23.28 KB, 下载次数: 242)

Gravity Guy
著名游戏Gravity Guy的NS版本(注:建议CX使用,非CX可能效果很不好)
09-28-2013 Image004.png
gravityguy.zip (24.02 KB, 下载次数: 249)

 楼主| 发表于 2013-9-29 20:54:16 | 显示全部楼层
本帖最后由 ExAcler 于 2014-4-22 01:24 编辑

Hangman
很古老的西方猜单词游戏,规则可参见 wiki
09-28-2013 Image005.png
hangman.zip (26.08 KB, 下载次数: 156)

Jens' Bomberman Rush
一款很不错的炸弹人游戏
09-29-2013 Image001.png
jensbombermanrush.zip (14.81 KB, 下载次数: 265)

Klondike
win中自带的纸牌游戏的NS版本,规则可参见 wiki
09-29-2013 Image002.png
klondike.zip (62.72 KB, 下载次数: 224)

Mazes3D
迷宫游戏
09-29-2013 Image003.png
mazes3d.zip (4.95 KB, 下载次数: 310)

Minesweeper
扫雷的NS版本
09-29-2013 Image005.png
minesweeper.zip (5.21 KB, 下载次数: 422)

PacMan
经典游戏吃豆人的复刻版本
Screenshot1.png Screenshot2.png
pacman.zip (31.55 KB, 下载次数: 376)

Pixel Escape
有点像以前手机上直升机飞行那种类型的游戏,大家看截图应该就明白是什么了......
09-29-2013 Image003.png
pixel_escape.zip (36.44 KB, 下载次数: 336)

RushHour
这款游戏源自ThinkFun公司的同名游戏,具体怎么玩大家看下面的GIF应该就明白了
RushHourSpritesMovie.gif
rushhour.zip (102.74 KB, 下载次数: 272)

The Squares Do Not Die
一款很有意思的射击游戏。
此游戏曾在2012 Omnimaga Summer Programming Contest Nspire Category中获得第一名。
SquaresDontDie.gif
thesquaresdonotdie.zip (166.07 KB, 下载次数: 470)

Jen's Minecraft 2D
经典游戏《我的世界》的复刻版本,画面为 2D 效果 (有些不爽……)。
215237khhgwjxqwkmwmvjy.jpg.thumb.jpg
Jen\'s Minecraft 2D 0.12.2.tns (72.9 KB, 下载次数: 308)

FlappySpire
像素鸟的移植版本,该版本画面效果最接近原版。
225510ibqdf6077p676qpq.jpg.thumb.jpg
FlappySpire.tns (55.51 KB, 下载次数: 484)


 楼主| 发表于 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, 下载次数: 257)

base converter nspire
一款进制转换软件,最高支持36进制
09-29-2013 Image004.png
baseconverternspire.zip (14.44 KB, 下载次数: 208)

bode
波德图(wiki)绘制软件
09-29-2013 Image005.png
bode.zip (4.82 KB, 下载次数: 149)

mempi
源自84的辅助记忆PI的小程序,当然这里还有PHI,e.根号2等常数,全部是1000位。
09-29-2013 Image001.png
mempi.zip (17.25 KB, 下载次数: 117)

LogoMagic
还记得小学微机课上学的PC LOGO么?没错,现在有了NS版。
sierp.png
logomagic.zip (69.44 KB, 下载次数: 164)

Formula Pro
相信很多人都知道89或者92上的EEPro吧,没错,这是NS版本!
这个看简介是给电气工程用的,不过因为专业名词太多LZ也看不懂这个是干什么的,学电气的可以下载下看看。
09-29-2013 Image001.png
formulapro.zip (438.22 KB, 下载次数: 2341)

SD2
微分分步求解工具,论坛已有转载。
09-29-2013 Image002.png

 楼主| 发表于 2013-9-29 20:55:54 | 显示全部楼层

(占楼预备更新用)
 楼主| 发表于 2013-9-29 20:56:36 | 显示全部楼层
(预备更新用占楼)
发表于 2013-9-29 22:19:48 来自手机 | 显示全部楼层
挺棒的。研究lua的人本就不多。而我到目前只有一本官方lua参考手册...所以非常感谢楼主。
发表于 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文件传入即可
发表于 2014-2-28 08:25:13 | 显示全部楼层
wtof1996 发表于 2014-2-25 15:18
如果是Zip格式的麻烦解压后将其中的tns文件传入即可

谢谢,成功了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-3-29 05:11 , Processed in 0.081619 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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