blob: 2a4ac7bc6124d2ecc866ecfb166028ff27b97c4a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
class com.player.Visuals extends MovieClip {
// private var theRoot:MovieClip;
private var numParticles:Number = 10;
private var minDist:Number = 50;
private var springAmount:Number = .001;
private var vbounds:MovieClip;
public function Visuals() {}
public function init():Void
{
setMask (vbounds);
for(var i:Number=0; i< numParticles;i++) {
var particle:MovieClip = this.attachMovie("particle", "p" + i, i);
particle._x = Math.random() * vbounds._width;
particle._y = Math.random() * vbounds._height;
particle.vx = Math.random() * 6 - 3;
particle.vy = Math.random() * 6 - 3;
particle._xscale = particle._yscale = 10 + Math.random() * 100;
particle.mass = particle._xscale / 100;
}
// onEnterFrame = initAnimation;
}
private function onEnterFrame():Void
{
for(var i:Number = 0;i<numParticles;i++)
{
var particle:MovieClip = this["p" + i];
particle._x += particle.vx;
particle._y += particle.vy;
if(particle._x > vbounds._width) {
particle._x = vbounds._x;
}
else if(particle._x < -10) {
particle._x = vbounds._width;
}
if(particle._y > vbounds._height) {
particle._y = vbounds._y;
}
else if(particle._y < -46) {
particle._y = vbounds._height;
}
}
clear();
for(i=0;i<numParticles-1;i++)
{
var partA:MovieClip = this["p" + i];
for(var j:Number = i+1;j<numParticles;j++) {
var partB:MovieClip = this["p" + j];
spring(partA, partB);
}
}
}
function spring(partA:MovieClip, partB:MovieClip):Void
{
var dx:Number = partB._x - partA._x;
var dy:Number = partB._y - partA._y;
var dist:Number = Math.sqrt(dx*dx + dy*dy);
if(dist < minDist)
{
lineStyle(1, 0xffffff, 100 - dist / minDist * 100);
moveTo(partA._x, partA._y);
lineTo(partB._x, partB._y);
var ax:Number = dx * springAmount;
var ay:Number = dy * springAmount;
partA.vx += ax / partA.mass;
partA.vy += ay / partA.mass;
partB.vx -= ax / partB.mass;
partB.vy -= ay / partB.mass;
}
}
};
|