krkr初級(jí)教程_第1頁(yè)
krkr初級(jí)教程_第2頁(yè)
krkr初級(jí)教程_第3頁(yè)
krkr初級(jí)教程_第4頁(yè)
krkr初級(jí)教程_第5頁(yè)
已閱讀5頁(yè),還剩104頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、krkr初級(jí)教程 開始用一個(gè)引擎,就要先明了這個(gè)引擎可以做什么。不是說(shuō)知道kr可以做avg這樣的程度,事實(shí)上只要有耐心,就算用kr做slg也是可以實(shí)現(xiàn)的。很多打算入門做avg的mm之前都沒(méi)有編程基礎(chǔ)之類,我遇到的大部分是對(duì)畫立繪或者寫劇本有愛(ài)然后轉(zhuǎn)過(guò)來(lái)的所以常常會(huì)看到這樣的問(wèn)題:“開始界面怎么做?”這種問(wèn)題,回答的話就會(huì)覺(jué)得很無(wú)力,因?yàn)殚_始界面和其他的界面沒(méi)有什么不同,并不是要另外特別輸入的什么東西,而只是一張背景圖和幾個(gè)按鈕的組合而已。有些華麗的會(huì)加上一些畫面效果,但主體就是按鈕,只要會(huì)做按鈕就可以做標(biāo)題畫面,但是似乎常常有人完全不這樣想的樣子在游戲策劃階段,思路上是整體的在想游戲界面和系統(tǒng)

2、,但到寫程序的時(shí)候,則要把這些界面全部拆分成元素來(lái)考慮。比如一個(gè)半即時(shí)rpg戰(zhàn)斗界面,我的思路就是設(shè)定一個(gè)timer,設(shè)定interval屬性,這個(gè)屬性的作用就是確定在timer為enabled = true時(shí)每隔多少時(shí)間跳轉(zhuǎn)到ontimer()一次。在ontimer()里邊就可以單位數(shù)值的增加時(shí)間變量,以及每跳轉(zhuǎn)到這里一次扣除根據(jù)各個(gè)角色速度計(jì)算出來(lái)的時(shí)間槽減少值,并根據(jù)這個(gè)變化對(duì)應(yīng)的改變每個(gè)角色時(shí)間槽內(nèi)色塊的長(zhǎng)度。而當(dāng)長(zhǎng)度為0時(shí)也就是記錄速度槽長(zhǎng)度的變量為0時(shí)就跳轉(zhuǎn)到該角色的行動(dòng)模塊,行動(dòng)模塊由按鈕組成,比如法術(shù),單擊了法術(shù)按鈕后跳轉(zhuǎn)到法術(shù)模塊,根據(jù)人物不同出現(xiàn)法術(shù)的選擇菜單依然只是按鈕,

3、選擇了某個(gè)按鈕后就清空各個(gè)按鈕,再播放角色的攻擊動(dòng)畫,和敵人的被攻擊動(dòng)畫有時(shí)候也不是什么動(dòng)畫,有張圖就可以了|動(dòng)畫播放完畢根據(jù)雙方攻擊力防御力魔功魔防之類計(jì)算下敵人的損失對(duì)于游戲平衡來(lái)說(shuō)這里的計(jì)算式設(shè)定很重要,如果主角有兵器養(yǎng)成之類的設(shè)定還可以在主角兵器使用次數(shù)變量上加1之類之類,這些都很自由了。因?yàn)橹鹘堑谋黟B(yǎng)成的效果不是在這里就體現(xiàn)的,而是根據(jù)使用次數(shù)變量再經(jīng)過(guò)計(jì)算體現(xiàn)的,所以這里只要改變次數(shù)變量就可以取得相應(yīng)效果了而這些效果的模塊一般寫在其他地方,不要手動(dòng)去調(diào)整所有變量,相互有影響的變量讓他自己影響。當(dāng)某角色的hp變量為0時(shí)就判斷他進(jìn)入死亡狀態(tài),同時(shí)的麻痹,盲目之類的狀態(tài)也都可以用變量賦

4、值,在ontimer里用if進(jìn)行各種動(dòng)作的判斷。就是說(shuō),一個(gè)戰(zhàn)斗界面并不是有三個(gè)角色在和三個(gè)敵人戰(zhàn)斗,而是上方有一些變量控制的色塊當(dāng)然也可以華麗的用圖片,下方有幾個(gè)人物站立動(dòng)畫,到一定時(shí)間會(huì)出現(xiàn)按鈕。要做一個(gè)這樣的界面,需要會(huì)的就是1對(duì)畫面色塊的長(zhǎng)度控制,2動(dòng)畫播放的控制,3按鈕的設(shè)置,4清晰的變量處理。如果還想要什么華麗的畫面效果的話就再進(jìn)修一下各種畫面動(dòng)作。自己分析出這些元素,然后就可以看對(duì)應(yīng)的引擎可不可以做得到,或者自己能不能實(shí)現(xiàn)這些功能,到這一步時(shí),對(duì)別人的提問(wèn)才比較有誠(chéng)意。什么都不想,直接去問(wèn)“戰(zhàn)斗界面怎么做”“對(duì)話界面怎么做”,會(huì)讓回答的人很為難的,因?yàn)橐阉悸方忉屒宄苈闊?,看?/p>

5、如此努力的解釋一個(gè)戰(zhàn)斗界面的構(gòu)成也沒(méi)講清楚就知道了而且每個(gè)人的思路也不一樣,要實(shí)現(xiàn)某個(gè)目的想采取的途徑也是不一樣的。那么就從kr可以做什么說(shuō)起。這里就只講kag層面,tjs層面應(yīng)該不會(huì)涉及但是我必須要說(shuō)的是,kr和ns比較起來(lái),最大的優(yōu)點(diǎn)就是tjs就是說(shuō),用ns的時(shí)候,你發(fā)現(xiàn)某個(gè)效果做不到,那么基本上就是做不到了,但是kr的話,在kag功能和ns類似層面做不到的事情可以用tjs完成,因?yàn)閠js對(duì)應(yīng)更基層,也可依據(jù)需要自由修改kag的指令內(nèi)容。但是這里是初初級(jí)入門就不多談了做一個(gè)一般的電子小說(shuō),需要的功能有1.畫面的插入,精靈的動(dòng)作控制如位置設(shè)定,移動(dòng),漸變之類,2.按鈕和標(biāo)簽跳轉(zhuǎn),3.文字對(duì)話

6、的顯示,4.save/load功能就是因?yàn)檫@種東西自己寫很麻煩所以才需要直接用引擎如果是分歧式電子小說(shuō)或者要加入養(yǎng)成要素,那就需要5.對(duì)變量的控制。kag現(xiàn)在開始講的都是kcddp的kagexpress,其他的版本會(huì)有一些指令的不同,推薦使用kagexpress,第一是中文,第二是增添了很多方便的指令,可以到去下載的畫面控制分為layer層和massage層,具體的指令使用方法見docjpnkag3doc。layer層主要承擔(dān)前景圖片的插入如人物立繪,使用方法是image,如:image layer=25 page=back storage=m1 visible=

7、true x=103 y=25 opacity=255 cond=f.月 = 1kr的語(yǔ)句格式一般都是這樣,“指令 屬性1=xxx 屬性2=xxx 屬性3=xxx”或者“指令 屬性1=xxx 屬性2=xxx 屬性3=xxx”這兩種效果是一樣的,但后邊可以再跟,的話那一行就結(jié)束了屬性的設(shè)定順序無(wú)所謂,可以省略的屬性不寫也可以,屬性能不能省略可以查閱指令集上邊那句話的直譯就是就是: 載入圖片,在layer第25層層值越大越上方顯示,25層的圖片可以覆蓋住24-0層和base層,不過(guò)這個(gè)是由圖層的index屬性控制,可用layopt更改,kagexpress默認(rèn)0層是100000,每層加100,如l

8、ayer1就是100100,把layer25的index改成100101的話,它的顯示就會(huì)在layer1和layer2之間,message層默認(rèn)是在layer之上的,也可以通過(guò)這種方法將message層放在layer層的圖片之下。,在里層kag的所有層都分為表層和里層,表層是我們能看到的,將圖片放在里層再通過(guò)trans指令將里層復(fù)制到表層可達(dá)到各種漸變,淡入等畫面效果,如果直接image在表層,則就是瞬間顯示。,圖片名叫“m1”在默認(rèn)目錄下可以不用寫路徑和后綴,kr支持的圖片格式請(qǐng)自己查閱說(shuō)明,最值得一提的是可以直接用png也可以用同樣有a通道的tlg,kr自帶的工具里有將圖片轉(zhuǎn)為tlg的工具

9、。,可見能見設(shè)定為false就是不可見,左上角坐標(biāo)是103,25,透明度255范圍0-255,0就是完全透明,當(dāng)變量“f.月”值為1的時(shí)候執(zhí)行絕大部分kag指令都有cond這個(gè)指令,就是在cond=的式子為真時(shí)執(zhí)行整個(gè)語(yǔ)句,為假時(shí)就當(dāng)它不存在的跳過(guò),比寫if方便多了。必須注意的是式子格式,“=”“這些演算子兩邊一定要各有一個(gè)半角空格。注意,base層插入的圖片一定要和窗體大小一樣,不然會(huì)花屏。如果m1是動(dòng)畫則不需要多寫什么插入后它會(huì)自己動(dòng)作的。有關(guān)于動(dòng)畫,kr的圖片動(dòng)畫是單獨(dú)用asd文件寫的如圖片是m1,需要進(jìn)行截取的動(dòng)畫圖片就要叫“m1_a”,然后新建一個(gè)文本文件,重命名為m1.asd,具體

10、寫法請(qǐng)參閱systemlinebreak.asd,只有image在layer層才能播放動(dòng)畫,pimage和layer是message層都不行。kcddp論壇里有大人寫了其他的動(dòng)畫播放插件,討厭asd或者有需要的人可以去看看載入圖片后,也有很多方便的指令可以做出各種畫面效果,如我前邊提到的trans,如果只打算trans一個(gè)圖層,trans里也有l(wèi)ayer屬性設(shè)定,如果不設(shè)定就是將所有圖層的里層復(fù)制到表層,這種情況下,一般使用backlay,該指令的意思是瞬間把所有表層復(fù)制到里層,使用backlay之后再image或freeimage在里層,然后trans的話,就可以達(dá)成只有剛操作的那一層出現(xiàn)畫

11、面效果的變化。trans的layer屬性基本上只對(duì)base層適用其他層的話請(qǐng)死心的使用backlay吧move也是常用的畫面操作指令,使用格式是move layer=1 page=fore time=1000 path=(0,0,255)(50,50,100)這樣,其它也還有一些屬性,不設(shè)定的話就用默認(rèn)的,具體參看指令集docjpnkag3doc。注意path的移動(dòng)是從當(dāng)前l(fā)ayer的位置開始的,比如image時(shí)left=300,top=125,move的時(shí)候就會(huì)從300,125用1000ms移動(dòng)到0,0,再用1000ms移動(dòng)到50,50。第三個(gè)位置是透明度,有時(shí)候不方便用trans也可以用m

