flash on 2014-12-29
♥0 |
Line 80 |
Modified 2014-12-29 00:36:37 |
MIT License
archived:2017-03-30 11:50:53
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/kyT2
*/
package {
import flash.geom.Matrix;
import flash.display.BitmapData;
import flash.ui.Keyboard;
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
vecKey = new Vector.<Boolean>(0, false);
var i:int; for (i =0; i<512;i++) { vecKey.push(false);}
tile = new BitmapData(64,64, false, 0);
tile.perlinNoise(24,12, 6,3, true, true, 7, true);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKdown);
stage.addEventListener(KeyboardEvent.KEY_UP, onKup);
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public function onKdown(e:KeyboardEvent):void { vecKey[e.keyCode]=true; }
public function onKup(e:KeyboardEvent):void { vecKey[e.keyCode] =false; }
public function isKdown(k:int):Boolean { return vecKey[k]; }
public var vecKey:Vector.<Boolean>;
public var camx:Number = 0;
public var camy:Number = 0;
public var camtx:Number = 0;
public var camty:Number = 0;
public var cx:Number = 160;
public var cy:Number = 120;
public var tile:BitmapData;
public var mat:Matrix = new Matrix();
public function onEnter(e:Event):void
{
graphics.clear();
graphics.lineStyle(2, 0);
/*
var t:Number;
t = 0.1;
t = 0.5;
camx += (camtx-camx)*t;
camy += (camty-camy)*t;
*/
var ws:Number;
ws = 32;
ws = 64;
ws = 8;
ws = 16;
if (camx < camtx) { camx += ws; if (camx >= camtx) { camx = camtx;} }
if (camx > camtx) { camx -= ws; if (camx <= camtx) { camx = camtx;} }
if (camy < camty) { camy += ws; if (camy >= camty) { camy = camty;} }
if (camy > camty) { camy -= ws; if (camy <= camty) { camy = camty;} }
var sx:Number; var sy:Number;
sx = int(camx); sy = int(camy);
var kx:Number; var ky:Number;
var ms:Number;
ms = 8;
kx = 0; ky = 0;
if (isKdown(Keyboard.UP)) { cy -= ms; ky=-1;}
if (isKdown(Keyboard.DOWN)) { cy += ms; ky=1;}
if (isKdown(Keyboard.LEFT)) { cx -= ms; kx=-1; }
if (isKdown(Keyboard.RIGHT)) { cx += ms; kx =1; }
mat.tx = -sx; mat.ty = -sy;
graphics.beginBitmapFill(tile, mat, true,false);
graphics.drawRect(0-sx,0-sy, 512,512);
graphics.endFill();
graphics.beginFill(0, 1);
graphics.drawCircle(camtx-sx+230,camty-sy+230,8);
graphics.endFill();
var i:int; var k:int;
for (i = 0; i < 16; i++)
for (k = 0; k < 16; k++)
{
graphics.drawCircle(k*128-sx,i*128-sy, 4);
}
graphics.beginFill(0xFFffFF,1);
graphics.drawCircle(cx-sx, cy-sy, 16);
graphics.endFill();
var ww:Number;
var sw:Number;
ww = 24; sw = 430;
if (kx <0 && cx-camtx < ww) { camtx -= sw; }
if (kx >0 && cx-camtx > 460-ww) { camtx += sw; }
if (ky < 0 &&cy-camty < ww) { camty -= sw; }
if (ky >0 && cy-camty > 460-ww) { camty += sw; }
graphics.lineStyle(1, 0, 0.1);
graphics.drawRect(ww,ww, (460-ww)-ww, (460-ww)-ww);
}//onenter
}//classend
}