forked from: box

by _wonder forked from box (diff: 42)
♥0 | Line 56 | Modified 2010-05-25 19:24:23 | MIT License
play

ActionScript3 source code

/**
 * Copyright _wonder ( http://wonderfl.net/user/_wonder )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/xAFI
 */

// forked from _wonder's box
package {
    import flash.display.Sprite;
    import flash.events.Event;
    
    public class Boxes extends Sprite {
    		private var box:Box;
    		private var boxes:Array;
    		private var gravity:Number = 1;
    		
		public function Boxes() {
            init();
        }
        
        private function init():void {
        		boxes = new Array();
        		createBox();
        		addEventListener(Event.ENTER_FRAME, onEnterFrame);
        }
        
        private function onEnterFrame(e:Event):void {
        		box.vy += gravity;
        		box.y += box.vy;
        		
        		if( box.y + box.height / 2 > stage.stageHeight ){
        			box.y = stage.stageHeight - box.height / 2;
        			createBox();
        		}
        		
        		for( var i:uint = 0; i < boxes.length; i++ ){
        			if(box != boxes[i] && box.hitTestObject(boxes[i])){
        				box.y = boxes[i].y - boxes[i].height / 2 - box.height / 2;
        				createBox();
        			}
        		}
        }
        
        private function createBox():void {
        		box = new Box(Math.random() * 40 + 10, Math.random() * 40 + 10);
        		box.x = Math.random() * stage.stageWidth;
        		addChild( box );
        		boxes.push( box );
        }
    }
}

import flash.display.Sprite;

class Box extends Sprite {
	private var w:Number;
	private var h:Number;
	private var color:uint;
	public var vx:Number = 0;
	public var vy:Number = 0;
	
	public function Box(width:Number=50,height:Number=50,color:uint=0xff0000){
		w = width;
		h = height;
		this.color = color;
		init();
	}
	
	private function init():void {
		graphics.beginFill(color);
		graphics.drawRect(-w / 2, -h / 2, w, h);
		graphics.endFill();
	}
}