12、ove不動(dòng)左上角坐標(biāo)只動(dòng)透明度來(lái)達(dá)成淡入淡出效果。action也是常用到的指令,具有畫面旋轉(zhuǎn),變形,搖動(dòng)等多種功能,具體參閱kagexaction.txt.這些指令在執(zhí)行時(shí)如果后便不跟著wait,那么就會(huì)一邊執(zhí)行一邊直接執(zhí)行下一語(yǔ)句比ns方便的地方,但是trans和其他的混用的時(shí)候要考慮到fore和back層的變化,比如,fore在被移動(dòng)的時(shí)候trans,back層卻沒(méi)移動(dòng)那么trans出來(lái)的圖片就是back層沒(méi)移動(dòng)的樣子另外,同時(shí)使用兩個(gè)trans是不可能的。move,trans都是對(duì)message也適用的指令。默認(rèn)message層是message0,比如在文檔里直接寫入一行“今天天氣真好”

13、,那么這行字就會(huì)顯示在message0上。設(shè)定當(dāng)前操作的message層是用current layer=message1 page=back這樣,注意message層的back有時(shí)候是默認(rèn)不顯示的,在第一次用某個(gè)message時(shí)最好加一句layopt layer=message8 page=back visible=true這樣,不然你所載入的東西可能不會(huì)顯示。message層承擔(dān)的主要是文字顯示和按鈕的功能。文字的顯示就是current之后,在文檔里直接寫入文字,就會(huì)在current的message層左上角的部分開始顯示文字,kr有自動(dòng)換行和自動(dòng)翻頁(yè)的功能。message層的具體設(shè)定是使用p

14、osition這一指令進(jìn)行的,如:position layer=message1 left=97 top=480 width=661 height=100 marginl=0 margint=0 marginr=0 marginb=0 opacity=0 visible=trueleft和top就是設(shè)定改message層的左上角,height和width是高和寬,marginl,t,r,b則分別是字向內(nèi)縮進(jìn)多少像素,opacity是透明度,在message層設(shè)定顏色的時(shí)候用,不過(guò)一般來(lái)說(shuō),用色塊做對(duì)話框哪里有圖片來(lái)的華麗所以它還有對(duì)話框圖片載入屬性“frame”,在該屬性里加入對(duì)話框圖片的名字

15、就好。載入后如果想消去就寫“frame=”就可以了文字的控制主要有l(wèi)行末等待點(diǎn)擊,p翻頁(yè)等待點(diǎn)擊,r改行,er清空該message層該層全部清空包括該層的按鈕文字的字體用font設(shè)定,size是大小,face是字體,color是顏色,italic是斜體,bold是黑體,shadow是陰影,edge是鑲邊,edgecolor和shadowcolor就不用說(shuō)了defstyle設(shè)定行間距字距之類的值,這些看指令集可以很容易明白,就不多說(shuō)了。kag里的按鈕全部是放在message層上的,分為兩種:button和link,link就是文字鏈接,使用方法如下link storage=open.ks tar

16、get=*start我是按鈕endlinkrlink的部分是表示下邊開始的文字是link,在遇到endlink之前,所有該message層上的文字都會(huì)變成一個(gè)點(diǎn)擊后跳轉(zhuǎn)到open.ks里*start標(biāo)簽的按鈕。一般來(lái)說(shuō),我看到的中文kr教程基本上是用link的,因?yàn)榉奖悴贿^(guò)真的制作游戲的話,當(dāng)然是用button華麗?。∮∠笾形覐膩?lái)沒(méi)在游戲里用過(guò)linkbutton的使用格式如下:locate x=100 y=555button graphic=n target=*n clickse=l1 enterse=b2 recthit=falsegraphic是使用的圖片,格式是三張排在一起,第一張是平

17、時(shí),第二張是按下,第三張是鼠標(biāo)接觸。或者也可以不設(shè)graphic,將三張圖片分開用normal通常時(shí)的圖片;over鼠標(biāo)移動(dòng)到按鈕上時(shí)的圖片,省略則使用與 normal 同一張圖片;on點(diǎn)下鼠標(biāo)時(shí)的圖片,省略則使用與 over 同一張圖片。具體說(shuō)明可以去看kagex追加指令文檔。也可以利用button載入圖片如button normal=a1就可以只是載入了一張圖片,而沒(méi)有其他的作用。在button的位置上再用button后來(lái)定義的button圖片會(huì)把先定義的覆蓋。同時(shí)必須注意的是,message層和layer層不一樣,message層在position里注明了大小,如果在大小之外放butto

18、n或者文字是不會(huì)顯示的,如果在邊緣放置就會(huì)只顯示范圍內(nèi)的部分,其他部分會(huì)被切掉。這一點(diǎn)其實(shí)可以利用來(lái)作很多動(dòng)態(tài)效果按鈕的清空和文字一樣,用ertarget是跳轉(zhuǎn)到的標(biāo)簽,有關(guān)于標(biāo)簽的部分在這里說(shuō)一下好了。標(biāo)簽用*開頭,使用方法見下:*哈哈eval exp=tf.temp1=tf.temp1 + 1該句的意思是給臨時(shí)變量tf.temp1的值加1,請(qǐng)注意賦值的是“=”,判斷相等的是“ = ”,還有一般的運(yùn)算式兩邊要記得加半角空格,有些時(shí)候好像不會(huì)有影響有些時(shí)候卻會(huì)所以還是在意一點(diǎn)比較好。另外“”之后表示的就是注釋部分,在運(yùn)行代碼時(shí)程序會(huì)將之忽略掉,一行都是注釋的話可以用“;”jump target

