forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: flash on 2010-1-13

by Tamanegi_kenshi forked from forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: forked from: flash on 2010-1-13 (diff: 92)
♥0 | Line 65 | Modified 2010-03-28 03:14:38 | MIT License
play

ActionScript3 source code

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

package{
	import flash.display.Sprite;
	import flash.events.Event;
	

	public class test extends Sprite{
		
		private var ball:Ball;
		private var line:Sprite;
		private var gravity:Number=0.5;
		private var bounce:Number=-0.6;
		
		public function test(){
			
			init();
		}
		
		private function init():void{
			ball=new Ball();
			addChild(ball);
			ball.x=100;
			ball.y=100;
			
			
			line=new Sprite();
			line.graphics.lineStyle(1);
			line.graphics.lineTo(300,0);
			addChild(line);
			line.rotation=30;
			line.x=50;
			line.y=200;
			
			
			
			
			addEventListener(Event.ENTER_FRAME,onEnter);
		}
		
		private function onEnter(e:Event):void{
			ball.vy+=gravity;
			ball.x+=ball.vx;
			ball.y+=ball.vy;
			
			var angle:Number=line.rotation*Math.PI/180;
			var cos:Number=Math.cos(angle);
			var sin:Number=Math.sin(angle);
			
			var x1:Number=ball.x-line.x;
			var y1:Number=ball.y-line.y;
			
			var x2:Number=cos*x1+sin*y1;
			var y2:Number=cos*y1-sin*x1;
			
			var vx1:Number=cos*ball.vx+sin*ball.vy;
			var vy1:Number=cos*ball.vy-sin*ball.vx;
			
			if(y2>-ball.height/2){
				y2=-ball.height/2;
				vy1*=bounce;
				}
			x1=cos*x2-sin*y2;
			y1=cos*y2+sin*x2;
			ball.vx=cos*vx1-sin*vy1;
			ball.vy=cos*vy1+sin*vx1;
			ball.x=line.x+x1;
			ball.y=line.y+y1;
			
			
			
			
			
			}
		}
	
}
import flash.display.Sprite;

class Ball extends Sprite{
	
	public var radias:uint;
	public var color:uint;
	public var vx:Number=0;
	public var vy:Number=0;
	
	
	function Ball(radias:uint=20,color:uint=0x00000){
		this.color=color;
		this.radias=radias;
		
		graphics.beginFill(color);
		graphics.drawCircle(0,0,radias);
		graphics.endFill();
		
		}
	}

Forked