Re: [問題] hitTest問題
※ 引述《mankitu (嗯哼 7。)》之銘言:
: 我想做一個便當遊戲
: 左邊有一個便當盒 右邊是一些食材
: 當右邊的食材hitTest到左邊便當盒(有很多感應物件)時,會stopDrag,
: 然後食材會跟感應區的座標一樣
: 可是我遇到瓶頸了 就是我不會寫函數
: 我預計左邊有20個感應區 右邊有二十個食材 如果一個一個寫上去我就喵掉了
: 墾求各位大大的幫忙 謝謝 拜託了!!
: 下面是目前我能做到的(汗)
: http://www.nhcue.edu.tw/~u9215042/question.rar
我不知道你的意思是不是說 讓它拉動 然後拉到左邊感應區
若它碰到那個感應區 便會在那個感應區的位置這樣
不過 以你的程式來看
因為感應區大小與被感應的大小並不相同
若是要以整個元件來感應 一個食材有可能感應到多的感應區
因此這方面你應該做些設定
若是你想要使用迴圈處理要做相同動作的不同元件
可將元件名稱取為a1、a2、a3等等...
然後用for迴圈加上eval("a"+i)來呼叫各個元件
下面是我撰寫的程式
我將你的b1、c1改名為b1、b2、b3....
然後將所有元件上的程式碼刪除
------------------------------------------
stop();
for(var i=1;i<=20;i++){
eval("b"+i).onPress=function(){
this.startDrag();
}
eval("b"+i).onRelease=function(){
d_target(this._name);
}
}
function d_target(MC_name){
eval(MC_name).stopDrag();
for(var i=1;i<=20;i++){
if(eval(MC_name).hitTest("/a"+i)) {
eval(MC_name)._x=eval("a"+i)._x;
eval(MC_name)._y=eval("a"+i)._y;
break;
}
}
}
---------------------------------------------
不過因為你感應區與圖像大小不同
所以感應會出些問題
我是建議你可以用兩種方式去解決這問題
一種是將圖像做成符合感應區大小的元件
二是在每個元件裡新增一感透明應區 然後使用元件內的感應元件做為感應判斷主體
以上
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.117.9.209
→
02/13 14:38, , 1F
02/13 14:38, 1F
討論串 (同標題文章)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章