19、=*哈哈 cond=tf.temp1 16*特殊事件1那我們一起去吃蜜瓜吧。p當(dāng)某個(gè)數(shù)值比如好感度到達(dá)一定的數(shù)值的時(shí)候,就跳至某個(gè)事件,這是戀愛(ài)養(yǎng)成類游戲最常用到的設(shè)定這個(gè)變量也可以是體力值,智力值之類的任何東西,如何利用變量是非常自由的,每個(gè)人的使用習(xí)慣也不一樣,多發(fā)揮想象力就好。變量的計(jì)算符除了“+”“-”“*”“/”外還有“”除取整,和及或的符號(hào)是“&”“|”使用是eval exp=f.temp0=5 cond=f.temp1 = 1|f.temp2 = 5這樣。變量銷毀是eval exp=delete f.temp1。變量的顯示是emb,用法:eval exp=f.主角姓名=水螅emb

20、 exp=f.主角姓名這樣,水螅就會(huì)顯示在message上。差不多基礎(chǔ)部分需要注意的就是這些了,開始學(xué)kr最重要的文件就是指令集,雖然那個(gè)是日文的不過(guò),只要有愛(ài)的話,還是可以半猜半試的看懂的無(wú)論什么教程都不會(huì)那么詳細(xì)地把所有指令的用法說(shuō)明一遍,所以,想要知道一個(gè)效果能不能實(shí)現(xiàn),自己查一下指令集是基本的。kag其實(shí)封裝了很多方便的指令,多看看指令集也可以避免重復(fù)勞動(dòng)那么,初初級(jí)kr入門注意就到此結(jié)束如果我依然這么閑的話,大概會(huì)在不久的將來(lái)做出初級(jí)教程來(lái)|大概【krkr教程1】建立新的工程2008-07-26 17:03這種從基礎(chǔ)基礎(chǔ)開始的kag教程天娜其實(shí)寫過(guò)了因?yàn)槲液退胟ag的習(xí)慣不很一樣而

21、且我今天閑的發(fā)毛于是就再做一個(gè)這樣的教程該教程為水螅制作,未經(jīng)允許,請(qǐng)勿轉(zhuǎn)載這個(gè)教程是以kcddp漢化的kagexpress為基礎(chǔ)的,有部分指令可能和日文版有出入首先下載了kagexpress之后,使用里邊的wizard.exe建立一個(gè)新工程,建立完成之后就會(huì)彈出kacg.config的窗口,這個(gè)都是中文,按照需要的內(nèi)容進(jìn)行設(shè)置就好,這里設(shè)置的想要修改就在新建立的那個(gè)工程文件夾中的config.tjs里進(jìn)行相應(yīng)的修改現(xiàn)在可以看一下生成的工程文件夾的結(jié)構(gòu)根目錄下是一個(gè)krkr.exe和一個(gè)data文件夾這里的krkr.exe就是真正意義上的krkr,如果單獨(dú)執(zhí)行它的話,會(huì)跳出目錄選擇對(duì)話框讓你選

22、擇游戲資料的目錄,然后從那個(gè)目錄中尋找startup.tjs,執(zhí)行里邊的內(nèi)容但是這里我們建立的工程是已經(jīng)關(guān)聯(lián)好的,雙擊krkr.exe的話,會(huì)直接執(zhí)行旁邊的data文件夾里邊的startup.tjskagexpress的執(zhí)行順序是startup.tjs-initialize.tjs-func.ks-first.ks對(duì)于初學(xué)者來(lái)說(shuō),這些都不用管,kag具體寫游戲的部分從first.ks開始寫data文件夾里有startup.tjs,krenvprf.kep,config.tjs,一些dll文件,11個(gè)文件夾startup.tjs的作用剛才講過(guò)了,就是讓kr去執(zhí)行initialize.tjs的內(nèi)容

23、,這個(gè)文件不需要修改它krenvprf.kep記錄的是一些游戲運(yùn)行的信息,刪掉它還會(huì)再生成,也不需要管他config.tjs是游戲整體的一些設(shè)定,里邊有大量的中文注釋,建議一行一行看下去然后修改自己需要的地方。(tjs文件的打開方式和txt文件是一樣的,用notepad等就可以開)一般來(lái)說(shuō),進(jìn)行修改的主要內(nèi)容是:1.標(biāo)題欄文字system.title(這里寫的文字將會(huì)出現(xiàn)在游戲窗口的標(biāo)題欄上)2.使用預(yù)渲染文字global.useconfigmappfont(這個(gè)牽扯到打包字體,在以后說(shuō),不使用就是false)3.窗口大小scwidth和scheight(kr可以創(chuàng)建任意大小的窗口,但是請(qǐng)注意

24、窗口大小很奇怪的話可能會(huì)導(dǎo)致全屏化出錯(cuò),另外使用的素材也請(qǐng)一定要對(duì)比著窗口大小來(lái)制作)4.存檔方式freesavedatamode(如果打算做成lm那種打開選擇文件的對(duì)話框來(lái)選擇存檔就寫true,如果要像一般游戲那樣有自己做的存讀檔界面就寫false)5.是否保存縮略圖savethumbnail(存讀檔界面上如果設(shè)定了需要有存檔畫面的就要寫true)6.存檔地址savedatalocation7.是否在存檔中保存宏savemacros(除非你確定你的游戲絕對(duì)不會(huì)再做任何macro方面的修改了,否則建議設(shè)定為false)8.自動(dòng)記錄已讀文章autorecordpageshowing(設(shè)定為tru

25、e的時(shí)候,還沒(méi)讀過(guò)的文字沒(méi)辦法skip,這些信息記錄在datasc.ksd和datasu.ksd文件里)9.可用的音效緩沖數(shù)量numsebuffers(設(shè)定為3的時(shí)候就是可以同時(shí)播放3個(gè)音效,通道為0、1、2,具體音效播放方法以后再說(shuō))10.可用的layer數(shù)量numcharacterlayers(設(shè)定為3的時(shí)候就是layer0 layer1 layer2可以用,如果寫了layer3就會(huì)報(bào)錯(cuò),請(qǐng)務(wù)必注意,但是該數(shù)量可以在腳本中隨時(shí)更改,未必一定要在這里改)11.可用的message數(shù)量nummessagelayers(設(shè)定為3的時(shí)候就是message0 message1 message2可以用

26、,如果寫了message3就會(huì)報(bào)錯(cuò),請(qǐng)務(wù)必注意,但是該數(shù)量可以在腳本中隨時(shí)更改,未必一定要在這里改)12.進(jìn)入游戲后message0是否默認(rèn)可見initialmessagelayervisible(message0的可見在游戲里可以任意修改,這里設(shè)成什么都無(wú)所謂,但是一定要知道自己設(shè)了什么,做游戲的時(shí)候,隨時(shí)明白自己的每個(gè)圖層的情況是很重要的)13.最多可存的進(jìn)度數(shù)量numbookmarks 14.菜單設(shè)定menu_visible_config15.自動(dòng)換行換頁(yè)設(shè)定defaultautoreturn(一般設(shè)定為true,這樣文字在超過(guò)對(duì)話框的時(shí)候會(huì)自動(dòng)換行或等待翻頁(yè))16.背景音樂(lè)文件格式ty

27、pe(就是用playbgm播放的音樂(lè),播放不屬于當(dāng)前設(shè)定格式的音樂(lè)文件就會(huì)沒(méi)有聲音,注意所有用插件播放的比如mp3 ogg都是設(shè)定為wave)以上是通常會(huì)設(shè)定的部分,沒(méi)有寫到的部分要么是在游戲里可以隨便改,要么是一般不太用到(好吧其實(shí)是我一般不太用到,我很少做有配音有動(dòng)畫之類的游戲)dll文件都是些插件,這些在func.ks里一般都載入了,以后會(huì)講到插件載入的方法11個(gè)文件夾,這些文件夾名字都是在initialize.tjs里設(shè)定好的,在游戲里調(diào)用素材的時(shí)候不用寫路徑,直接寫文件名,kr就會(huì)在這11個(gè)文件夾里尋找這個(gè)名字的文件然后調(diào)用,所以說(shuō),即使是不同文件夾里的文件,也一定不要重名!相對(duì)的,

28、如果不是放在這些文件夾里的文件,要調(diào)用的時(shí)候就要寫明路徑這些文件夾里system放置的建立起kag的tjs文件,對(duì)話等待點(diǎn)擊時(shí)候出現(xiàn)的那兩個(gè)動(dòng)畫文件(這個(gè)可以在config.tjs里修改他們的顯示,這兩個(gè)動(dòng)畫文件隨時(shí)可以用任何圖片替換,放在這里其實(shí)是為了作為動(dòng)畫的范例給人看的),還有幾個(gè)ks文件(這些是kagexpress新加的,里邊封裝了一些macro,不過(guò)因?yàn)槲议_始學(xué)kr看的是比較早期的文檔,所以已經(jīng)養(yǎng)成了習(xí)慣,這些里邊封的macro基本想不起來(lái)去用,以后的教程里應(yīng)該也不會(huì)提到,有興趣的人可以自己去開那些文件查看)rule文件夾里邊放了一些遮片素材,這些文件想要就要不想要就刪,沒(méi)什么關(guān)鍵性

29、,遮片自己做也很方便image文件夾里邊放了下雨和下雪用的圖片,下雨和下雪的插件是寫在system的rain.ks和snow.ks里邊的,這兩個(gè)插件已經(jīng)在func.ks里邊載入了,隨時(shí)可以用,這些圖片也可以更換,但是不能改動(dòng)文件名,除非在插件里邊做相應(yīng)的修改,關(guān)于那兩個(gè)插件,我以后可能會(huì)講吧雖然不講也沒(méi)什么大影響scenario文件夾里邊放了first.ks,游戲的腳本編寫從這里開始其他文件夾應(yīng)該都是空的還有一點(diǎn)要強(qiáng)調(diào)的東西就是,krkr運(yùn)行的時(shí)候,按shift+f1可以調(diào)出控制臺(tái)debug什么的全部要靠控制臺(tái)的具體的使用方法我會(huì)在后邊的教程中做詳細(xì)說(shuō)明到此,建立新的工程部分完結(jié),下一部分開始

30、講圖片的放置相關(guān)?!緆rk教程2】圖片顯示2008-07-26 20:12該教程為水螅制作,未經(jīng)允許,請(qǐng)勿轉(zhuǎn)載用ue或者notepad或者其他的隨便什么文本編輯工具(不要用word)打開first.ks,默認(rèn)的工程中有這么幾句:*start歡迎來(lái)到kirikiri/kag的世界!lr把這兩行都刪掉,在第一行寫position layer=message0 page=fore visible=falsebacklay這一行是如果在config里邊沒(méi)有把message0設(shè)為不可見的話,在這里把它設(shè)為不可見現(xiàn)在開始進(jìn)行圖片的顯示在這之前要說(shuō)的是,在kr里邊,寫在里邊的是指令,寫在后邊的是指令(和意義

31、一樣,不過(guò)可以一行寫多個(gè)指令這樣排,后邊只能寫一條指令,再寫就要換行),寫在*后邊的是標(biāo)簽(關(guān)于標(biāo)簽以后會(huì)詳細(xì)講),寫在;后邊的是注釋(就是程序當(dāng)他不存在,單純寫給自己看的),直接寫在外邊的文字會(huì)顯示在對(duì)話框上,另外如果在里邊寫了不存在的指令就會(huì)報(bào)錯(cuò)想要在kr里用kag顯示一張圖片有很多種方式,可以用image,配合image的還有pimage,可以用position里的frame,可以用buttonkr支持的圖片類型包括jpgbmppngeritlg5tlg5.聽說(shuō)還可以通過(guò)載入susie的插件使用其他的文件類型,不過(guò)這個(gè)我沒(méi)嘗試過(guò)。這些圖片里,像是bmp,png,tlg5,tlg6這種自帶

