flash on 2015-3-22
♥0 |
Line 57 |
Modified 2015-03-22 06:12:44 |
MIT License
archived:2017-03-30 11:46:44
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/qnJs
*/
package {
import flash.geom.Rectangle;
import flash.display.BitmapData;
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
drawRect(pic, 238,238, 32,32, 0xff808080);
cx = 244;
cy = 244;
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public var canvas:BitmapData = new BitmapData(465,465,false,0);
public var pic:BitmapData = new BitmapData(465,465,true,0);
public var rect:Rectangle = new Rectangle();
public function drawRect(to:BitmapData, ax:Number, ay:Number, aw:Number, ah:Number, c:uint):void
{ rect.x=ax;rect.y=ay;rect.width=aw;rect.height=ah; to.fillRect(rect, c); }
public function isWall(ax:Number, ay:Number):Boolean
{ return pic.getPixel(ax,ay) < 255; }
public var cx:Number = 0;
public var cy:Number = 0;
public var vx:Number = 0;
public var vy:Number = 0;
public var gt:int = 0;
public function onEnter(e:Event):void
{
graphics.clear();
graphics.lineStyle(2,0);
canvas.unlock(); canvas.lock();
graphics.beginBitmapFill(canvas, null, false,false);
graphics.drawRect(0,0,465,465);
graphics.endFill();
canvas.fillRect(canvas.rect, 0);
canvas.draw(pic);
if (gt >= 1024*15) {return;}
var i:int; var num:int;
num = 64;
for (i =0; i <num; i+=1)
{
gt+=1;
vy +=0.2;
vx += Math.random()-0.5; if (Math.random()<0.1) {vx=0;}
if (vy > 0 && isWall(cx,cy+4)) { vy=0; if (Math.random()<0.01) {vy=(1+Math.random()*3)*-1;}}
if (vx>8) {vx=8;} else if (vx<-8) {vx=-8;}
if (cx < 0) {cx=465;} if (cx>465){cx=0;}
if (cy < 16) { cx = Math.random()*465; cy = 430; vx=0;vy=0;}
cx += vx; cy += vy;
drawRect(canvas,cx,cy,2,2,0xFFffFFff);
drawRect(pic, cx-2,cy-3, 5, 4, 0xFF808080);
if (Math.random()<0.01)
{ drawRect(pic, cx-8,cy-8, 16, 16, 0xFF808080); }
if (Math.random() <0.001)
{ cx = Math.random()*465; cy = Math.random()*300+50; vx=0;vy=0;}
}//nexti
}//onenter
}//classend
}