所以我正在製作一個Flash遊戲,我正在使用bitmapdata來確定與地形的碰撞檢測。這個想法是有兩組地形瓦片,一個實際地形在上面,一個簡單的只有幾個基本顏色來確定碰撞。這樣,如果英雄在「高度圖」上接觸到某種顏色,他的動作可以停止,放慢速度,他可以受到傷害或者上下縮放以顯示高度差異。爲了做到這一點,我需要通過一個數組添加一堆heightmap貼圖,就像我自己添加tile一樣。 通過bitmapdata執行此操作比我預期的要困難得多,而且在使用以下代碼時我仍然遇到錯誤。AS3位圖數據碰撞檢測
這是我得到的錯誤:TypeError:錯誤#1010:一個術語是未定義的,沒有任何屬性。
至於我可以告訴它從代碼的以下位來:
var bitmapData:BitmapData = new BitmapData(heightContainer.heightMapClip.width, heightContainer.heightMapClip.height);
但我不知道我做錯了。 下面是完整的代碼,雖然我還沒有得到解決,以陣列的部分呢,只需要得到這個工作第一,我真的想嘗試找出休息自己:
var heightMapClip = new heightMap();
heightContainer.addChild(heightMapClip);
var heightData:String;
var hContainer:Sprite = new Sprite();
heightMapClip.x=-200;
heightMapClip.y=-200;
var bitmapData:BitmapData = new BitmapData(heightContainer.heightMapClip.width, heightContainer.heightMapClip.height);
bitmapData.draw(heightContainer.heightMapClip);
var myHeightMap:Bitmap = new Bitmap(bitmapData);
heightContainer.addChildAt(hContainer,0);
heightContainer.hContainer.addChild(myHeightMap);
heightContainer.hContainer.addEventListener(Event.ENTER_FRAME, onClick);
function onClick(e:Event):void
{
var obj:Sprite = e.currentTarget as Sprite;
var myHeightMap:Bitmap = Bitmap(obj.getChildAt(0));
var pixelValue:uint = heightContainer.myHeightMap.bitmapData.getPixel(mouseX,mouseY);
heightData=pixelValue.toString(16);
if(heightData=="99ff00"){
trace("Collision Detected");
}
}
任何幫助,將不勝感激。
解決它意外:D – vagabond80