32、通道的就可以直接顯示透明通道,不用再做什么遮片了,如果是jpg圖片,卻不想直接把整張圖的方形都顯示上去,就要做遮片,如下圖所示:白色是不透明的部分,黑色是透明的部分,灰色是半透明的部分,原文件(上邊那張)命名為test.jpg的話,遮片文件(下邊那張)命名為test_m.jpg,kr在讀取圖片的時(shí)候會(huì)自動(dòng)把遮片用上的。顯示的時(shí)候如下:最常用的圖片顯示命令是image,其他幾種方法我會(huì)在其他的地方遇到的時(shí)候詳細(xì)講解首先,找到一張你想要顯示的jpg圖片,命名文件名為“test”(就是完整文件名為test.jpg),把這張圖片放進(jìn)image文件夾在first.ks里第二行寫入image layer=

33、0 page=fore storage=test visible=true left=0 top=100然后執(zhí)行krkr.exe,可以看到圖片出現(xiàn)在了屏幕上但是這種出現(xiàn)是直接出現(xiàn),一般來(lái)說(shuō),我們會(huì)希望圖片出現(xiàn)時(shí)有一些更好看的效果,這種時(shí)候就用到了里層和表層的概念kr的所有層都是分為表層(fore)和里層(back)的,表層就是可以看到的層,里層就是永遠(yuǎn)不會(huì)被你看到的層,可以通過(guò)trans把里層的內(nèi)容通過(guò)各種方式復(fù)制到表層來(lái)達(dá)到一些畫面效果,也可以用backlay把表層的內(nèi)容復(fù)制到里層,所以說(shuō),表層就是表現(xiàn)用的層,里層就是準(zhǔn)備用的層。把first.ks里邊除了第一行外刪空,寫入image lay

34、er=0 page=back storage=test visible=true left=0 top=100trans method=crossfade time=1500wt再執(zhí)行krkr.exe,可以看到圖片緩緩浮現(xiàn)在了屏幕上把first.ks里邊除了第一行外刪空,寫入image layer=0 page=back storage=test visible=true left=0 top=100trans method=universal rule=5 vague=100 time=500wt再執(zhí)行krkr.exe,可以看到圖片以一種深淺不一的方式慢慢出現(xiàn)在了屏幕上這就是trans的作用

35、,可以讓圖片以各種方式出現(xiàn)。wt的意義是等待trans完成再進(jìn)行下邊的指令,注意trans不能同時(shí)進(jìn)行兩個(gè)但是trans的時(shí)候,會(huì)一起trans所有層(其實(shí)trans也有l(wèi)ayer的參數(shù),但是寫了的話只能單獨(dú)trans base層,對(duì)其他層還是會(huì)全部一起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 meth

36、od=crossfade time=1500wt執(zhí)行krkr.exe,可以看到一開始layer0的圖片顯示在了屏幕上,點(diǎn)擊之后(就是那個(gè)l指令的作用),layer1的圖片出現(xiàn)了,但是layer0的圖片消失了。這是因?yàn)閘ayer0直接用fore層載入了圖片,但是back層還是空的,那么如果想要先出現(xiàn)layer0,然后點(diǎn)擊再緩緩出現(xiàn)layer1的時(shí)候,就要用到backlay,這個(gè)命令就是把所有的layer 里邊f(xié)ore層的內(nèi)容復(fù)制到back層把first.ks里邊除了第一行外刪空,寫入image layer=0 page=fore storage=test visible=true left=0

37、top=100lbacklayimage layer=1 page=back storage=test visible=true left=300 top=100trans method=crossfade time=1500wt執(zhí)行krkr.exe,就可以看到一開始layer0的圖片顯示在了屏幕上,點(diǎn)擊之后,layer1的圖片緩緩出現(xiàn),但是layer0也沒(méi)消失,其實(shí)layer0依然是被trans了,但是因?yàn)樗谋韺雍屠飳邮且粯拥?,所以在我們看?lái)圖片沒(méi)有變化有時(shí)候,我們需要在一張圖片上覆蓋另外一張圖片,當(dāng)然我們可以把layer1覆蓋在layer0上邊,但是如果我們想對(duì)這兩張圖片一起操作的時(shí)候,

38、比如move,就要把這兩個(gè)圖層都操作到,只有兩張還好,如果上邊有十幾張的話,就很討厭了,這種情況下,我們可以用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執(zhí)行krkr.exe,就可以看到一開始出現(xiàn)test圖片,點(diǎn)擊后,又一張test圖片覆蓋在了原來(lái)的圖片上,這樣以后對(duì)layer0進(jìn)行任何操作,

