前:
因为起点系统歧视英文会自动把英文改变大小写和全角半角所以在这里特别提醒:
在教程正文(除作业)出现的英文字母全部为“半角、小写”格式。
============正文分割线=============
邪恶之诅咒:
盗帖者全家死光光
无端转载者出门被狗咬
假如获得转载授权转载同时请贴出本人签字画押授权书。
本教程已在国家R界专利局申请专利禁止任何形式的侵犯版权行为。
作者联系方式:
fs_
LeVeL_1_he11o_or1d!
友情提示:在观看LeVeL1教程之前请先详细读完LeVeLo~谢谢合作~
相关指令:
*define
game
*start
end
reset
\
a
br
bsp;_
;
he11oor1d。也就是所谓的“自己动手制作的第一个程序”。
似乎在看过的基本所有程序类“入门到精通”的书里都有这东西的存在。虽然这个程序既没有乐趣也没多少成就感而且还没创意但是……
先打开我们已经建好的o.txt(其实叫2.txt或者99.txt或者别的什么也无所谓)在里面输入以下内容然后保存。
**********这里是需要复制的内容***********
;—————————-我是分隔线—————————-
*define
game
*start
你好世界。a
这是我的第一个程序。\
end
;—————————-我是分隔线—————————-
**********需要复制内容结束***********
(效果见附图)
再补充说明一下:
一般来说nscripter读取指令的时候是依靠“分行”来辨认的将每一行视为一条指令。如果有空行就会被忽略。
还要注意的是“文章(无论中文e文数字都一样)”及“标点符号”必须使用全角而作为“显示文章”标志的a和\以及其他的英文部分的指令则是使用半角的。
接下来是每条指令详细的说明……
*define“define”是e文“定义”的意思。
从*define到game之间的部分被称为ns的定义区块。这部分的主要功能是对ns的内部设置做一些修改。假如里面什么都不写的话也没关系ns会全部采用默认设置。(包括我们现在看到的那排写着“画面设定”“字体设定”的菜单栏内建存档的个数等等都是可以修改的。)而ns开始执行游戏也就是从寻找TxT文件里的*define标志开始的。(现在知道一开始只有一个exe文件的ns为什么会显示“标签*define不存在”这样的错误信息了吧?)
game表示定义部分已经完成可以开始正式的游戏了。
*start——当然就是开始游戏的意思。这部分以后就是“游戏执行区块”了。
因为有定义部分和游戏部分的区别ns本身的指令也分为三种:只能用在定义区块里的(F类指令)只能用在游戏执行区块里的(e类指令)和在两部分都可以通用的(Fe类指令)。
最后当ns执行到end指令的时候就会退出。
中间的两行刚刚已经看到了就是显示出来的文章。
你好世界。a
这是我的第一个程序。\
a和\这两个标志的意思都是“显示一段文字并且等待玩家点鼠标(或者按下enTeR键)之后才继续执行下一条指令”。如果不使用这两个标志来表示“等待”的话这两句话会在屏幕上一闪而过之后就退出了。
这两个标志的特殊还在于可以在同一行里多次出现。
类似这样的写法“你好a世界。a这是我的第一个程序。\”也是可以的。
————————————————————————-
问题一:既然同样都是作为“显示文章”的标志a标志和\标志有什么区别吗?
那么试看看把程序写成这样……
**********这里是需复制内容**********
;—————————-我是分隔线—————————-
*define
game
*start
你好世界。\
这是我的第一个程序。\
end
;—————————-我是分隔线—————————-
**********需复制内容结束**********
这一次在显示“这是我的第一个程序。”的同时“你好世界。”消失了。
\标志比a标志多了一条功能就是在显示它所在的这一行文章的同时将之前显示的文章消除。在电子里a是接着看下一行而\就是翻过一页把之前的一页清掉了。
因为屏幕或者对话框的大小是有限的如果已经显示的文章字数过了屏幕可以容纳的范围ns就会报错因此在制作电子的时候合理的使用这两个标志是很重要的基础哟。
————————————————————————-
问题二:我想在两行文字间空上一行但是ns把所有空行都s了?
因为这样ns也提供了另外一条指令。“br”其实是hTmL语言里表示空行的命令在ns里也是同样的意思。
**********这里是需要复制内容**********
;—————————-我是分隔线—————————-
*define
game
*start
你好世界。a
br
这是我的第一个程序。\
end
;—————————-我是分隔线—————————-
**********需复制内容结束**********
不用说自己看看效果吧。
————————————————————————-
问题三:每显示一段文章都一定要用a和\吗?麻烦不说要是忘了加还容易出错没有其他办法?
既然每句话结尾多少都有个感叹号句号问号之类的在制作比较大型的游戏时还要再为每行文字加一个标志确实很烦。因此ns也提供了比较简单的方法:bsp;c1ickstr就是一个F类指令也就是说是只能用在ns的定义区块里的。
**********这里是需复制内容**********
;—————————-我是分隔线—————————-
*define
bsp;game
*start
你好世界。
这是我的第一个程序。
end
;—————————-我是分隔线—————————-
**********需复制内容结束**********
没有使用a和\的情况下效果和之前的完全一样。
并且使用s会根据参数在文字显示过屏幕可容纳字数后自动翻页。
etbsp;个必须要是全角)‘2
c1ickstr‘等待标志‘翻页参数
翻页参数为o时候不会自动翻页过字数会出错。
为1时显示到屏幕(或对话框)满为止自动翻页。
为2时到离可容纳字数还有1行时翻页。
为3时到离可容纳字数还有2行时翻页。
以下类推。
而假如某一行里有句号或其他已经定义的等待符号比如说问号但是不想让这部分等待的时候还有一个“等待失效”的标志“_”。
把“_”标志放在等待符号的前面执行到这里的时候就不会等待而会直接继续显示下一句了。
例如:
国家政策小白要持证上岗_。
补充假如真的对以上都懒得使用请在define区内加入1inepage命令。
这条命令会把每一行视做一段对话。
缺点是在使用这个命令之后/命令(换行失效命令)无法使用。
——————————————————————————-
问题四:执行完窗口关掉以后怎么文件夹里多了一个叫“envdata”的文件?
envdata文件是设置文件类似一般游戏里的ini文件。作用是记录一些玩家的操作和设定比如上一次进行游戏时是全屏还是窗口模式使用的是什么字体之类的信息都会被记录下来。这当然是很贴心的功能了对游戏制作者来说却有点头大修改了一些设定之后再执行游戏却无论如何都没效果究其原因都是这个envdata文件在作怪。因此保险起见修改一些设定之后请记得删除envdata文件再做测试。
———————————————————————————
本日小贴士:
注释符号“;(半角分号)”的使用。
nscripter里某一行里的“;”符号后面的部分会被当作注释而不执行因此无论是中文英文全角半角都可以用在注释里。
虽然似乎很多人(包括蓝蛇……==)都没有使用注释的习惯但是其实根据某d的经验注释还是非常有用的。除了使用文字和分隔线免得时间长了自己看不懂以外加在某个命令前使某一条命令暂时不起作用以测试它的功能或者用来加入大量个人化的东西以恶搞打上版权标记或者甚至仅仅为了让文本看起来不那么单调请大家把注释华丽的使用到底吧……[天音:你以为全世界的人都和你一样无聊吗……]
注释使用范例:
**********这里是需关注内容**********
;—————————我是分隔线—————&1t;&1t;==这行就全是注释了
*define;这里开始是定义区&1t;&1t;==可以这么用
game;定义结束
;^^前面多打几个空格(半角空格)也可以半角空格和空行一样是会被自动忽略的
;—————————我是分隔线—————&1t;&1t;==这行也是注释
***********需关注内容结束***********
———————————————————————————
作业(觉得太弱智的可以不做反正没人检查……):
1随便找一段文字把它丢到ns里小学课文也可以。试一下“\abretbsp;2把程序末尾的end指令令换成reset指令看看会有什么变化。
3deBug练习。
找出以下程序的错误。
***********debug内容**********
*define
bsp;game*sTaRT
HeLLooRLd!@
re
set
**********debug结束**********
点击察看图片链接: