Author Archives: Zevan

Variable Swap

CLICK HERE TO COPY
Actionscript:

//

// swap some variables

// all techniques except the first are from http://cpptruths.blogspot.com/2006/04/swapping-two-integers-in-one-liner.html

//

var a:Number = 1.1;

var b:Number= 2.2;

 

trace(a, b);

 

// best, fastest, easiest to read way

var t:Number= a;

a = b;

b = t;

 

trace(a, b);

 

// not recommended slower ways:

 

b=a+b-(a=b);

 

trace(a, b);

 

// xor versions will only work with ints and uints

trace("\nxor kills decimals:");

 

// easy to understand xor version

a^=b;

b^=a;

a^=b;

 

trace(a, [...]

Posted in Operators, one-liners, variables | Tagged , | Leave a comment

Animate Along Bezier Curve

CLICK HERE TO COPY
Actionscript:

var circle:Shape = Shape(addChild(new Shape));

with(circle.graphics) beginFill(0x000000), drawCircle(0,0,5);

 

var bezierPoint:Point = new Point();

function bezier(a:Number, x1:Number, y1:Number, x2:Number, y2:Number, x3:Number, y3:Number):void {

        var b:Number =1-a;

        var pre1:Number=a*a;

        var pre2:Number=2*a*b;

        var pre3:Number=b*b;

        bezierPoint.x = pre1*x1 + pre2*x2  + pre3*x3;

      [...]

Posted in Graphics, bezier, graphics algorithms, motion | Tagged , | 3 Comments

Seamless Tiles

CLICK HERE TO COPY
Actionscript:

[SWF(width=600, height=500, backgroundColor=0xFFFFFF, frameRate=30)]

 

function seamlessTile(img:BitmapData, featherSize:Number = 5):BitmapData{

    var pnt:Point = new Point(0,0);

    var tile:BitmapData = new BitmapData(img.width, img.height, true, 0xFF000000);

    tile.copyPixels(img, img.rect, pnt, null, null, true);

   

    var flipped:BitmapData = new BitmapData(img.width, img.height, true, 0xFF000000);

    var m:Matrix = new Matrix();

    m.scale(-1, 1);

    m.translate(tile.width,0);

  [...]

Posted in BitmapData, graphics algorithms, pixel manipulation | Tagged , | 5 Comments

Glitch Auto-asteroids

CLICK HERE TO COPY
Actionscript:

[SWF(width=600, height=400, backgroundColor=0x000000, frameRate=30)]

// make some ships

for (var i:int = 0; i<10; i++) makeShip();

//

function makeShip():void {

    // setup vars

    var char:Object ={posX:Math.random()*stage.stageWidth, posY:Math.random()*stage.stageHeight, velX:0, velY:0, rad:4, theta:Math.random()*6.28, thetaDest:Math.random()*6.28, mc: MovieClip(addChild(new MovieClip()))}

    // draw and position the char

    with(char.mc) graphics.lineStyle(0,0xFFFFFF), graphics.moveTo(-15, -5), graphics.lineTo(0, 0), graphics.lineTo(-15, 5), x=char.posX, y=char.posY;

    [...]

Posted in misc, motion | Tagged , | Leave a comment