39、都是把整個(gè)的這個(gè)畫面操作了不過(guò)pimage的大小不能大于底圖,超出底圖的部分會(huì)被自動(dòng)截掉不顯示當(dāng)然圖片也有消失的需求,讓圖片消失的指令是freeimage,把first.ks里邊除了第一行外刪空,寫入image layer=0 page=fore storage=test visible=true left=0 top=100lfreeimage layer=0 page=fore執(zhí)行krkr.exe,就可以看到出現(xiàn)的圖片,點(diǎn)擊后消失了。同樣,這種消失也可以用trans來(lái)取得效果把first.ks里邊除了第一行外刪空,寫入image layer=0 page=back storage=test

40、 visible=true left=0 top=100trans method=crossfade time=1500wtlfreeimage layer=0 page=backtrans method=crossfade time=1500wt因?yàn)閠rentswd問(wèn)到了,于是補(bǔ)充一下,如果已經(jīng)有一張圖片了,只想讓這張圖片暫時(shí)不可見,可以用layopt來(lái)改變整個(gè)圖層的可見,在需要的時(shí)候再恢復(fù)可見。把first.ks里邊除了第一行外刪空,寫入image layer=0 page=back storage=test visible=true left=0 top=100trans method=

41、crossfade time=1500wtllayopt layer=0 page=back visible=falsetrans method=crossfade time=1500wtllayopt layer=0 page=back visible=truetrans method=crossfade time=1500wt可以看到,visible的效果也會(huì)被trans,事實(shí)上,trans之后,里層的所有信息都會(huì)被賦值給表層另外,用layopt還可以修改圖層的上下順位,圖層有一個(gè)index屬性,這個(gè)數(shù)字越大,圖層被放在越上層。我在下邊的image參數(shù)詳解里邊介紹了index的用法,如果在

42、載入圖片的時(shí)候就打算修改index當(dāng)然是在image的index里邊填寫數(shù)字,如果是已經(jīng)載入圖片后想要修改圖片的上下順位,就使用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

43、=1 page=fore index=900可以看到圖片的疊放順序改變了,另外雖然我在例子里邊沒(méi)有用,這個(gè)當(dāng)然也是可以被trans的總而言之,layopt 的主要作用是修改圖層的各種狀態(tài),不管那個(gè)圖層有沒(méi)有載入圖片。值得一提的是,layopt可以設(shè)置的不僅是layer圖層,還有message圖層下邊是這次講到的指令的各種參數(shù),如果我沒(méi)有標(biāo)一定要寫的,就是可以省略不寫的,會(huì)使用默認(rèn)值,如果該圖層原來(lái)設(shè)定過(guò)值,就會(huì)使用原來(lái)設(shè)定的image指令參數(shù)詳解storage一定要寫要載入的圖片名layer一定要寫 寫base或者從0開始的整數(shù),意味著把圖片載入了這一層layer,注意:1.如果寫了超過(guò)在co

44、nfig里設(shè)定layer數(shù)量的層就會(huì)報(bào)錯(cuò)(編號(hào)是從0開始的也就是說(shuō)設(shè)定層數(shù)為3就只能用0,1,2,寫layer=3就會(huì)報(bào)錯(cuò));2.用layer=base的時(shí)候,那張圖片一定要和窗口一樣大小,不然就會(huì)報(bào)錯(cuò)!3.層數(shù)越大越靠上,就是說(shuō)layer2能遮住layer1的圖片(這里和ns是相反的),base是最下層page寫back或者fore,不寫就是默認(rèn)foremode透過(guò)方式,一般都是alpha,不寫的話默認(rèn)是alphagrayscale寫true的話就是把圖片轉(zhuǎn)成灰度圖(就是去色),不寫就是默認(rèn)的falsergamma寫0.1-9.9間的數(shù)值,調(diào)整圖片顏色的紅值,1.0是正常顯示圖片的顏色,不寫

45、就是默認(rèn)1.0ggamma 調(diào)整圖片顏色的綠值bgamma調(diào)整圖片顏色的藍(lán)值rfloor調(diào)整圖片顏色的紅色的亮度最低值,0-255間的數(shù)值,不寫就是正常顯示圖片的0 gfloor調(diào)整圖片顏色的綠色的亮度最低值bfloor調(diào)整圖片顏色的藍(lán)色的亮度最低值rceil調(diào)整圖片顏色的紅色的亮度最高值,0-255間的數(shù)值,不寫就是正常顯示圖片的255 gceil調(diào)整圖片顏色的綠色的亮度最高值bceil調(diào)整圖片顏色的藍(lán)色的亮度最高值mcolor調(diào)整整張圖片的色調(diào),數(shù)值是0xrrggbb的形式(去ps里可以看到),不寫就是不用這個(gè)效果mopacity配合mcolor,調(diào)整的強(qiáng)度,0-255的數(shù)值cliplef

46、t填寫數(shù)字,如果不打算把一張圖片全部放上去的時(shí)候,用這個(gè)可以截取圖片的一部分放到layer上,這個(gè)的數(shù)字是要截取的部分的左上角x坐標(biāo),不寫就是默認(rèn)0cliptop要截取的部分的左上角y坐標(biāo) clipwidth要截取的部分的寬度clipheight要截取的部分的高度f(wàn)lipudtrue就是將圖像上下翻轉(zhuǎn)載入layer,不寫默認(rèn)falsefliplrtrue就是將圖像左右翻轉(zhuǎn)載入layer,不寫默認(rèn)falsevisible該層可見,這個(gè)不寫的話默認(rèn)是可見的,但是如果之前特意設(shè)定了false,不寫一句visible=true就不會(huì)可見,另外要注意trans的時(shí)候會(huì)把back的可見復(fù)制到fore上,b

