看板 Flash 關於我們 聯絡資訊
各位先進午安 我是AS3.0新手 最近在練習AS遇到一個小問題 還希望版上先進解惑.. 我有一個物件要讓它從最左邊開始跑之後 碰到最右邊再跑回到最左邊 類似反彈的動作 但...只有X軸方向 參考了一些範例 但..不管怎麼修改 該物件都不會彈到左邊 還請各位先進解惑.. code如下 還請各位幫忙看一下了.. import flash.display.MovieClip; import flash.events.Event; var left=0; var right=550; var rnd:int = 2+int(Math.random()*3); a_mc.addEventListener(Event.ENTER_FRAME, myEnterFrame); function myEnterFrame(event:Event):void { wallcheck(); } function wallcheck(){ a_mc.x += rnd; if(a_mc.x>right - a_mc.width/2){ a_mc.x=right-a_mc.width/2; a_mc.x -= rnd; //這一段的目地是想要當物件在跑時當該物件跑到舞台最右邊後 //該物件會往左彈 }else if (a_mc.x < left+a_mc.width/2){ a_mc.x=left+a_mc.width/2; a_mc.x += rnd; //這一段的目地試想要當物件跑到舞台最左邊後 會再往右邊彈 } } 還請版上先進解惑了..感恩 M(_ _)M -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.10.9
jeaby:判斷碰牆壁後 rnd *= -1 就可以了 07/12 15:23
terrywang:謝謝先進解惑 M(_ _)M 07/12 17:52
KawasumiMai:建議變數要細分清楚用途 07/13 15:20
KawasumiMai:rnd看起來是距離,不要讓她亂變正負號 07/13 15:21
KawasumiMai:設定一個像是way的變數,讓他代表物件的方向 07/13 15:21
KawasumiMai:如果不是球,則物件會有scaleX的差別 07/13 15:22
KawasumiMai:因為AS3滿值是1而非100,所以可以取代way的功能 07/13 15:22
KawasumiMai:移動的話a_mc.x+=rnd*a_mc.sclaeX,操控正負號 07/13 15:23
KawasumiMai:不管撞到左右哪邊,則讓a_mc.scaleX=-a_mc.scaleX反號 07/13 15:23