krkr初级教程

上传人:痛*** 文档编号:66471234 上传时间:2022-03-28 格式:DOC 页数:106 大小:986KB
收藏 版权申诉 举报 下载
krkr初级教程_第1页
第1页 / 共106页
krkr初级教程_第2页
第2页 / 共106页
krkr初级教程_第3页
第3页 / 共106页
资源描述:

《krkr初级教程》由会员分享,可在线阅读,更多相关《krkr初级教程(106页珍藏版)》请在装配图网上搜索。

1、krkr初级教程 开始用一个引擎,就要先明了这个引擎可以做什么。不是说知道kr可以做avg这样的程度,事实上只要有耐心,就算用kr做slg也是可以实现的。很多打算入门做avg的mm之前都没有编程基础之类,我遇到的大部分是对画立绘或者写剧本有爱然后转过来的所以常常会看到这样的问题:“开始界面怎么做?”这种问题,回答的话就会觉得很无力,因为开始界面和其他的界面没有什么不同,并不是要另外特别输入的什么东西,而只是一张背景图和几个按钮的组合而已。有些华丽的会加上一些画面效果,但主体就是按钮,只要会做按钮就可以做标题画面,但是似乎常常有人完全不这样想的样子在游戏策划阶段,思路上是整体的在想游戏界面和系统

2、,但到写程序的时候,则要把这些界面全部拆分成元素来考虑。比如一个半即时rpg战斗界面,我的思路就是设定一个timer,设定interval属性,这个属性的作用就是确定在timer为enabled = true时每隔多少时间跳转到ontimer()一次。在ontimer()里边就可以单位数值的增加时间变量,以及每跳转到这里一次扣除根据各个角色速度计算出来的时间槽减少值,并根据这个变化对应的改变每个角色时间槽内色块的长度。而当长度为0时也就是记录速度槽长度的变量为0时就跳转到该角色的行动模块,行动模块由按钮组成,比如法术,单击了法术按钮后跳转到法术模块,根据人物不同出现法术的选择菜单依然只是按钮,

3、选择了某个按钮后就清空各个按钮,再播放角色的攻击动画,和敌人的被攻击动画有时候也不是什么动画,有张图就可以了|动画播放完毕根据双方攻击力防御力魔功魔防之类计算下敌人的损失对于游戏平衡来说这里的计算式设定很重要,如果主角有兵器养成之类的设定还可以在主角兵器使用次数变量上加1之类之类,这些都很自由了。因为主角的兵器养成的效果不是在这里就体现的,而是根据使用次数变量再经过计算体现的,所以这里只要改变次数变量就可以取得相应效果了而这些效果的模块一般写在其他地方,不要手动去调整所有变量,相互有影响的变量让他自己影响。当某角色的hp变量为0时就判断他进入死亡状态,同时的麻痹,盲目之类的状态也都可以用变量赋

4、值,在ontimer里用if进行各种动作的判断。就是说,一个战斗界面并不是有三个角色在和三个敌人战斗,而是上方有一些变量控制的色块当然也可以华丽的用图片,下方有几个人物站立动画,到一定时间会出现按钮。要做一个这样的界面,需要会的就是1对画面色块的长度控制,2动画播放的控制,3按钮的设置,4清晰的变量处理。如果还想要什么华丽的画面效果的话就再进修一下各种画面动作。自己分析出这些元素,然后就可以看对应的引擎可不可以做得到,或者自己能不能实现这些功能,到这一步时,对别人的提问才比较有诚意。什么都不想,直接去问“战斗界面怎么做”“对话界面怎么做”,会让回答的人很为难的,因为要把思路解释清楚很麻烦,看我

5、如此努力的解释一个战斗界面的构成也没讲清楚就知道了而且每个人的思路也不一样,要实现某个目的想采取的途径也是不一样的。那么就从kr可以做什么说起。这里就只讲kag层面,tjs层面应该不会涉及但是我必须要说的是,kr和ns比较起来,最大的优点就是tjs就是说,用ns的时候,你发现某个效果做不到,那么基本上就是做不到了,但是kr的话,在kag功能和ns类似层面做不到的事情可以用tjs完成,因为tjs对应更基层,也可依据需要自由修改kag的指令内容。但是这里是初初级入门就不多谈了做一个一般的电子小说,需要的功能有1.画面的插入,精灵的动作控制如位置设定,移动,渐变之类,2.按钮和标签跳转,3.文字对话

6、的显示,4.save/load功能就是因为这种东西自己写很麻烦所以才需要直接用引擎如果是分歧式电子小说或者要加入养成要素,那就需要5.对变量的控制。kag现在开始讲的都是KCDDP的KAGeXpress,其他的版本会有一些指令的不同,推荐使用KAGeXpress,第一是中文,第二是增添了很多方便的指令,可以到去下载的画面控制分为layer层和Massage层,具体的指令使用方法见docjpnkag3doc。layer层主要承担前景图片的插入如人物立绘,使用方法是image,如:image layer=25 page=back storage=m1 visible=true x=103 y=25

7、 opacity=255 cond=f.月 = 1kr的语句格式一般都是这样,“指令 属性1=xxx 属性2=xxx 属性3=xxx”或者“指令 属性1=xxx 属性2=xxx 属性3=xxx”这两种效果是一样的,但后边可以再跟,的话那一行就结束了属性的设定顺序无所谓,可以省略的属性不写也可以,属性能不能省略可以查阅指令集上边那句话的直译就是就是: 载入图片,在layer第25层层值越大越上方显示,25层的图片可以覆盖住24-0层和base层,不过这个是由图层的index属性控制,可用layopt更改,KAGeXpress默认0层是100000,每层加100,如layer1就是100100,把

8、layer25的index改成100101的话,它的显示就会在layer1和layer2之间,message层默认是在layer之上的,也可以通过这种方法将message层放在layer层的图片之下。,在里层kag的所有层都分为表层和里层,表层是我们能看到的,将图片放在里层再通过trans指令将里层复制到表层可达到各种渐变,淡入等画面效果,如果直接image在表层,则就是瞬间显示。,图片名叫“m1”在默认目录下可以不用写路径和后缀,kr支持的图片格式请自己查阅说明,最值得一提的是可以直接用png也可以用同样有a通道的tlg,kr自带的工具里有将图片转为tlg的工具。,可见能见设定为false就

9、是不可见,左上角坐标是103,25,透明度255范围0-255,0就是完全透明,当变量“f.月”值为1的时候执行绝大部分kag指令都有cond这个指令,就是在cond=的式子为真时执行整个语句,为假时就当它不存在的跳过,比写if方便多了。必须注意的是式子格式,“=”“这些演算子两边一定要各有一个半角空格。注意,base层插入的图片一定要和窗体大小一样,不然会花屏。如果m1是动画则不需要多写什么插入后它会自己动作的。有关于动画,kr的图片动画是单独用asd文件写的如图片是m1,需要进行截取的动画图片就要叫“m1_a”,然后新建一个文本文件,重命名为m1.asd,具体写法请参阅systemLine

10、Break.asd,只有image在layer层才能播放动画,pimage和layer是message层都不行。KCDDP论坛里有大人写了其他的动画播放插件,讨厌asd或者有需要的人可以去看看载入图片后,也有很多方便的指令可以做出各种画面效果,如我前边提到的trans,如果只打算trans一个图层,trans里也有layer属性设定,如果不设定就是将所有图层的里层复制到表层,这种情况下,一般使用backlay,该指令的意思是瞬间把所有表层复制到里层,使用backlay之后再image或freeimage在里层,然后trans的话,就可以达成只有刚操作的那一层出现画面效果的变化。trans的la

11、yer属性基本上只对base层适用其他层的话请死心的使用backlay吧move也是常用的画面操作指令,使用格式是move layer=1 page=fore time=1000 path=(0,0,255)(50,50,100)这样,其它也还有一些属性,不设定的话就用默认的,具体参看指令集docjpnkag3doc。注意path的移动是从当前layer的位置开始的,比如image时left=300,top=125,move的时候就会从300,125用1000ms移动到0,0,再用1000ms移动到50,50。第三个位置是透明度,有时候不方便用trans也可以用move不动左上角坐标只动透明度

12、来达成淡入淡出效果。action也是常用到的指令,具有画面旋转,变形,摇动等多种功能,具体参阅kagexaction.txt.这些指令在执行时如果后便不跟着wait,那么就会一边执行一边直接执行下一语句比ns方便的地方,但是trans和其他的混用的时候要考虑到fore和back层的变化,比如,fore在被移动的时候trans,back层却没移动那么trans出来的图片就是back层没移动的样子另外,同时使用两个trans是不可能的。move,trans都是对message也适用的指令。默认message层是message0,比如在文档里直接写入一行“今天天气真好”,那么这行字就会显示在mess

13、age0上。设定当前操作的message层是用current layer=message1 page=back这样,注意message层的back有时候是默认不显示的,在第一次用某个message时最好加一句layopt layer=message8 page=back visible=true这样,不然你所载入的东西可能不会显示。message层承担的主要是文字显示和按钮的功能。文字的显示就是current之后,在文档里直接写入文字,就会在current的message层左上角的部分开始显示文字,kr有自动换行和自动翻页的功能。message层的具体设定是使用position这一指令进行的,

14、如:position layer=message1 left=97 top=480 width=661 height=100 marginl=0 margint=0 marginr=0 marginb=0 opacity=0 visible=trueleft和top就是设定改message层的左上角,height和width是高和宽,marginl,t,r,b则分别是字向内缩进多少像素,opacity是透明度,在message层设定颜色的时候用,不过一般来说,用色块做对话框哪里有图片来的华丽所以它还有对话框图片载入属性“frame”,在该属性里加入对话框图片的名字就好。载入后如果想消去就写“f

15、rame=”就可以了文字的控制主要有l行末等待点击,p翻页等待点击,r改行,er清空该message层该层全部清空包括该层的按钮文字的字体用font设定,size是大小,face是字体,color是颜色,italic是斜体,bold是黑体,shadow是阴影,edge是镶边,edgecolor和shadowcolor就不用说了defstyle设定行间距字距之类的值,这些看指令集可以很容易明白,就不多说了。kag里的按钮全部是放在message层上的,分为两种:button和link,link就是文字链接,使用方法如下link storage=open.ks target=*start我是按钮e

16、ndlinkrlink的部分是表示下边开始的文字是link,在遇到endlink之前,所有该message层上的文字都会变成一个点击后跳转到open.ks里*start标签的按钮。一般来说,我看到的中文kr教程基本上是用link的,因为方便不过真的制作游戏的话,当然是用button华丽啊!印象中我从来没在游戏里用过linkbutton的使用格式如下:locate x=100 y=555button graphic=n target=*n clickse=l1 enterse=b2 recthit=falsegraphic是使用的图片,格式是三张排在一起,第一张是平时,第二张是按下,第三张是鼠标

17、接触。或者也可以不设graphic,将三张图片分开用normal通常时的图片;over鼠标移动到按钮上时的图片,省略则使用与 normal 同一张图片;on点下鼠标时的图片,省略则使用与 over 同一张图片。具体说明可以去看KAGEX追加指令文档。也可以利用button载入图片如button normal=a1就可以只是载入了一张图片,而没有其他的作用。在button的位置上再用button后来定义的button图片会把先定义的覆盖。同时必须注意的是,message层和layer层不一样,message层在position里注明了大小,如果在大小之外放button或者文字是不会显示的,如果在

18、边缘放置就会只显示范围内的部分,其他部分会被切掉。这一点其实可以利用来作很多动态效果按钮的清空和文字一样,用ertarget是跳转到的标签,有关于标签的部分在这里说一下好了。标签用*开头,使用方法见下:*哈哈eval exp=tf.temp1=tf.temp1 + 1该句的意思是给临时变量tf.temp1的值加1,请注意赋值的是“=”,判断相等的是“ = ”,还有一般的运算式两边要记得加半角空格,有些时候好像不会有影响有些时候却会所以还是在意一点比较好。另外“”之后表示的就是注释部分,在运行代码时程序会将之忽略掉,一行都是注释的话可以用“;”jump target=*哈哈 cond=tf.te

19、mp1 16*特殊事件1那我们一起去吃蜜瓜吧。p当某个数值比如好感度到达一定的数值的时候,就跳至某个事件,这是恋爱养成类游戏最常用到的设定这个变量也可以是体力值,智力值之类的任何东西,如何利用变量是非常自由的,每个人的使用习惯也不一样,多发挥想象力就好。变量的计算符除了“+”“-”“*”“/”外还有“”除取整,和及或的符号是“&”“|”使用是eval exp=f.temp0=5 cond=f.temp1 = 1|f.temp2 = 5这样。变量销毁是eval exp=delete f.temp1。变量的显示是emb,用法:eval exp=f.主角姓名=水螅emb exp=f.主角姓名这样,水

20、螅就会显示在message上。差不多基础部分需要注意的就是这些了,开始学kr最重要的文件就是指令集,虽然那个是日文的不过,只要有爱的话,还是可以半猜半试的看懂的无论什么教程都不会那么详细地把所有指令的用法说明一遍,所以,想要知道一个效果能不能实现,自己查一下指令集是基本的。kag其实封装了很多方便的指令,多看看指令集也可以避免重复劳动那么,初初级kr入门注意就到此结束如果我依然这么闲的话,大概会在不久的将来做出初级教程来|大概【krkr教程1】建立新的工程2008-07-26 17:03这种从基础基础开始的kag教程天娜其实写过了因为我和她用kag的习惯不很一样而且我今天闲的发毛于是就再做一个

21、这样的教程该教程为水螅制作,未经允许,请勿转载这个教程是以kcddp汉化的KAGeXpress为基础的,有部分指令可能和日文版有出入首先下载了KAGeXpress之后,使用里边的Wizard.exe建立一个新工程,建立完成之后就会弹出kacg.config的窗口,这个都是中文,按照需要的内容进行设置就好,这里设置的想要修改就在新建立的那个工程文件夹中的Config.tjs里进行相应的修改现在可以看一下生成的工程文件夹的结构根目录下是一个krkr.exe和一个data文件夹这里的krkr.exe就是真正意义上的krkr,如果单独执行它的话,会跳出目录选择对话框让你选择游戏资料的目录,然后从那个目

22、录中寻找startup.tjs,执行里边的内容但是这里我们建立的工程是已经关联好的,双击krkr.exe的话,会直接执行旁边的data文件夹里边的startup.tjsKAGeXpress的执行顺序是startup.tjs-Initialize.tjs-func.ks-first.ks对于初学者来说,这些都不用管,kag具体写游戏的部分从first.ks开始写data文件夹里有startup.tjs,krenvprf.kep,Config.tjs,一些dll文件,11个文件夹startup.tjs的作用刚才讲过了,就是让kr去执行Initialize.tjs的内容,这个文件不需要修改它kren

23、vprf.kep记录的是一些游戏运行的信息,删掉它还会再生成,也不需要管他Config.tjs是游戏整体的一些设定,里边有大量的中文注释,建议一行一行看下去然后修改自己需要的地方。(tjs文件的打开方式和txt文件是一样的,用notepad等就可以开)一般来说,进行修改的主要内容是:1.标题栏文字System.title(这里写的文字将会出现在游戏窗口的标题栏上)2.使用预渲染文字global.useconfigMappfont(这个牵扯到打包字体,在以后说,不使用就是false)3.窗口大小scWidth和scHeight(kr可以创建任意大小的窗口,但是请注意窗口大小很奇怪的话可能会导致全

24、屏化出错,另外使用的素材也请一定要对比着窗口大小来制作)4.存档方式freeSaveDataMode(如果打算做成lm那种打开选择文件的对话框来选择存档就写true,如果要像一般游戏那样有自己做的存读档界面就写false)5.是否保存缩略图saveThumbnail(存读档界面上如果设定了需要有存档画面的就要写true)6.存档地址saveDataLocation7.是否在存档中保存宏saveMacros(除非你确定你的游戏绝对不会再做任何macro方面的修改了,否则建议设定为false)8.自动记录已读文章autoRecordPageShowing(设定为true的时候,还没读过的文字没办法

25、skip,这些信息记录在datasc.ksd和datasu.ksd文件里)9.可用的音效缓冲数量numSEBuffers(设定为3的时候就是可以同时播放3个音效,通道为0、1、2,具体音效播放方法以后再说)10.可用的layer数量numCharacterLayers(设定为3的时候就是layer0 layer1 layer2可以用,如果写了layer3就会报错,请务必注意,但是该数量可以在脚本中随时更改,未必一定要在这里改)11.可用的message数量numMessageLayers(设定为3的时候就是message0 message1 message2可以用,如果写了message3就会

26、报错,请务必注意,但是该数量可以在脚本中随时更改,未必一定要在这里改)12.进入游戏后message0是否默认可见initialMessageLayerVisible(message0的可见在游戏里可以任意修改,这里设成什么都无所谓,但是一定要知道自己设了什么,做游戏的时候,随时明白自己的每个图层的情况是很重要的)13.最多可存的进度数量numBookMarks 14.菜单设定Menu_visible_config15.自动换行换页设定defaultAutoReturn(一般设定为true,这样文字在超过对话框的时候会自动换行或等待翻页)16.背景音乐文件格式type(就是用playbgm播放

27、的音乐,播放不属于当前设定格式的音乐文件就会没有声音,注意所有用插件播放的比如mp3 ogg都是设定为wave)以上是通常会设定的部分,没有写到的部分要么是在游戏里可以随便改,要么是一般不太用到(好吧其实是我一般不太用到,我很少做有配音有动画之类的游戏)dll文件都是些插件,这些在func.ks里一般都载入了,以后会讲到插件载入的方法11个文件夹,这些文件夹名字都是在Initialize.tjs里设定好的,在游戏里调用素材的时候不用写路径,直接写文件名,kr就会在这11个文件夹里寻找这个名字的文件然后调用,所以说,即使是不同文件夹里的文件,也一定不要重名!相对的,如果不是放在这些文件夹里的文件

28、,要调用的时候就要写明路径这些文件夹里system放置的建立起kag的tjs文件,对话等待点击时候出现的那两个动画文件(这个可以在Config.tjs里修改他们的显示,这两个动画文件随时可以用任何图片替换,放在这里其实是为了作为动画的范例给人看的),还有几个ks文件(这些是KAGeXpress新加的,里边封装了一些macro,不过因为我开始学kr看的是比较早期的文档,所以已经养成了习惯,这些里边封的macro基本想不起来去用,以后的教程里应该也不会提到,有兴趣的人可以自己去开那些文件查看)rule文件夹里边放了一些遮片素材,这些文件想要就要不想要就删,没什么关键性,遮片自己做也很方便image

29、文件夹里边放了下雨和下雪用的图片,下雨和下雪的插件是写在system的rain.ks和snow.ks里边的,这两个插件已经在func.ks里边载入了,随时可以用,这些图片也可以更换,但是不能改动文件名,除非在插件里边做相应的修改,关于那两个插件,我以后可能会讲吧虽然不讲也没什么大影响scenario文件夹里边放了first.ks,游戏的脚本编写从这里开始其他文件夹应该都是空的还有一点要强调的东西就是,krkr运行的时候,按shift+f1可以调出控制台debug什么的全部要靠控制台的具体的使用方法我会在后边的教程中做详细说明到此,建立新的工程部分完结,下一部分开始讲图片的放置相关。【krk教程

30、2】图片显示2008-07-26 20:12该教程为水螅制作,未经允许,请勿转载用ue或者notepad或者其他的随便什么文本编辑工具(不要用word)打开first.ks,默认的工程中有这么几句:*start欢迎来到Kirikiri/KAG的世界!lr把这两行都删掉,在第一行写position layer=message0 page=fore visible=falsebacklay这一行是如果在config里边没有把message0设为不可见的话,在这里把它设为不可见现在开始进行图片的显示在这之前要说的是,在kr里边,写在里边的是指令,写在后边的是指令(和意义一样,不过可以一行写多个指令这

31、样排,后边只能写一条指令,再写就要换行),写在*后边的是标签(关于标签以后会详细讲),写在;后边的是注释(就是程序当他不存在,单纯写给自己看的),直接写在外边的文字会显示在对话框上,另外如果在里边写了不存在的指令就会报错想要在kr里用kag显示一张图片有很多种方式,可以用image,配合image的还有pimage,可以用position里的frame,可以用buttonkr支持的图片类型包括jpgbmppngERITLG5TLG5.听说还可以通过载入susie的插件使用其他的文件类型,不过这个我没尝试过。这些图片里,像是bmp,png,tlg5,tlg6这种自带通道的就可以直接显示透明通道,

32、不用再做什么遮片了,如果是jpg图片,却不想直接把整张图的方形都显示上去,就要做遮片,如下图所示:白色是不透明的部分,黑色是透明的部分,灰色是半透明的部分,原文件(上边那张)命名为test.jpg的话,遮片文件(下边那张)命名为test_m.jpg,kr在读取图片的时候会自动把遮片用上的。显示的时候如下:最常用的图片显示命令是image,其他几种方法我会在其他的地方遇到的时候详细讲解首先,找到一张你想要显示的jpg图片,命名文件名为“test”(就是完整文件名为test.jpg),把这张图片放进image文件夹在first.ks里第二行写入image layer=0 page=fore sto

33、rage=test visible=true left=0 top=100然后执行krkr.exe,可以看到图片出现在了屏幕上但是这种出现是直接出现,一般来说,我们会希望图片出现时有一些更好看的效果,这种时候就用到了里层和表层的概念kr的所有层都是分为表层(fore)和里层(back)的,表层就是可以看到的层,里层就是永远不会被你看到的层,可以通过trans把里层的内容通过各种方式复制到表层来达到一些画面效果,也可以用backlay把表层的内容复制到里层,所以说,表层就是表现用的层,里层就是准备用的层。把first.ks里边除了第一行外删空,写入image layer=0 page=back

34、storage=test visible=true left=0 top=100trans method=crossfade time=1500wt再执行krkr.exe,可以看到图片缓缓浮现在了屏幕上把first.ks里边除了第一行外删空,写入image layer=0 page=back storage=test visible=true left=0 top=100trans method=universal rule=5 vague=100 time=500wt再执行krkr.exe,可以看到图片以一种深浅不一的方式慢慢出现在了屏幕上这就是trans的作用,可以让图片以各种方式出现。w

35、t的意义是等待trans完成再进行下边的指令,注意trans不能同时进行两个但是trans的时候,会一起trans所有层(其实trans也有layer的参数,但是写了的话只能单独trans base层,对其他层还是会全部一起trans),比如:把first.ks里边除了第一行外删空,写入image layer=0 page=fore storage=test visible=true left=0 top=100limage layer=1 page=back storage=test visible=true left=300 top=100trans method=crossfade ti

36、me=1500wt执行krkr.exe,可以看到一开始layer0的图片显示在了屏幕上,点击之后(就是那个l指令的作用),layer1的图片出现了,但是layer0的图片消失了。这是因为layer0直接用fore层载入了图片,但是back层还是空的,那么如果想要先出现layer0,然后点击再缓缓出现layer1的时候,就要用到backlay,这个命令就是把所有的layer 里边fore层的内容复制到back层把first.ks里边除了第一行外删空,写入image layer=0 page=fore storage=test visible=true left=0 top=100lbacklay

37、image layer=1 page=back storage=test visible=true left=300 top=100trans method=crossfade time=1500wt执行krkr.exe,就可以看到一开始layer0的图片显示在了屏幕上,点击之后,layer1的图片缓缓出现,但是layer0也没消失,其实layer0依然是被trans了,但是因为他的表层和里层是一样的,所以在我们看来图片没有变化有时候,我们需要在一张图片上覆盖另外一张图片,当然我们可以把layer1覆盖在layer0上边,但是如果我们想对这两张图片一起操作的时候,比如move,就要把这两个图层

38、都操作到,只有两张还好,如果上边有十几张的话,就很讨厌了,这种情况下,我们可以用pimage,pimage就是把一张图片覆盖到某图层上。把first.ks里边除了第一行外删空,写入image layer=0 page=fore storage=test visible=true left=0 top=100lpimage layer=0 page=fore storage=test visible=true dx=5 dy=5执行krkr.exe,就可以看到一开始出现test图片,点击后,又一张test图片覆盖在了原来的图片上,这样以后对layer0进行任何操作,都是把整个的这个画面操作了不过

39、pimage的大小不能大于底图,超出底图的部分会被自动截掉不显示当然图片也有消失的需求,让图片消失的指令是freeimage,把first.ks里边除了第一行外删空,写入image layer=0 page=fore storage=test visible=true left=0 top=100lfreeimage layer=0 page=fore执行krkr.exe,就可以看到出现的图片,点击后消失了。同样,这种消失也可以用trans来取得效果把first.ks里边除了第一行外删空,写入image layer=0 page=back storage=test visible=true l

40、eft=0 top=100trans method=crossfade time=1500wtlfreeimage layer=0 page=backtrans method=crossfade time=1500wt因为trentswd问到了,于是补充一下,如果已经有一张图片了,只想让这张图片暂时不可见,可以用layopt来改变整个图层的可见,在需要的时候再恢复可见。把first.ks里边除了第一行外删空,写入image layer=0 page=back storage=test visible=true left=0 top=100trans method=crossfade time=

41、1500wtllayopt layer=0 page=back visible=falsetrans method=crossfade time=1500wtllayopt layer=0 page=back visible=truetrans method=crossfade time=1500wt可以看到,visible的效果也会被trans,事实上,trans之后,里层的所有信息都会被赋值给表层另外,用layopt还可以修改图层的上下顺位,图层有一个index属性,这个数字越大,图层被放在越上层。我在下边的image参数详解里边介绍了index的用法,如果在载入图片的时候就打算修改ind

42、ex当然是在image的index里边填写数字,如果是已经载入图片后想要修改图片的上下顺位,就使用layopt把first.ks里边除了第一行外删空,写入image layer=0 page=back storage=test visible=true left=0 top=0image layer=1 page=back storage=test visible=true left=50 top=50trans method=crossfade time=1500wtllayopt layer=0 page=fore index=1000layopt layer=1 page=fore in

43、dex=900可以看到图片的叠放顺序改变了,另外虽然我在例子里边没有用,这个当然也是可以被trans的总而言之,layopt 的主要作用是修改图层的各种状态,不管那个图层有没有载入图片。值得一提的是,layopt可以设置的不仅是layer图层,还有message图层下边是这次讲到的指令的各种参数,如果我没有标一定要写的,就是可以省略不写的,会使用默认值,如果该图层原来设定过值,就会使用原来设定的image指令参数详解storage一定要写要载入的图片名layer一定要写 写base或者从0开始的整数,意味着把图片载入了这一层layer,注意:1.如果写了超过在config里设定layer数量的