47、acklay同理leftlayer在整個(gè)窗口中的左上角x坐標(biāo),默認(rèn)0toplayer在整個(gè)窗口中的左上角y坐標(biāo),默認(rèn)0pos這個(gè)是和config里邊設(shè)定那個(gè)left_center right_center center之類的有關(guān)的,很雞肋,我一般不用opacity圖片透明度,0-255,默認(rèn)是255不透明 mapimage領(lǐng)域畫像相關(guān),領(lǐng)域畫像這個(gè)東西也挺雞肋,我就不講了mapaction同上index圖層的上下順序,比如設(shè)定layer1的index=100,layer2的index=50,原本在layer1上邊的layer2就會(huì)降到layer1下邊去。關(guān)于index的數(shù)值,kag默認(rèn)0層是1

48、00000,每層加100,如layer1就是100100,base層應(yīng)該是0,就是沒(méi)有能比他低的層pimage指令參數(shù)詳解storage一定要寫要載入的圖片名layer一定要寫要載入的圖層page不寫就默認(rèn)fore key透明色,寫0xrrggbb,用于沒(méi)有通道的把背景涂成純色的那種圖片,不過(guò)能用通道還是用通道吧多方便啊 dx一定要寫放到底圖上的左上角x坐標(biāo)dy一定要寫放到底圖上的左上角y坐標(biāo)sx載入的圖片如果不打算全部載入而只載入一個(gè)區(qū)域就寫這個(gè),相當(dāng)于image的clipleft,要截取部分的左上角x坐標(biāo),不寫默認(rèn)0 sy要截取部分的左上角y坐標(biāo),不寫默認(rèn)0 sw要截取部分的寬sh要截取部

49、分的高mode覆蓋上去的方式,分很多種方式翻譯起來(lái)太麻煩了我就不寫了,想了解的人自己查指令集,不寫的話默認(rèn)就是直接把圖片蓋上去 opacity覆蓋上去的圖片透明度trans指令參數(shù)詳解layer寫了的話也只有些layer=base有效一般都不寫children指令集里說(shuō)的貌似是如果這個(gè)設(shè)定為true的話,寫了layer=1,則會(huì)把123456一起trans,不過(guò)本來(lái)layer這個(gè)就沒(méi)什么用所以這個(gè)屬性也沒(méi)什么用不用填他 time一定要寫trans的時(shí)間,以毫秒為單位methodtrans方式,有universal crossfade scroll turn等很多種請(qǐng)自行查閱指令集rule 當(dāng)m

50、ethod=universal的時(shí)候,trans用的遮片路徑vague當(dāng)method=universal的時(shí)候,trans的邊緣模糊度f(wàn)rom當(dāng)method=scroll的時(shí)候,trans的方向,可以寫 lefttoprightbottom四種stay當(dāng)method=scroll的時(shí)候,trans的圖片移動(dòng)情況,可以寫stayforestaybacknostay三種freeimage指令參數(shù)詳解layer一定要寫釋放圖像的層數(shù),只對(duì)layer有效,對(duì)message無(wú)效(看名字就知道了,這個(gè)指令是相對(duì)于image指令的,image只能用在layer上不能用在message上,這個(gè)也是)page不

51、寫的話就是默認(rèn)的forelayopt參數(shù)詳解layer一定要寫 寫base或者從0開始的整數(shù),或者message0,message1等等page寫back或者fore,不寫就是默認(rèn)forevisible該層可見,這個(gè)不寫的話默認(rèn)是可見的,但是如果之前特意設(shè)定了false,不寫一句visible=true就不會(huì)可見,另外要注意trans的時(shí)候會(huì)把back的可見復(fù)制到fore上,backlay同理leftlayer在整個(gè)窗口中的左上角x坐標(biāo),默認(rèn)0toplayer在整個(gè)窗口中的左上角y坐標(biāo),默認(rèn)0opacity圖片透明度,0-255,默認(rèn)是255不透明 index圖層的上下順序,比如設(shè)定layer

52、1的index=100,layer2的index=50,原本在layer1上邊的layer2就會(huì)降到layer1下邊去。關(guān)于index的數(shù)值,kag默認(rèn)0層是100000,每層加100,如layer1就是100100,base層應(yīng)該是0,就是沒(méi)有能比他低的層autohide是否跟隨message0隱藏。kag里有一個(gè)指令是hidemessage,寫了這個(gè)指令,message0就會(huì)被隱藏,下次點(diǎn)擊的時(shí)候才會(huì)再次顯示,一般被用來(lái)進(jìn)行對(duì)話框關(guān)閉的功能,這里寫了true的話,這個(gè)圖層會(huì)在hidemessage時(shí)一起被隱藏,可以用于對(duì)話框上的頭像之類圖片顯示到此為止,下一步講文字和對(duì)話框顯示【krkr教程3】文字顯示和對(duì)話框設(shè)定2008-07-26 23:28該教程為水螅制作,未經(jīng)允許,請(qǐng)勿轉(zhuǎn)載前邊已經(jīng)講過(guò),直接寫出來(lái)的文字會(huì)顯示在對(duì)話框里,這里的對(duì)話框指的是message圖層,kr的圖層分為layer和message兩種,基本劃分的話layer承擔(dān)顯示圖片的功能,message承擔(dān)顯示文字,顯示按鈕的功能(其實(shí)layer上邊也可以用ptext寫字,message在有需要的時(shí)候也經(jīng)常被用來(lái)進(jìn)行圖片顯示)要顯示文字,首先要設(shè)定文字,當(dāng)然如果不設(shè)定的話就是默認(rèn)的,默認(rèn)貌似是15號(hào)字,不太記得了|一般來(lái)說(shuō),為了畫面效果

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論