class balle
{
private var ballon_mc:MovieClip;
private var taux:Number;
private var vitesse:Number;
private var pesanteur:Number;
private var saturation:Number;
private var t_rebond:Number;
private var vent:Number;
public function balle(mc:MovieClip)
{
ballon_mc=mc;
taux=40;
vitesse=10;
saturation=Stage.height*0.2;
t_rebond=0;
vent=-30;
}
public function runing(t:Number)
{
if( ballon_mc._y<saturation || t_rebond>0 )
{
ballon_mc._y=saturation+30*Math.abs(Math.sin(t_rebond/10))*Math.exp(-t_rebond/taux);
t_rebond++;
}
else
ballon_mc._y-=vitesse*(1-Math.exp(-t/taux));
if(random(100)>90)
vent=2*random(100)-50;
ballon_mc._x = Math.round (0.97 * ballon_mc._x + 0.03 * (Stage.width/2+vent));
//ballon_mc._y = Math.sin(Math.acos((Stage.width/2-ballon_mc._x)/Stage.height*0.2));
_root.file.clear();
_root.file.lineStyle(1, 0x000000);
_root.file.moveTo(Stage.width/2,Stage.height-Stage.height*0.05);
_root.file.lineTo(ballon_mc._x,ballon_mc._y);
}
static function main(root:MovieClip):Void
{
_root.createTextField("debug",100,500,500,250,60);
_root.debug.border=true;
_root.debug.text="debuger ...";
var t:Number=new Number(0);
_root.createEmptyMovieClip("file",_root.getNextHighestDepth());
var mc:MovieClip=root.createEmptyMovieClip("ballon",root.getNextHighestDepth());
var app:balle=new balle(mc);
mc.lineStyle(0, 0x000000);
mc.beginFill(0xFF0000);
mc.drawCircle=function(x:Number, y:Number, r:Number):Void
{
this.moveTo(x+r, y);
this.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
this.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
this.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
this.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
this.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
this.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
this.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
this.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
}
mc.onEnterFrame = function()
{
app.runing(t);
t++;
}
mc.drawCircle(0, 0, Stage.height*0.05);
mc._y=Stage.height*0.8;
mc._x=Stage.width/2;
}
}
Partager