Juli 2008
Zähflüssige Physik
Fortsetzung, Teil 3
Fluide Tendenzen mit ActionScript
Spielwiese Desktop
Sehr einfach kann man den Blobs auch beibringen, den eigenen Desktop als Lebensraum zu erobern. Dazu muss man der Physics-Engine lediglich beibringen, an welcher Stelle beispielsweise Fenster geöffnet sind, damit unsere Flüssigkeit diese als Hindernis wahrnehmen kann und somit umfließt. Im Falle des beigefügten Screensavers (Slime Saver) habe ich diese Aufgabe mit Zinc erledigt. Mit {mdm}Script lassen sich bequem und einfach Fensterpositionen und -größen auf dem Desktop feststellen sowie Snapshots vom aktuellen Desktop erstellen. Erweitert um diese Optionen, kann man den Blobs einfach und schnell den heimischen Desktop schmackhaft machen.
Listing 3
import mdm.*;// setup: mdm.script.injectionmdm.Application.init( this );// define varitypesvar mImageLoader :Loader;var xOffset :Number;var yOffset :Number;var bgBmp :Bitmap;var windowList = mdm.System.getWindowList();var tmpPath = mdm.System.Paths.temp;var resInfo = mdm.System.getResolution();var desktop :Sprite = new Sprite();var snapshot :BitmapData = new BitmapData(resInfo[0], resInfo[1] );// snapshot: desktop.capturemdm.Image.ScreenCapture.toBmp(0,0,resInfo[0],resInfo[1],tmpPath +"dskImg.bmp");mdm.Image.bmpToJpgAdv(tmpPath+"dskImg.bmp",80);// load: imagemImageLoader = new Loader();mImageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);mImageLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);mImageLoader.load(new URLRequest(tmpPath + "dskImg.jpg"));function completeHandler(event:Event):void {desktop.addChild( mImageLoader );snapshot.draw( desktop );}function ioErrorHandler(event:IOErrorEvent):void {mdm.Dialogs.prompt("Error:" + event);}
Mehr davon
Wie schon erklärt, arbeitet mein Beispiel in Verbindung mit der "Motor2 Physics Engine". Das ist natürlich nur ein Ansatz unter vielen. Eine sehr gelungene Flüssigkeitssimulation in Kombination mit der o.g. Engine "APE" kann man beispielsweise bei Mr.Doob finden. Ein kleines Spiel, das auf der Flashfisix-Engine aufbaut, gibt es unter diesem Link zu finden.
Frank Reitberger (reitberger@anymotion.de) arbeitet und entwickelt als Flash-Teamleiter für anyMOTION GRAPHICS Internet- und Offlineanwendungen im B2C- und B2B-Bereich. Frank veröffentlicht unter seinem Nickname "pwdVergesser" auch viele seiner kleinen Flash-Snippets im Flashforum sowie in seinem Blog www.prinzipiell.com


























