| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| habs vergessen Registriert seit: Feb 2006
Beiträge: 990
| [stuff] particle storm
tach alleman, und wieder was zum spielen, testen, verwursten und über das ein- oder andere feedback würde ich mich wie immer freuen. derzeit zeichne ich "nur" 500 particle gleichzeitig, kommen aber trotzdem schon ein paar schöne effekte bei rum. beide varianten reagieren zusätzlich auf die mausposition - viel spaß bei spielen: ansehen variante: ansehen Code:
/////////////////////////////////////////////////////
// pure force particles
// author : frank reitberger
// site : http://www.dasprinzip.com
// copyright 2006
/////////////////////////////////////////////////////
// --------------------------------------------------------------------------------------------------
stop();
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// import flash filter classes
///////////////////////////////////
import flash.display.BitmapData;
import flash.filters.*;
import flash.geom.*;
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// setup particles global vars
///////////////////////////////////
var numParticles:Number = 500;
var grav:Number = 0;
var drawLines:Boolean = false;
_quality = "LOW";
this._lockroot = true;
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// configure canvas
///////////////////////////////////
function initStage() {
_root.efxStage = new BitmapData(Stage.width, Stage.height, true, 0x00FFFFFF);
_root.createEmptyMovieClip("efxClip", _root.getNextHighestDepth());
_root["efxClip"].attachBitmap(_root.efxStage, _root.getNextHighestDepth());
_root["efxClip"]._x = _root["efxClip"]._y = -1;
for( var i:Number=0; i < numParticles; i++) {
var sprite:MovieClip = _root.createEmptyMovieClip("dot" + i,_root.getNextHighestDepth());
sprite._x = random(Stage.width);
sprite._y = random(Stage.height);
sprite.vx = Math.random() * 1;
sprite.vy = Math.random() * 1;
sprite.angle = 0;
sprite.k = .08;
}
_root["txt"].swapDepths(_root.getNextHighestDepth());
paint();
}
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// paint pure force particles
///////////////////////////////////
function paint() {
_root.onEnterFrame = function() {
_root.efxStage.colorTransform(_root.efxStage.rectangle, new flash.geom.ColorTransform(0, 1, 1, 1, 1, -1, -1, -5));
_root.efxStage.applyFilter(_root.efxStage,_root.efxStage.rectangle, new Point(0,0), new BlurFilter(1,1,1));
var i:Number = 0;
while (i < numParticles) {
var sprite:MovieClip = _root["dot" + i];
sprite.lineStyle(1, 0xffffff, 100);
sprite.moveTo(sprite._x, sprite._y);
sprite.lineTo(sprite._x + 1, sprite._y + 1);
dx = _xmouse - sprite._x;
dy = _ymouse - sprite._y;
dist = Math.sqrt(dx*dx + dy*dy);
sprite.angle += .05;
if(dist < 100) {
tx = _xmouse - dx / dist * (Math.cos(sprite.angle) * 50 + 50);
ty = _ymouse - dy / dist * (Math.sin(sprite.angle) * 50 + 50);
sprite.vx += (tx - sprite._x) * sprite.k;
sprite.vy += (ty - sprite._y) * sprite.k;
} else {
force = 6000 / (dist * dist);
sprite.vx += force * dx / dist;
sprite.vy += force * dy / dist;
}
sprite.vx += Math.random() * 1;
sprite.vy += Math.random() * -1.5;
sprite.vx *= .95;
sprite.vy *= .95;
sprite.vy += grav;
sprite._x = sprite._x + sprite.vx;
sprite._y = sprite._y + sprite.vy;
_root.efxStage.draw(sprite);
sprite.clear();
if(sprite._x > Stage.width) {
sprite._x = 0;
sprite.vx *= -1;
}
if(sprite._x < 0) {
sprite._x = Stage.width;
sprite.vx *= -1;
}
if(sprite._y > Stage.height) {
sprite._y = 0;
sprite.vy *= -1;
}
if(sprite._y < 0) {
sprite._y = Stage.height;
sprite.vy *= -1;
}
i++;
}
}
}
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// init
///////////////////////////////////
initStage(); pwd |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |