前略
為了讓玩RM的人能稍微接受一下不同的工具
今天我來介紹一下
如何用Game_Maker7模擬RPG製作大師的行走圖功能
(嗯,好像聽到旁邊有人在偷笑)
要研究這個教學的話,請你至少了解如何增加素材,物件
以及知道怎麼起動事件還有在事件中輸入一段腳本
如果這四個基本能力都沒有的話建議先看一下說明書才不會霧煞煞
OK,閒話休止,言歸正傳
首先請隨意畫個32X32的方塊,把它的去背選項(Transparent)給取消,這樣他才會有一個外型
然後給它取一個你想要的名子,個人用spr_mask
再來請準備一張RPG製作大師的人物行走圖
我是用RMxp的阿爾西斯,他的樣子是這樣
然後將它"整張不變"的匯入game maker的sprite folder(素材庫)
照樣給它一個名子,個人用的是spr_fighter01
接著將行走圖寬度跟張數記下來(可能有人的行走圖一個方向有十多張,我今天用的只有4張)
☆打開一個物件,直接起動他的創造事件,寫入:
sprite_index=spr_fighter01//這點特別說明一下,sprite_index就是物件的素材。
//game_maker有可以預先分割的設定,不過這是另一回事。今天就是為了要模擬RM才故意這樣做。
//另外你也可以直接於物件欄的sprite欄位用手動的去選擇,我想這點不用說明了吧?
m_spd=8//這是你的行走速度,代表每個fps移動幾個像素,越大代表越快(gm預設同rmxp:30)
spr_x=0//這兩個變數是用於繪圖的部分
spr_y=0
spr_w=sprite_get_width(sprite_index)/4//圖片的寬度,將你的圖片寬度除以四,阿爾西斯是分四張所以我填入圖片寬度除以四
spr_h=sprite_get_height(sprite_index)/4//圖片的方向數量,阿爾西斯是分四方向所以我填入圖片高度除以四
alarm[0]=6//計時器
//以下這四個變數是用來定義它的操作,如果想改換別的按鈕同樣請參閱說明書
global.k_left = vk_left
global.k_right = vk_right
global.k_up = vk_up
global.k_down = vk_down
☆接著起動計時器[0]事件,寫入:
alarm[0]=6//如果你用別的記時器,記得改成你的記時器號碼,創造事件中的計時器也要一併修改
if(keyboard_check(vk_anykey))
{
if(spr_x>2){spr_x=0}
else{spr_x+=1}
}
☆然後起動在RM好像稱為同步處理的step事件,寫入:
if(keyboard_check(global.k_down)){spr_y=0;y+=m_spd}
else if(keyboard_check(global.k_left)){spr_y=1;x-=m_spd}
else if(keyboard_check(global.k_right)){spr_y=2;x+=m_spd}
else if(keyboard_check(global.k_up)){spr_y=3;y-=m_spd}
else {spr_x=0}
☆接著打開other事件表單,起動intersecrt_boundary,意思是碰撞地圖邊緣的事件,寫入:
x=xprevious;y=yprevious
//這樣你的人物才不會跑到地圖外面亂走XD,如果你希望他可以脫離地圖的束縛,那你可以省略這步驟,不過找不到主角請不要來找我
☆然後是最重要的東西了,draw事件中請寫入:
draw_sprite_part(sprite_index,-1,spr_x*spr_w,spr_y*spr_h,spr_w,spr_h,x,y-16)
//======================================================
最後給你的物件加上一個mask(就是一開始準備的純色方塊素材)
就算完成了,請隨意找一個房間放進去讓他動動看吧
有需要的話我還可以教大家怎麼作紙娃娃跟個人風格選單以及FF12的戰鬥系統唷
這些都是比較簡單的設計,我想我來教應該沒問題吧XD
比較難的連線或3D之類就可能教不了了
另外有興趣的人可以稍微研究一下怎麼做成8方向移動
要做成8方向非常的簡單,相信大家都可以試試看。
有任何問題歡迎發問。
這邊附上我的範例檔案,可以邊做編參考。
http://www.badongo.com/file/17266426