2014-03-31 193 views
0

我正在研究一種帶草坪割草機的遊戲,該草坪割草機將自己定位於鼠標和白色草坪上的位置,以給出草坪割草(擦除)草的錯覺。AS3位圖數據百分比比較

我想創建一個函數來檢查草地切割的百分比,這基本上意味着檢查當前草圖中有多少白色。

我該怎麼做呢?有沒有簡單的方法?

這裏是我當前的代碼:

import flash.display.BitmapData; 
import flash.events.Event; 

var bitmapData = new grass(); 

var bitmap = new Bitmap(bitmapData); 

var mower = new Mower(); 

var radiance:Number = 180/Math.PI; 

var erase:Sprite=new Sprite(); 
erase.cacheAsBitmap = true; 

bitmap.y=0; 
bitmap.x=0; 
addChild(bitmap); 

addChild(erase); 

addChild(mower); 

this.addEventListener(Event.ENTER_FRAME, function(e:Event):void 
        { 
         erase.graphics.beginFill(0xFFFFFF); 
           erase.graphics.drawCircle(mower.x,mower.y,25); 
         erase.graphics.endFill(); 

         var mowerdirection = - (Math.atan2(mouseX-mower.x, mouseY-mower.y))*radiance; 
         mower.rotation = mowerdirection; 

         followMower(); 

         var myTestingBitmapData:BitmapData =  new BitmapData(bitmapData.width, bitmapData.height, true, 0x00000000); 

         trace(myTestingBitmapData.compare(bitmap.bitmapData)) 

        }); 

erase.addEventListener(MouseEvent.CLICK, function(e:Event):void 
        { 
         trace('click'); 

        }); 

function followMower():void 
{ 
var dx:int = mower.x - mouseX; 
var dy:int = mower.y - mouseY; 
mower.x -= dx/10; 
mower.y -= dy /10; 
} 

回答

0

你可以嘗試使用圖像分析框架或一些方法圖像中的顏色數。有功能稱爲histogram可能會幫助你,你也可以使用此解決方案postthis link