切換
舊版
前往
大廳
主題

RM MV學習筆記(32) 同時支援鍵盤跟滑鼠的圖形按鈕

路漫行 | 2018-05-11 19:55:48 | 巴幣 0 | 人氣 539

今天突發奇想去下了MOG的範本專案,剛打開就看到這個:


他右下角的Title_menu是可以同時支援滑鼠跟鍵盤操作,但在Siako教過的各種按鈕裡面,滑鼠跟鍵盤的圖形按鈕是分開的。

事實上我自己在做Sprite_Button時候,也不支援鍵盤操作。所以特別先看了一下這部分怎麼寫的:

這是圖片原始檔:



其實也不是什麼大不了的秘密...

他把內建的Title_Comand藏到畫面外了...

也就是原本的視窗還在,操作也一樣,所以鍵盤部分就跟內建完全一樣...

這些Tip就是有沒有想到的差別就是了


補記:

if (this._commandWindow._list[i].symbol === 'continue' && !this._comSave) {
this._com_sprites[i].opacity = 160
};

這行是用來設定沒有存檔的時候,將continue的圖片降低透明度。

另外因為他不是用內建Sprite_Button來做,所以還必須做碰撞檢測,來判斷當玩家滑鼠點到該圖片時候要變更index。

碰撞檢測是這段:

data的內容:

this._com_pictures_data[i] = [
this._com_sprites[i].x,
this._com_pictures[i].width ,
this._com_sprites[i].y,
this._com_pictures[i].height / 2
];


----------------

另外補充一下Sprite的update,這是用來讓圖片動的,之前一直不太會弄這種東西,所以這裡用MOG的轉圈圈魔法陣來舉例好了


他是這樣做的,將魔法陣用函式宣告為一個Sprite,呃...中文是這樣講嗎?

總是就不是用new Sprite而是用Object.create(Sprite.prototype)


function TitleMCircles() {
this.initialize.apply(this, arguments);
};

TitleMCircles.prototype = Object.create(Sprite.prototype);
TitleMCircles.prototype.constructor = TitleMCircles;



然後在update 裡面就可以想怎麼動就怎麼動了,他本身就是一個大迴圈(60fps)

TitleMCircles.prototype.update = function() {
Sprite.prototype.update.call(this);
if (this._enabled) {this.update_magic_circle()};
};

然後我看他的移動參數,比如說轉動速度,x y的移動速度都設定成0.01~0.02左右
就參考用囉。


我還一直以為update是這樣用咧
this._mySptite.update = xxxxx;


幸好有先去看別人怎麼做
哈哈...


MOG東西很多,需要慢慢看...

還有他取變數名字實在用太多底線了,縮排也都沒弄好,不重新排版一下好難看...
送禮物贊助創作者 !
0
留言

創作回應

更多創作