44、层就会报错(编号是从0开始的也就是说设定层数为3就只能用0,1,2,写layer=3就会报错);2.用layer=base的时候,那张图片一定要和窗口一样大小,不然就会报错!3.层数越大越靠上,就是说layer2能遮住layer1的图片(这里和ns是相反的),base是最下层page写back或者fore,不写就是默认foremode透过方式,一般都是alpha,不写的话默认是alphagrayscale写true的话就是把图片转成灰度图(就是去色),不写就是默认的falsergamma写0.1-9.9间的数值,调整图片颜色的红值,1.0是正常显示图片的颜色,不写就是默认1.0ggamma 调

45、整图片颜色的绿值bgamma调整图片颜色的蓝值rfloor调整图片颜色的红色的亮度最低值,0-255间的数值,不写就是正常显示图片的0 gfloor调整图片颜色的绿色的亮度最低值bfloor调整图片颜色的蓝色的亮度最低值rceil调整图片颜色的红色的亮度最高值,0-255间的数值,不写就是正常显示图片的255 gceil调整图片颜色的绿色的亮度最高值bceil调整图片颜色的蓝色的亮度最高值mcolor调整整张图片的色调,数值是0xRRGGBB的形式(去ps里可以看到),不写就是不用这个效果mopacity配合mcolor,调整的强度,0-255的数值clipleft填写数字,如果不打算把一张图

46、片全部放上去的时候,用这个可以截取图片的一部分放到layer上,这个的数字是要截取的部分的左上角x坐标,不写就是默认0cliptop要截取的部分的左上角y坐标 clipwidth要截取的部分的宽度clipheight要截取的部分的高度flipudtrue就是将图像上下翻转载入layer,不写默认falsefliplrtrue就是将图像左右翻转载入layer,不写默认falsevisible该层可见,这个不写的话默认是可见的,但是如果之前特意设定了false,不写一句visible=true就不会可见,另外要注意trans的时候会把back的可见复制到fore上,backlay同理leftlay

47、er在整个窗口中的左上角x坐标,默认0toplayer在整个窗口中的左上角y坐标,默认0pos这个是和config里边设定那个left_center right_center center之类的有关的,很鸡肋,我一般不用opacity图片透明度,0-255,默认是255不透明 mapimage领域画像相关,领域画像这个东西也挺鸡肋,我就不讲了mapaction同上index图层的上下顺序,比如设定layer1的index=100,layer2的index=50,原本在layer1上边的layer2就会降到layer1下边去。关于index的数值,kag默认0层是100000,每层加100,如l

48、ayer1就是100100,base层应该是0,就是没有能比他低的层pimage指令参数详解storage一定要写要载入的图片名layer一定要写要载入的图层page不写就默认fore key透明色,写0xRRGGBB,用于没有通道的把背景涂成纯色的那种图片,不过能用通道还是用通道吧多方便啊 dx一定要写放到底图上的左上角x坐标dy一定要写放到底图上的左上角y坐标sx载入的图片如果不打算全部载入而只载入一个区域就写这个,相当于image的clipleft,要截取部分的左上角x坐标,不写默认0 sy要截取部分的左上角y坐标,不写默认0 sw要截取部分的宽sh要截取部分的高mode覆盖上去的方式,

49、分很多种方式翻译起来太麻烦了我就不写了,想了解的人自己查指令集,不写的话默认就是直接把图片盖上去 opacity覆盖上去的图片透明度trans指令参数详解layer写了的话也只有些layer=base有效一般都不写children指令集里说的貌似是如果这个设定为true的话,写了layer=1,则会把123456一起trans,不过本来layer这个就没什么用所以这个属性也没什么用不用填他 time一定要写trans的时间,以毫秒为单位methodtrans方式,有universal crossfade scroll turn等很多种请自行查阅指令集rule 当method=universal

50、的时候,trans用的遮片路径vague当method=universal的时候,trans的边缘模糊度from当method=scroll的时候,trans的方向,可以写 lefttoprightbottom四种stay当method=scroll的时候,trans的图片移动情况,可以写stayforestaybacknostay三种freeimage指令参数详解layer一定要写释放图像的层数,只对layer有效,对message无效(看名字就知道了,这个指令是相对于image指令的,image只能用在layer上不能用在message上,这个也是)page不写的话就是默认的forelay

51、opt参数详解layer一定要写 写base或者从0开始的整数,或者message0,message1等等page写back或者fore,不写就是默认forevisible该层可见,这个不写的话默认是可见的,但是如果之前特意设定了false,不写一句visible=true就不会可见,另外要注意trans的时候会把back的可见复制到fore上,backlay同理leftlayer在整个窗口中的左上角x坐标,默认0toplayer在整个窗口中的左上角y坐标,默认0opacity图片透明度,0-255,默认是255不透明 index图层的上下顺序,比如设定layer1的index=100,lay

