今天突發奇想去下了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東西很多,需要慢慢看...
還有他取變數名字實在用太多底線了,縮排也都沒弄好,不重新排版一下好難看...