그래서 저는 bitmapdata를 사용하여 지형과의 충돌 감지를 결정하는 플래시 게임을하고 있습니다. 아이디어는 두 세트의 지형 타일을 갖는 것이 었습니다. 하나는 실제 지형이 위에 있고 다른 하나는 기본 색상으로 충돌을 결정하는 것입니다. 그런 식으로 영웅이 "하이트 맵"의 특정 색과 접촉하게되면 그의 움직임은 멈추거나, 느려지거나, 손상을 받거나, 높이의 변화를 보여줌으로써 높이의 변화를 나타낼 수 있습니다. 이런 일을하기 위해서 타일을 추가 할 때와 마찬가지로 배열을 사용하여 전체 높이 맵 타일을 추가해야합니다. bitmapdata를 통해이 작업을 수행하는 것이 예상보다 어려워졌으며 다음 코드를 사용할 때 오류가 계속 발생합니다.AS3 BitmapData 충돌 감지
다음과 같은 오류가 발생합니다. TypeError : Error # 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