来吧,我把教程放这了
onsfuture吧
全部回复
仅看楼主
level 11
lijingyul 楼主
想学的就点开看看,有闲时间的想试试也行                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 1
level 11
lijingyul 楼主
请勿插楼                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 2
回复 593012670 :好想法~
2014年08月21日 15点08分
回复 593012670 :内啥,先弄着,明要考试,先睡了.............
2014年08月21日 15点08分
回复 593012670 :还有,啥时换的头像?
2014年08月21日 15点08分
回复 593012670 :也是给新人看的吗~
2014年08月21日 15点08分
level 11
lijingyul 楼主
转自安卓galgame吧                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 3
level 11
lijingyul 楼主
第1章 1-1 制作游戏开发环境
首先要会制作游戏,要先有个专门的资料夹才行阿,先命名一个资料夹吧
例如:GAME资料夹之类的,然后再进行制作环境
先下载NScripter中文版吧!你可以到中文版发布地方下载!
下载之后先请建一个nscripter的资料夹 把解压缩后的东西放到那儿
这就是主程式,接下来请你在建一个资料夹「GAME」,把在nscripter资料夹内的nscr.exe复制到GAME资料夹
然后以后所说的开发资料夹 都是指「GAME」资料夹!请不要搞混唷!!
之后请在开发资料夹新增一个纯文字档案命名为「0.txt」
0是档名,txt是副档名
这样目前开发资料夹里面有两个档案,一个是0.txt,一个是nscr.exe
这样大致上就完成了制作游戏环境了
cursor0、 cursor1是游戏中等待时所表示的图片(等待记号)例如:◇
至於0.txt就是主要使用命令来撰写游戏的档案罗。
1-1就这样结束罗。
这样就可以简单的管理游戏文件 以后图片等等就放在这开发资料夹                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 4
level 11
lijingyul 楼主
最初约束NScipter的事情
1-2 跟Nscripter约束一下事情喔^^
这回讲座的目的
这回要教的是NScripter指令档当中无法缺少的*define和*start。
让NScripter能约束一下自己^^ 不要让他出轨XD
主要是让他注意从哪里是游戏~
定义区块和执行区块
要在NScripter写指令必须要用0.txt书写。
那我们就先从开发资料夹把0.txt打开吧!
首先下面是NScripter的基本形式:
*define
game
*start
*define到game之间叫做「定义区块」。「定义区块」主要是用来作 『画面转换、使用何种的画面效果』 『文字表示速度』 『存档限制多少个』 不一定要全部写进去,只需要写到需要用到的就可以了。
*start以下的叫做「执行区块」。「执行区块」主要是用来作『在这里显示这些对话文章』 『在这里显示这个图像』 『在这里播放音乐OR BGM』 『在这里叫出选择分歧』 也就是说实际游戏读取的指令就是在这里书写的。
这种型态、就是NScripter的指令档大致上的形式。 现在应该可以理解了吧?
0.txt、1.txt、2.txt…
NScripter的指令从0.txt开始读取、 如果0.txt的指令过长的话?
轻而易举。再继续作「1.txt」、继续作下去就可以了。
1.txt过长在做「2.txt」……、就好罗。
最大可以做到99.txt。                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 5
level 11
lijingyul 楼主
文章の表示方法
先用NScripter语法让NScripter画面显示文章吧
先试试看「你好。」
打开0.txt把以下输入进去
* define
game
*start
你好。
然后存档。请打开并执行nscr.exe!
执行后发现有出现你好,不过出现了这个画面!?
怎么会这样呢?如果用中文版的Windows可能无法顺利观看日文错误讯息
其实他上面是说:档案到了尾端!
而且你是否发现会跑出一个envdata出来了,不过请放心 这是正常的喔!
消除错误讯息!
之所以会跑出错误讯息,是因为档案没有约束好说哪里是尾端,停止读取
才会导致错误讯息的产生,其实只要加一个「end」在游戏的文章后面就可以避免导致游戏的错误讯息产生,试试看把0.txt打开
*define
game
*start
你好。
end 是不是没有错误讯息了呢?
改行、点一下滑鼠等待、换行
* define
game
*start
你好。
今天天气真好。
end
只要在游戏的指令档0.txt文章显示的每一句子加上enter
就可以改行罗
Click滑鼠等待
* define
game
*start
你好。@
今天天气真好。@
end
只要在游戏的指令档0.txt文章显示的每一句子加上@
就可以让滑鼠等一下然后再显示句子罗
换页
game
* start
你好。\
今天天气真好。
end
只要在游戏的指令档0.txt文章显示的每一句子加上\
就可以让换页罗
(这个方法大多是对话方块显示的)
例如:
game
*start
【小胜】
「今天天气好好。」\
【奈绪】
「好你妈个头!」\
end
总算会输入了!! 你一定会这样想吧!
补充 NScripter文章显示
文章显示的注意事项
NScripter在指令输入有一些规定。
那就是…
?请在输入文章(对话)时候都请用「全角」文字输入(包括数字英文)。
?指令输入时请用「半角」文字输入。
这样就可以基本排除发生错误的原因罗!                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 6
「全角」文字和「半角」文字是什么?
2014年10月26日 13点10分
level 11
lijingyul 楼主
背景图像的显示
在这之前要教大家的是背景图像显示不可或缺的「画面效果」effect指令
effect = "效果"的意思
效果设定以及显示背景
NScripter除了背景以外例如:(人物图片等等)都可以使用effect指令、
effect指令主要是作用於设定 『要如何呈现画面效果?』 『如何呈现图像?』 『要怎么样设定显示效果呢?』
我们要先在「定义区块」内先定义显示效果。
决定定义好的显示效果方式之后,以后再「执行区块」内只要把他依照「定义区块」内的显示效果叫出即可!
具体来说…先来说先来说一下语法好了
语法:(请在「定义区块」内定义!)
effect 定义编号,效果编号,米□秒(1/1000)秒
效果编号后面(可省略)
1.定义编号:
你定义一个编号 以后只要从「实行区块」内叫出那个号码
就可以代表这整行所显示的效果
就是类似「编号」这样子
2.效果编号:
(因为这很多,所以往后你要写游戏时,请你物必要参考)
效果编号请从「1」开始写起 预设值为1「瞬时表示」
<效果编号表>
1 瞬时表示。没有指定时间
2 左快门(类似照相)
3 右快门
4 上快门
5 下快门
6 左窗廉
7 右窗廉
8 上窗廉
9 下窗廉
10 像素为单位的Cross Fade
11 从左边卷动
12 从右边卷动
13 从上面卷动
14 从下面卷动
15-18 会占很大的记忆体空间,我们暂时不教。
3.毫秒:
秒数/1000
如果要在两秒内要完成效果编号5 定义为2的编号
这样如何下手呢?
简单!
effect 2,5,2000
就是这样~你会了吗??
再来就是背景显示的部分罗!
语法:
bg "背景档案名称",定义编号
1.背景档案名称:
这里的档案名称,需要用双引号("file.jpg")来表示
而且档案一定要放在开发资料夹内,和「nscr.exe」放在一起!
2.定义编号:
就是采用「定义区块」内你定义effect的「定义编号」
实作:
请先把这档案另存图片,存到你的开发资料夹里面!
假如你要"背景.jpg"使用上面的定义编号2(effect 2,5,2000)
的话,就要写成『bg "背景.jpg",2』。
※所有使用在NScripter的背景图像、都要设定为640×480。
现在来练习吧!
*define
effect 2,3,1000
effect 3,6,2000
effect 4,10,500
game
*start
显示照片吧。@
bg "背景.jpg",2
照片改变罗。@
end
effect,指令是非常重要的指令
所以 请务必学习透彻!!
有人说「可不可以把背景改颜色阿!」
当然可以,只要把档案名称改为颜色函数就可以罗
颜色函数是?
就是类似於HTML标签的 #rrggbb
或是采用 英文 red white black等等
不过,再使用颜色函数请不要把他加上""(双引号)
颜色函数是不用加上双引号的!                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 7
level 11
lijingyul 楼主
讯息框
很多运用到「数学」计算,如果你无法计算的话,可以去打开计算机喔^^"
语法大概是这样的:
setwindow 30,320,22,4,26,26,0,2,20,1,1,#5599dd,20,310,619,450
很长吧! 所以请大家也继续听下去以下的讲解
语法使用:
setwindow
( 设定讯息视窗)
使用此命令后 以后的文字显示均用「讯息视窗」表示
「setwindow」是用来表示讯息视窗的位置、大小、文字的设定。
以下要讲解这~么多的数字 也请要详细听喔!
首先是刚开始的四个数字。
setwindow30,320,22,4,26,26,0,2,20,1,1,#5599dd,20,310,619,450
「第一个数字30」和「第二个数字320」是表示「文字显示开始的座标X、Y」。
「第三个数字22」和「第四个数字4」是表示「讯息框长以及宽可以容纳几个文字」。
如果往后的显示文字的时候超出「讯息框可容纳的字数」将会跑出错误讯息,也请多加注意这点
再来、NScripter的画面固定为640×480像素。
画面的左上端的座标是(0,0)、则画面的右下角的座标为(639,439)
(因为右下角还有一个的视窗灰框围绕著NScripter)
再来的四个数字。
setwindow 30,320,22,4,26,26,0,2,20,1,1,#5599dd,20,310,619,450
「第一个数字26」和「第二个数字26」是表示「文字的大小(FontSize)X Y
「第三个数字0和「第四个数字2」是表示「字与字的间格X以及Y(就是与右边的字间格大小以及下面一行的字间格大小」。
请依照你的喜好进行设定,不过最好请把第一个和第二个字形大小设为相同!
例如:要设定17大小的字形,就请你设定为17,17
皆下来的4个数字。
setwindow 30,320,22,4,26,26,0,2,20,1,1,#5599dd,20,310,619,450
第一个数字是「文字讯息表示速度」。
第二个「粗体字开关」。(0代表没有粗体,1代表有粗体)
第三个是「阴影开关」
第四个是「视窗颜色(半透明)」采用HTML的颜色标记,请您详细研读上节,上节有详细的说明
最后的四个数字
setwindow 30,320,22,4,26,26,0,2,20,1,1,#5599dd,20,310,619,450
第一个和第二个是「文字讯息框的左上端座标X、Y」。
第三个和第四个是「文字讯息框的右下角座标X、Y」                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 8
level 11
lijingyul 楼主
令人头痛的人物画像
本回讲座的目的
这次要教大家如何制作 Alpha Channel图片(先别问说什么叫做Alpha Channel)
因为要让NScripter能透过人物图片,而且避免一些锯尺的产生,所以要教大家如何制作alpha图片
请先另存图片至你的开发游戏的资料夹里面
之后就请参照这个网站
http://ryuji.s1.xrea.com/nscr/nscr1/s5.html
请注意这些教学的细节,并请你跟著教学一起动作
如果游戏没有人物图片,是不是很不好玩呢
所以请务必要「研读」本篇教学
何谓AlphaChannel?
我也无法说明XD
大概就是可以改变游戏的图片的透过形式
图片显示形式语法
":透过形式;档案名称"
使用背景语法(bg)时不需使用此形式
此语法是用来其他语法显示图片才使用的
透过形式分为:
a…Alpha Chanel
图片的形式必须要用成底色「一黑一白」。
黑色代表透过,白色代表半透明
假如图片底色是灰色,代表图片是半透明的
通常讯息文字框的图片都是让讯息文字的区域为灰色的
l…左上设定
c…复制
没有设定透过。就是单纯的复制。
一般语法不是使用「背景bg」语法时,如果无透过设定,就直接用这个语
法罗
#rrggbb… 直接设定(Full Color使用)
跟HTML标签一样的设定写法。
FullColor时才有效。
!pal…直接设定(256色用)
指定颜色号码。
256色时才有效。                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 9
level 11
lijingyul 楼主
人物图片的显示
这个地方很重要,请仔细听唷
请先准备图片(必须使用到AlphaChannel)放到开发资料夹
需要左右两边的Alpha图片
语法:
ld 位置代码,":透过形式;档案名称",effect的定义编号
effect定义编号可以参考(1-4)
位置代码:
l(left):左边
r(right):右边
c(center) :中间
当你要显示两个人的时候
必须要设定成为一个在左边,一个在右边
因为NScripter设定是640*480,否则会有重叠的情形发生
让我们来练习吧!
*define
effect 6,6,1000
game
*start
先让背景图片显示。 @
bg "haikei.jpg",6
使用AlphaChannel来透过,并请显示在中间。@
ld c,":a;temp.jpg",6
就是这么简单。@
end
人物图片的消去
如果你要放第二张图片在中间,然后在消失第二章图片
你会发现,第一张图片还在@@"
所以请特别注意,如果不要使用那个人物图片,一定要把「第一张」消去
现在要教大家人物图片的消去
语法:
cl 图片位置,effect定义的效果编号
cl (clear)消除的意思
这个语法主要是在消除图片
如果你要消除中间的人物图片
就可以使用
cl c,6
让我们来练习吧!
* define
effect 6,6,1000
game
*start
先让背景图片显示。 @
bg "haikei.jpg",6
使用AlphaChannel来透过,并显示在中间。@
ld c,":a;temp.jpg",6
消失中间的人物图片。@
cl c,6
就是这么简单。@                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 10
level 11
lijingyul 楼主
音效,背景音乐,影片的播放
使用MIDI进行BGM演奏
BGM常使用MIDI格式。
语法:
play "音乐档名(副档名:.mid)"→播放(连续)
playstop →播放停止
playonce →播放一次(可代替play)
范例:
* define
game
*start
演奏midi音乐。@
play "bgm.mid"
演奏midi音乐停止。@
playstop
end
使用CD音轨(CD-DA)来演奏
请先放一片音乐CD(CD-Audio)到CD-Drive里面。
语法:
play "*第几音轨"→播放音乐CD的第几首
playstop →播放停止
例:播放第一首
play "*1"
范例:
* define
game
*start
演奏第三首。@
play "*3"
演奏停止。@
playstop
end
使用WAVE档案来播放效果音(SE)
効果音通常都使用WAVE档案。
语法:
wave "音乐档名(.wav)"→播放
wavestop →播放停止
waveloop →代替wave指令,可让音乐连续拨放
范例:
*define
game
*start
演奏。@
wave "bang.wav"
演奏停止。@
wavestop
end
MP3的播放
最近很多BGM或効果音都采用MP3格式。
语法:
mp3 "音乐档名(.mp3)"→播放
mp3stop →播放停止
mo3loop →代替mp3指令,可让音乐连续拨放
bgm命令
如果档案较长的midi,mp3等等 如果要采用在BGM的播放,都可以使用bgm指令,可以代替三项
但是、这个指令有可能让其他档案无法同时演奏的问题。
如果遇到问题请采用上述的指令
特别是mp3若要使用在BGM请使用「bgm」指令
stop指令
刚刚为止我教了「playstop」「wavestop」「mp3stop」这三种停止指令的解说。
若要让NScripter把所有音乐都停址,请使用「stop」的指令。
avi指令
语法:
avi "影片档名",数字
数字为1时,播放途中若按滑鼠,会直接停址,并移到下一个指令。
数字为0时、还没播放停止前,按滑鼠也是没用,直到播放完毕为止。
等待命令
wait 强制等待。可以使用变量。
wait 毫秒数或数字变量                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 11
level 11
lijingyul 楼主
选择分歧以及sub程序
制作标签:
「*」开始的文字列叫座标签(例如:*sub01,念作sub01标签)。
标签会被用来作选择分歧以及sub程序跳转(gosub)。
以下就使用goto跳转指令来作介绍。
*define
game
*start
跳到下个标签。@
goto *next
这个句子将被忽视。@
*next
跳到此标签了!。@
end
「goto」跳转指令、为跳到指定的标签命令。
『goto *next』、就是跳到next标签
制作选择分歧
现在就来制作选择分歧吧。
语法:
select "选择分歧文字01",*label1,"选择分歧文字02",*label2
等等
*define
game
*start
好饿喔。@
那么要吃什么呢。@
select "汉堡",*taberu,"吃屎",*mushi
*taberu
吃汉堡呢。@
阿阿、真好吃。@
end
*mushi
恩恩恩…。@
叫人吃屎?实在太脏了。@
end
以下为不合规定的标签:
1.使用全型文字
「*开始」「*吃屎」「*abc」
2."_"使用底线之外的文字
「*Mike&Tom」「*ta*be*ru」
3.第一个文字使用数字
「*1day」「*0123」「*3on3」
4.用相同的标签(保留字)
「*define」「*start」!
右键选单显示
在*define定义区块内放入「rmenu」叙述。
语法类似『选择分歧』。
范例:
*define
rmenu "储存",save,"读取",load,"回想",lookback,"结束",reset
game
*start
请按下右键。@
现在已经跑出右键选单。@
end
右键会跑出目录选单。
功能共有六种。
skip…「跳到下个选择分歧」。
reset…重新开始游戏。
save…出现储存画面。
load…出现读取画面。
lookback…回想。
windowerase…讯息视窗消失。
让右键无效
若有些场合要无法读取,储存时,可以使用「rmode」。
范例:
*define
rmenu "储存",save,"读取",load,"回想",lookback,"结束",reset
game
*start
右键有效。@
rmode 0
右键无效。@
现在按下右键也不会出现选单。@
rmode 1
右键有效,会出现选单。@
end
「rmode」的餐数值,1有效,0无效。
改变储存档案的注解
预设值为<储存>和<读取>
档案名为『档案』。*define
rmenu "储存",save,"读取",load,"回想",lookback,"结束",reset
savename "保存记忆","叫出记忆","记忆"
game
*start
按下右键,选单的名称就会改变罗。@
end
「savemenu」请在定义区块内书写。
后三个参数是「储存的标题」「读取的标题」「档案名称」。
可以加加减减的数值,在游戏里就叫做“变量”或者“变数”——因为是可以变化的嘛。
在NScripter里,变量的名字是以 % (百分号)开头的。可以从 %0 到 %4010以上 (以2.45版测试,到%5000虽然不会出错,但是变量的操作不会被记录下来。4000应该说是相当够用了)。
当然这个%0 ,%4010之类的并不是变量的内容,而是变量的名字,或者说编号哦。
变量本身的内容,则是需要通过赋值(代入)和操作(加减乘除等)改变的。
比如
mov %10,200
代表把200这个数赋值给%10这个变量。
那么,现在,%10=200
add %253,300
代表把变量%253的现有数值再加上300
sub %4010,25
代表把变量%4010现有的数值减去25。
变量的名字,也就是%10,直接出现在对话里,显示出来的却是变量的具体数值。
*define
rmenu "储存",save,"读取",load,"回想",lookback,"结束",reset                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 13
level 11
lijingyul 楼主
savename "保存记忆","叫出记忆","记忆"
game
*start
mov %1,0
现在我们要去什么地方呢?\
select "回家",*gohone,"玩",*play
*gohone
add %1,1
回家?我才不要呢!\
goto *eds
*play
mov %1,0
好啊,好啊\
goto *eds
*eds
if %1=1 goto *h
if %1=0 goto *w
*h
结局咯@\\
end
*w
我好无聊了\
end
本日小贴士:变量的管理。
游戏做得久了,哪几个变量用过哪几个变量没用过,基本上是记不清楚了。
非常可能因为这样出现各种低级错误。《=某D就犯过把HP当作临时变量操作来操作去的我囧错误。
因此,建议大家开始制作游戏前先准备好笔记本,将大致的变量区间分配下。
比如,%200到%300用做人物好感度,而%400到%600用做人物的养成数值等等。
同时在制作过程中,将已经使用过的变量标注出来。当然也推荐使用excel类的工具进行列表。
另外,为了避免一操作变量的时候一个不小心把mov %100,20写成mov %1000,20,NScripter也提供了变量自行命名的功能。
在*define区块里加入:
numalias attack,1
就代表把变量%1命名为attack
这样以后操作变量%1的时候,除了可以用mov %1,20的写法,也可以用mov %attack,20的写法。
演示了背景的切换、背景音乐的变换、音效的播放和等待的处理、选项的处理、对选择的评估、结束游戏的制作等。
这里,设定变量%20为好感度变量。并对其初始化,使其值为0。
以下是对变量的基本处理命令:
mov 给变量赋值
mov 数字变量,数值或变量或计算式
mov 文字变量,"文字内容"
add 加
add 数字变量,数值
sub 减
sub 数字变量,数值或变量
inc 加1
inc 数字变量
dec 减1
dec 数字变量
mul 乘
mul 数字变量,数值
div 除,只保留整数(不是四舍五入)
div 数字变量,数值
mod 求余
mod 数字变量,数值
puttext 用在if后面显示文字的命令,不能插入变量,似乎可以显示半角字。
if 条件 puttext "文字内容":puttext "另起一行文字内容"……
NS的数字变量是用百分号加数字表示的。
if %0<=0 goto *title1
if %0=1 goto *eps
if %0=2 systemcall load
if %0=3 csp -1:print 10,600:end
goto *title1
if 条件判断,当……的时候
if {条件} {要执行的操作}
if {条件} && {条件} &&…… ;多个条件同时成立,&&也可写为&。
if {条件} {要执行的操作}:{要执行的操作}:…… ;执行多步操作
条件式常用符号:<,>,=,>=,<= 讲解略
==与=都是等于的意思
<>与!=都是不等于的意思
reset -游戏复位                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 14
level 11
lijingyul 楼主
以上,完毕…
个人觉得一个游戏吧吗,总需要几个技术党,所以发了....................
不洗五喷                         ——我怎么可能有小尾巴的呢?.......................∑(っ °Д °;)っ卧槽,哪来的小尾巴!!
2014年08月21日 15点08分 15
level 11
我觉得很好 自己培养的更有归属感
2014年08月21日 16点08分 16
level 11
感谢~>_<~!!!
2014年08月21日 16点08分 17
[玫瑰]
2014年08月24日 17点08分
level 13
不明觉厉_(:3 」∠)_主要是没什么想推的了。。
✎﹏₯㎕﹏﹏这是一条萌萌的小尾巴,萌萌的尾巴围观萌萌的楼主﹏﹏﹏﹏﹏﹏﹏✍
☆来自妻兔姬——「奏」★
  
2014年08月21日 16点08分 18
level 13
话说什么游戏引擎是有限制的吧。
✎﹏₯㎕﹏﹏这是一条萌萌的小尾巴,萌萌的尾巴围观萌萌的楼主﹏﹏﹏﹏﹏﹏﹏✍
☆来自妻兔姬——「奏」★
  
2014年08月21日 16点08分 19
level 10
谢了,教程不错,回头试一下。。。
 我只想做条安静又萌萌哒的小尾巴!!
   --来自助手版贴吧客户端
2014年08月21日 16点08分 20
level 10
这教程做出来的游戏能不能移植进ons。
 我只想做条安静又萌萌哒的小尾巴!!
   --来自助手版贴吧客户端
2014年08月21日 16点08分 21
应该是入门级 想移植得更深入学习才行
2014年08月21日 21点08分
抱歉,几个月了,但容楼主我吐槽句,这TM就是ns引擎的写法,做出来只要没有什么特殊插件ons完美运行
2014年10月04日 08点10分
1 2 尾页