52、er2的index=50,原本在layer1上边的layer2就会降到layer1下边去。关于index的数值,kag默认0层是100000,每层加100,如layer1就是100100,base层应该是0,就是没有能比他低的层autohide是否跟随message0隐藏。kag里有一个指令是hidemessage,写了这个指令,message0就会被隐藏,下次点击的时候才会再次显示,一般被用来进行对话框关闭的功能,这里写了true的话,这个图层会在hidemessage时一起被隐藏,可以用于对话框上的头像之类图片显示到此为止,下一步讲文字和对话框显示【krkr教程3】文字显示和对话框设定20

53、08-07-26 23:28该教程为水螅制作,未经允许,请勿转载前边已经讲过,直接写出来的文字会显示在对话框里,这里的对话框指的是message图层,kr的图层分为layer和message两种,基本划分的话layer承担显示图片的功能,message承担显示文字,显示按钮的功能(其实layer上边也可以用ptext写字,message在有需要的时候也经常被用来进行图片显示)要显示文字,首先要设定文字,当然如果不设定的话就是默认的,默认貌似是15号字,不太记得了|一般来说,为了画面效果还是要设定下的设定当前层的字体的指令是deffont,如deffont face=黑体 size=20 col

54、or=0xffffff而文字的行间距,字间距等设定是defstyle,如defstyle linespacing=10 pitch=0 linesize=4设定文字的出现速度是delay,这个数值是全局的,就是设定的话,所有message层的文字显示都是这个速度,如delay speed=10字体的临时设定指令是font,如font face=黑体 size=18 color=0xffffff edge=true edgecolor=0x787878但是font的设定在切换焦点,trans,er等情况后就会失效行间距字间距的临时设定是style,如style linespacing=15 pi

55、tch=7 linesize=20除了字间距之类,style还可以设定文字出现的位置和是否自动换行,也是和font一样,trans,er等情况后就会失效不过defstyle和deffont的默认设置,会在第一次er之后才显示,这个应该是kr的bug,所以请大家在设定完一个message打算在上边写字的时候先er一下不管是什么样的字体,最后都要显示在message上才能被我们看到,下边讲下message的设定使用kr的话,要养成两个习惯,1.第一次使用一个message的时候,一定要先用position设定这个图层的属性,而且要同时考虑到它的fore和back的情况2.要写字或者要放按钮前,一定

56、要先将焦点current到要放字或者按钮的图层经常会有人问我“啊!为什么我的对话没有显示!”“啊!怎么我设的按钮看不到!”然后我就会问“你current在哪个层啊?”对方常常回答我“current是啥”对于message层的操作来说,最重要的就是position和current这两个指令,如果你对这两个指令还不熟,请不要对我说你已经会用kr做对话框了position是message设定的指令,用它可以设定message层的大小,位置,文字出现的位置,背景色或者背景图片等等,一个图层在使用前无论如何也要先用position设定为自己想要的样式才行,因为除了message0外,其他图层在在没设定的

57、时候,长的都是一个纯黑色的15*15的小方框(layer也是),所以如果你在画面左上角看到一个这样的方块,说明你把什么图层没设定就visible=true了。current是确定焦点的指令,它对焦上图层之后,后边的文字和按钮就都是放在那个图层上了,如果游戏一开始不写current就写文字或者按钮,他们会被放在message0上,如果在游戏中间,天知道你都做了什么操作之后,不写current就直接写文字或按钮,那么就只有神才知道那些东西被放在哪一层了所以,在写文字和按钮的前边写current是非常必要的,注意trans之后也要重新current,不然也容易出错。将下边的图片下载下来,保存为fra

58、me.png,放在image文件夹里清空first.ks,在下边写:position layer=message0 left=50 top=430 width=704 height=140 marginl=71 margint=17 marginr=73 marginb=17 opacity=0 visible=true frame=frame page=forecurrent layer=message0 pgae=foredeffont face=黑体 size=20 color=0xffffffdefstyle linespacing=10 pitch=0 linesize=4er今天天气真好哈哈哈。lrfont face=黑体 size=18 color=0x000000 edge=true edgecolor=0xffffffstyle linespacing=15 pitch=7 linesize=20 align=center真是天地交泰之相啊咔咔。ler之后和的设定就不管用了。有些时候,可能会有要竖着显示文字的需要,一个图层是横着写字还是竖着写字是一个图层参数vertical决定的,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!