| |||||||
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] pixel flowfield
hallo zusammen, hier mal wieder was zum rumspielen, testen, weiterentwickeln und speziel für "Aerks" zum nickeln ...mich würde auch interessieren ob das ganze bei euch auch von der performance halbwegs flüssig läuft. für massig feedback bin ich natürlich immer zu haben. ihr steuert das "flowfield" indem ihr mit der maus auf der stage dragged und dann wieder loslasst - mir persönlich gefallen die streuungen, die dabei entstehen: ansehen ...und hier zum rumspielen: Code:
/////////////////////////////////////////////////////
// flow field matrix
// author : frank reitberger
// copyright 2006
/////////////////////////////////////////////////////
// --------------------------------------------------------------------------------------------------
stop();
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// import flash filter classes
///////////////////////////////////
import flash.display.BitmapData;
import flash.filters.*;
import flash.geom.*;
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// setup flow field global vars
///////////////////////////////////
var numDots:Number = 200;
var vx:Number = 0;
var vy:Number = 0;
var oldx:Number = _xmouse;
var oldy:Number = _ymouse;
var damp:Number = .95;
var k:Number = .005;
var mouseIsDown: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());
var i:Number = 0;
while (i < numDots) {
var sprite:MovieClip = _root.createEmptyMovieClip("dot" + i, _root.getNextHighestDepth());
sprite._x = sprite.tx = 135 + Math.random() * 100 - 50;
sprite._y = sprite.ty = 100 + Math.random() * 100 - 50;
sprite.vx = 0;
sprite.vy = 0;
i++;
}
paint();
}
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// paint flow field matrix
///////////////////////////////////
function paint() {
_root.onEnterFrame = function () {
_root.efxStage.colorTransform(_root.efxStage.rectangle, new flash.geom.ColorTransform(0, 1, 1, 1, 1, -1, -1, -10));
vx = _xmouse - oldx;
vy = _ymouse - oldy;
oldx = _xmouse;
oldy = _ymouse;
var i:Number = 0;
while (i < numDots) {
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);
_root.efxStage.draw(sprite);
sprite.clear();
if (mouseIsDown) {
var dx:Number = _xmouse - sprite._x;
var dy:Number = _ymouse - sprite._y;
var dist:Number = Math.sqrt(dx*dx + dy*dy) * .5;
dist = Math.max(dist, 10);
sprite.vx += vx / dist;
sprite.vy += vy / dist;
}
sprite.vx = sprite.vx + (sprite.tx - sprite._x) * k;
sprite.vy = sprite.vy + (sprite.ty - sprite._y) * k;
sprite._x = sprite._x + sprite.vx;
sprite._y = sprite._y + sprite.vy;
sprite.vx = sprite.vx * damp;
sprite.vy = sprite.vy * damp;
if (sprite._x > 254) {
sprite._x = 0;
}
if (sprite._x < 0) {
sprite._x = 254;
}
if (sprite._y > 208) {
sprite._y = 0;
}
if (sprite._y < 0) {
sprite._y = 208;
}
i++;
}
}
}
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// add mouse control to stage
///////////////////////////////////
function onMouseDown() {
mouseIsDown = true;
}
function onMouseUp() {
mouseIsDown = false;
}
// --------------------------------------------------------------------------------------------------
///////////////////////////////////
// init
///////////////////////////////////
initStage(); pwd |
| | |
| | #4 (permalink) |
| Funny flasher Registriert seit: Nov 2002 Ort: im kanal
Beiträge: 221
|
sehr schick ! ist bei der letzten variante gewollt das wenn si ein pixel rechts rausgeht er von links wieder reinkommt ?
__________________ --------------------------------------- >>> www.youtube.de/notfall110 <<< --------------------------------------- |
| | |
| | #7 (permalink) |
| habs vergessen Registriert seit: Feb 2006
Beiträge: 990
|
@agedoubleju Wenn das hier so weitergeht mit dem "Verschiebewahn" einiger Moderatoren poste ich hier auf keinen Fall mehr Stuff... hmmm... copie´n´paste ich das ganze doch mal in flash und veröffentliche strikt nur unter as1 - geht nicht... och... stellt das ganze doch gleich unter die rubrik "anfänger"! |
| | |
| | #9 (permalink) | ||
| habs vergessen Registriert seit: Feb 2006
Beiträge: 990
|
aaahhh verstehe... dann komm ich jetzt wieder runter und schaue mir die tage mal genau an, welche posts in as2 nichts mit klassen zu tun haben und bitte strikt um verschieben... hmmm...die subline des as2-bereichs lautet: Zitat:
Zitat:
import und filter etc. sind dann also auch keine klassen... ach so - die sind ja sozusagen "build in"... Geändert von pwdVergesser (18-09-2006 um 06:54 Uhr) | ||
| | |
| | #11 (permalink) | |
| Gast
Beiträge: n/a
|
bokel hat mich darauf aufmerksam gemacht, dass ja auch Typisierung nur in AS2 funzt... Zitat:
| |
|
| | #13 (permalink) |
| Euer Nuser Registriert seit: Apr 2004 Ort: Sand-City
Beiträge: 3.483
|
Is ja sehr klein ... von daher geht's mit der Performance (noch) - aber meine Kiste hat ja auch schon 5 Jährchen auf dem Buckel (XP1500+, 256Ram, WinXp) Hübscher Effekt - besonders der letztere. --pp
__________________ Die Krinimalpolizei gibt bekannt: |
| | |
| | #14 (permalink) | |
| habs vergessen Registriert seit: Feb 2006
Beiträge: 990
|
@Aerks: Danke danke - so kennt man ihn ja garnicht... ![]() @~pyropete~ Zitat:
Performance noch nicht schaden, grausam wird es erst, wenn man mal so richit viele einzelne Pixel zeichnen will, also anstelle von 200 beispielsweise mal 1000 - "Wow" das macht Flash (noch nicht) mit. derzeit baue ich gerade an einem particle-effect mit 500 partikeln in as2 - das geht gerade noch - in as3 wird das aber alles anders *freu* pwd | |
| | |
| | #15 (permalink) |
| Euer Nuser Registriert seit: Apr 2004 Ort: Sand-City
Beiträge: 3.483
| Ach ja!? Mch würde mal interessieren, warum - ist das performancemässig _besser_ mit AS3 zu proggen? Oder wo sind die UNterschiede? Edit: Danke, hab da schon was: ActionScript 3.0 (Linksammlung) ... wie konnte ich nur ... ![]() Ja, 'n Flowfield mit 1000 Partikeln und 800x600 Stagegröße denk ich mal ist recht hart - arme arme CPU ![]() --pp
__________________ Die Krinimalpolizei gibt bekannt: Geändert von ~pyropete~ (22-09-2006 um 16:03 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |