鐵之狂傲

 取回密碼
 註冊
搜尋

切換到指定樓層
1#
此教學主要依照完全沒接觸過的朋友們
能快速上手使用。
如果、我們手邊有一個不錯的遊戲腳本。
當你想把它程式化。你該怎麼做的好?

很簡單、把所有腳本內容貼上文本檔案就好。
沒錯...就是這麼簡單。
只是還需要在你的腳本上給他一點點的動線跟規則。
這些...就是依靠一些簡單的程式語言來達成。

一開始對於沒接觸過的朋友來說
最需要些什麼!?
嗯...一個看起來漂亮的開頭畫面。
這次小弟就來說一下標題畫面的製作。

首先說明一下製作標題的需求
背景圖片、音樂、按鈕
嗯~這樣就可以達成製作標題的最基本需求。
接著...你該怎麼做!?
或是說...你能怎麼做!?
標題有什麼需要注意的!?

下面就來提一下

首先要注意的就是...
你需要給標題一個標籤
為什麼!?
因為...你可能在遊戲中途想要回到開頭畫面去。
所以、你給他一個標籤,好讓自己有辦法可以找到他
然後再有需要的時候叫標題滾出來。

* 這個符號是NS用來標註標籤用的符號
當你在某個單辭或是數字前面加註 * 這個符號。
NS就會把它當成是一個標籤
當你需要他的時候他就會CALL他出來
然後執行這段程式碼。

OK假設我們給標題的標籤名稱為 title
那我們就這樣寫
===============================
*title
===============================
接著我們需要什麼!?
音樂!?背景!?
嗯...沒錯...那我們就給他音樂跟背景
===============================
*title
mp3loop "mp3\op.mp3"
;執行mp3資料夾內的op.mp3的音效檔
bg "btn\op_01.jpg",13
;執行btn資料夾內的op_01.jpg的圖片檔使用效果13號

===============================
好了、現再我們有一個有聲音有畫面的標題了。
可是他還是不會動啊...
而且馬上就跳掉了。

嗯...接著我們就要給他按鈕。
我們已經預先在圖片上預設好我們的按鈕了。
可是圖片是死的她其實沒有任何作用
我們希望他要能夠有所動作
就需要假設一個按鈕空間給他。如此他就會假裝
那個圖片範圍內的空間...我們會假裝她是按鈕一號或二號
那我們就再準備另一張標題圖
然後給按鈕作一點效果...你可以讓字體發光
或是讓框框變色好讓滑鼠滑到那個範圍後
能夠秀出動作來
===============================
*title

csp -1
bgm "ogg\op.ogg"
bg "btn\op_01.jpg",13
btndef "btn\op_02.jpg"
;定義按鈕圖片為btn資料夾內的op_02.jpg

===============================
為啥要多寫一個csp -1
這個指令的意思就是清除所有可見對象
簡單說就是把畫面清空
因為標題可能要反覆提取來用
這主要是方便跳回標題時把畫面清空掉

接著...我們就要來準備定義按鈕空間。
假設我們有三個按鈕好了
遊戲開始、讀檔、離開
那我們就定義出三個按鈕空間來
===============================
*title

csp -1
mp3loop "mp3\op.mp3"
bg "btn\op_01.jpg",13
btndef "btn\op_02.jpg"

btn 1,279,550,80,34,279,550
;按鈕一號
btn 2,369,550,80,34,369,550
;按鈕二號
btn 3,459,550,80,34,459,550
;按鈕三號

===============================
請對照下面btn指令的定義
btn 按鈕編號, 按鈕範圍左上角x坐標 ,y坐標, 寬, 懸停圖像截取左上角x坐標 ,y坐標

OK現在按鈕設置好了
可是還是不會動...為啥!?
而且還是會跳掉...
因為...有了按鈕他還是不知道自己要幹麻
所以要賦予按鈕一個任務
你可以決定這個按鈕的功能
所以我們就需要用到 btnwait (點擊等待)這個指令。
===============================
*title
mp3loop "mp3\op.mp3"
bg "btn\op_01.jpg",13
btndef "btn\op_02.jpg"

btn 1,279,550,80,34,279,550
btn 2,369,550,80,34,369,550
btn 3,459,550,80,34,459,550

btnwait %0
;給予btnwait %0 這個數字變量

===============================
現在必須要來說明一下 btnwait 這個指令
他是跟btn互相呼應的指令
他有個特性就是...當你點擊非定義好按鈕以外的部份
他會傳回 0 當你點選右鍵時他又會傳回 -1

所以想想我們該怎麼做...
沒錯...我們希望除了按到按鈕以外的地方
都維持著標題畫面不要隨便變動
所以需要給予他規則
===============================
*title
mp3loop "mp3\op.mp3"
bg "btn\op_01.jpg",13
btndef "btn\op_02.jpg"

btn 1,279,550,80,34,279,550
btn 2,369,550,80,34,369,550
btn 3,459,550,80,34,459,550

*titlewait

btnwait %0
if %0<=0 goto *titlewait
if %0==1 goto *newgame
if %0==2 systemcall load
if %0==3 goto *endgame

===============================
首先...我們給予 btnwait 這個指令另一個標籤
為什麼要這樣做!?
因為如此才可以不小心按到按鈕區塊外的地方時保持著等待
否則該程式就會跑去執行下一行

if %0<=0 goto *titlewait


這行意思就是
如果 %0 小於或等於0的時候我們就執行 *titlewait 這個程式碼。
剛剛有說過 btnwait 的特性
就是你按下非按鈕區塊他會傳回0按下右鍵會傳回-1
所以我們才會讓這個條件寫成 小於等於0
如此你按下右鍵或是左鍵
他都會執行 *titlewait 這段標籤的內容
然後一直保持的 點擊等待 的動作
而不會執行下一行的程式碼

所以其他的相信你們應該就能簡單的理解


if %0==1 goto *newgame
;如果%0 等於1 就執行 *newgame

if %0==2 systemcall load
;如果%0 等於2 就呼叫內建的LOAD

if %0==3 goto *endgame
;如果%0 等於3 就執行 *endgame


現在你可以來嚐試看看
我們把下面這段小改一下
===============================
*title
csp -1
mp3loop "mp3\op.mp3"
bg "btn\op_01.jpg",13
btndef "btn\op_02.jpg"

btn 1,279,550,80,34,279,550
btn 2,369,550,80,34,369,550
btn 3,459,550,80,34,459,550

*titlewait

btnwait %0
if %0==0 goto *titlewait
;如果 %0 等於 0 執行 *titlewait

if %0==1 goto *newgame
if %0==2 systemcall load
if %0==3 goto *endgame

if %0==-1 goto *endgame
;如果 %0 等於 -1 執行 *endgame

===============================
如此當你按下右鍵的時候
就會執行*endgame

附上範例檔案
test.rar (1019.33 KB, 下載次數: 327)
轉播0 分享0 收藏0

回覆 使用道具 檢舉

總評分:  聲望 + 7   檢視全部評分
羽傾影滅    發表於 08-8-16 02:34 聲望 + 2 枚
發條人形紅舞鞋  真是初心向耶~  發表於 08-8-5 20:44 聲望 + 5 枚
你需要登入後才可以回覆 登入 | 註冊

存檔|手機版|聯絡我們|新聞提供|鐵之狂傲

GMT+8, 24-12-4 17:57 , Processed in 0.024550 second(s), 19 queries , Gzip On.

回頂部