flash on 2016-1-17
♥0 |
Line 74 |
Modified 2016-01-17 09:19:15 |
MIT License
archived:2017-03-30 11:40:19
ActionScript3 source code
/**
* Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/s7p6
*/
package {
import flash.events.Event;
import flash.geom.Matrix;
import flash.display.BitmapData;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
myMap = new BitmapData(mw, mh, false, 0);
var i:int;
for (i=0;i<64;i+=1)
{
myMap.setPixel(i, 0, 0xFF);
myMap.setPixel(i, myMap.height-1, 0xFF);
myMap.setPixel(0,i,0xFF);
myMap.setPixel(myMap.width-1, i, 0xFF);
}//nexti
//myMap.floodFill(1,1, 0xFF0000);
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public var mw:int = 20;
public var mh:int = 15;
public var cx:int = 10;
public var cy:int = 0;
public var mode:int = 0;
public var gt:int =0;
public var rx:int = 5;
public var ry:int = 5;
public var mapMat:Matrix = new Matrix(8,0,0, 8);
public var myMap:BitmapData;
public function onEnter(e:Event):void
{
graphics.clear();
graphics.beginBitmapFill(myMap, mapMat);
graphics.drawRect(0,0,20*8,15*8);
graphics.endFill();
if (gt % 4 == 0)
{
cy+=1;
if (myMap.getPixel(cx,cy)==0)
{ mode = 1 ; myMap.setPixel(cx,cy, 0xffFFff); }
if (myMap.getPixel(cx,cy)==0xFF && mode == 1 )
{ mode = 2; }
if (mode == 2)
{ mode = 0;
var i:int; var k:int;
for (i=-1;i<2;i+=1)
{ for(k=-1;k<2;k+=1)
{ if (myMap.getPixel(cx+k,cy+i)==0)
{ myMap.floodFill(cx+k,cy+i, 0xFF0000); }
}//nextk
}//nexti
myMap.floodFill(rx,ry, 0);
for (i=-1;i<2;i+=1)
{ for(k=-1;k<2;k+=1)
{ if (myMap.getPixel(cx+k,cy+i)==0xFF0000
|| myMap.getPixel(cx+k,cy+i)==0xFFffFF)
{ myMap.floodFill(cx+k,cy+i, 0xFF); }
}//nextk
}//nexti
}//endif
if (cy <0) { cy = 0;}
if (cy>=mh) {cy = mh-1;}
if (cx <0) { cx = 0; }
if (cx >= mw) { cx = mw-1; }
}//endif
graphics.beginFill(0xFF8080,1);
graphics.drawRect(cx*8,cy*8,8,8);
graphics.endFill();
graphics.beginFill(0x04FF40,1);
graphics.drawRect(rx*8,ry*8,8,8);
graphics.endFill();
gt+=1;
}//onenter
}//classend
}