Worms effet en pseudo-3d. prototype.worm()

Description

bon, G visité un site d'un mec qui fait des trucs super en 3d, et G vu cette effet, mais sans sources.
alors je l'ai recréé.
et puis, yen a marre qu'il y ai que alcys qui fasse des maths ici!
je m'y met moi aussi! nananere!

C du prototype, donc orienté objet flash MX.

Source / Exemple :


MovieClip.prototype.worm = function() {
	this.max = 100;
	this.delay = Math.random()*2000+1000;
	this.time = getTimer();
	for (i=1; this.max>=i; i++) {
		this.duplicateMovieClip(i, i);
		_root[i].yv = 0;
		_root[i].xv = 0;
		_root[i].F = 0.900000;
		_root[i].xspeed = 0;
		_root[i].yspeed = 0;
		_root[i].movieH = 400;
		_root[i].movieW = 550;
		_root[i].xpos = _root[i].movieW/2;
		_root[i].ypos = _root[i].movieH/2;
		_root[i]._height = 30-i/this.max*17;
		_root[i]._width = 30-i/this.max*17;
		_root[i]._alpha = i;
		_root[i].itv = setInterval(function (i) {
			_root[i].tempx = _root[i].xpos;
			_root[i].tempy = _root[i].ypos;
			_root[i].xspeed = (_root[i].xspeed-(_root[i].xpos-(-1*_root.newX[i]+275))/(i/30+20))*_root[i].F;
			_root[i].yspeed = (_root[i].yspeed-(_root[i].ypos-(-1*_root.newY[i]+200))/(i/30+20))*_root[i].F;
			_root[i].xpos = _root[i].xpos+_root[i].xspeed;
			_root[i].ypos = _root[i].ypos+_root[i].yspeed;
			_root[i]._x = _root[i].xpos;
			_root[i]._y = _root[i].ypos;
			_root[i].yspeed = _root[i].ypos-_root[i].tempy;
			_root[i].xspeed = _root[i].xpos-_root[i].tempx;
		}, 75, i);
		if (this._name == "ball") {
			this._visible = 0;
			stop();
		}
	}
	itv = setInterval(function (max, delay, time) {
		if (time+delay<getTimer()) {
			delay = Math.random()*800+450;
			time = getTimer();
			newX = new Array();
			newY = new Array();
			rr = (Math.random()-0.500000)*3;
			rrr = Math.random()*20+5;
			mr = Math.random()*20+5;
			mr2 = Math.random()*20+5;
			for (i=1; max>=i; i++) {
				R = (i/max+0.300000)*2*3.141593;
				R2 = R*rr;
				newX[i] = Math.sin(R2)*Math.sin(i/rrr+mr)*100;
				newY[i] = Math.cos(R2)*Math.sin(i/rrr+mr2)*70;
			}
		}
	}, 1000, this.max, this.delay, this.time);
};

Conclusion :


creez un rond ou autre forme simple, [F8]>movieclip, puis donnez lui le nom d'instance "ball".
et hop!
le petit code magique dans un onClipEvent(load) ou direct dans le _root, et voila! :p
_root.ball.worm();

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.