2013-05-09 3 views
1

У меня есть спрайт, который нарисован случайным и сложным способом. Пиксели будут либо прозрачными, либо нет. И теперь мне нужно проверить, прозрачен ли пиксель new Point(10, -5) или нет.Actionscript 3 - Как проверить случайный пиксель спрайта

Как я могу это сделать?


  • Это не для обнаружения столкновений.
  • Я также рисую отрицательную область спрайт-графики. Он не сосредоточен.

Решение:

Основная проблема заключалась рисунок в отрицательной области. Я сам это выяснил:

var bitmapData: BitmapData = new BitmapData(sprite.width, sprite.height, true, 0x0); 
var rect: Rectangle = sprite.getBounds(sprite); 
var mat: Matrix = new Matrix(); 
mat.translate(-rect.left, -rect.top); 
bitmapData.draw(sprite, mat); 
bitmapData.getPixel32(xCoordToTest - rect.left, yCoordToTest - rect.top); 
// etc 

ответ

0

Создайте новый объект BitmapData и нарисуйте на нем спрайт. Затем проверьте желаемый пиксель BitmapData.

var bitmapData:BitmapData = new BitmapData(mySprite.width,mySprite.height,true,0x00000000); 
bitmapData.draw(mySprite); 
bitmapData.getPixel32(10,5); 
0

Как SzRaPnEL говорит, обратить свой спрайт в объект BitmapData с 3-го набора параметров для истинного (благоприятной прозрачности). Тогда ...

var pixelValue:uint = bitmapData.getPixel32(xCoordToTest, yCoordToTest); 
var alphaValue:uint = pixelValue >> 24 & 0xFF; 

Согласно BitmapData онлайн документы, которые должны работать ... http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#getPixel32()

+0

Вы оба пропустили главную проблему. – n4pgamer