2019年2月28日 星期四

LimeJS : getPosition

2019年2月28日 星期四
LimeJS 中,可以使用 getPosition() 來取得物件的位置,傳回的是一個「goog.math.Coordinate」。記得之前在寫偷插電的輔具 BattleShips 時,使用 getPosition() 取得物件的座標並設給某個變數後,對該變數的 x、y 做運算以後,例如:

var pos = sprite.getPosition();
pos.x += 300;
pos.y += 300;


居然會改變原始物件的座標值。這種情形也會發生在滑鼠事件中(座標值不是唯讀的嗎?),例如:

var mouse_pos = e.position;
mouse_pos.x += 300;
mouse_pos.y += 300;

之前寫程式遇到的問題,沒紀錄下來的結果就是浪費了我兩天在找問題,幸好最終還是想起舊經驗,不然程式就難產了!

目前是以土法煉鋼的方法,新增了兩個變數來分別取出 x 和 y 的值再作計算。

第一個例子改為:

var pos_x = sprite.getPosition().x;
var pos_y = sprite.getPosition().y;
pos_x += 300;
pos_y += 300;

第二個例子改為:

var mouse_x = e.position.x;
var mouse_y = e.position.y;
mouse_x += 300;
mouse_y += 300;

或許是自己的操作是有問題的,沒用對方法,先這樣把程式完成,找到更好的方法再更新囉!




沒有留言:

張貼留言

 
雄::gsyan © 2009. Design by Pocket