. .
CREATE OR DIE Special Downloads Shop webinale

Schauplatz

Artikel
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Juli 2008

Zähflüssige Physik


Fortsetzung, Teil 3

Fluide Tendenzen mit ActionScript

(Link zum Artikel: http://www.createordie.de/cod/artikel/1852)

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

  1. import mdm.*;
  2. // setup: mdm.script.injection
  3. mdm.Application.init( this );
  4. // define varitypes
  5. var mImageLoader :Loader;
  6. var xOffset :Number;
  7. var yOffset :Number;
  8. var bgBmp :Bitmap;
  9. var windowList = mdm.System.getWindowList();
  10. var tmpPath = mdm.System.Paths.temp;
  11. var resInfo = mdm.System.getResolution();
  12. var desktop :Sprite = new Sprite();
  13. var snapshot :BitmapData = new BitmapData(
  14. resInfo[0], resInfo[1] );
  15. // snapshot: desktop.capture
  16. mdm.Image.ScreenCapture.toBmp(0,0,
  17. resInfo[0],resInfo[1],tmpPath +
  18. "dskImg.bmp");
  19. mdm.Image.bmpToJpgAdv(tmpPath+"dskImg.bmp",80);
  20. // load: image
  21. mImageLoader = new Loader();
  22. mImageLoader.contentLoaderInfo.addEventListener
  23. (Event.COMPLETE, completeHandler);
  24. mImageLoader.contentLoaderInfo.addEventListener
  25. (IOErrorEvent.IO_ERROR, ioErrorHandler);
  26. mImageLoader.load(new URLRequest(tmpPath + "
  27. dskImg.jpg"));
  28. function completeHandler(event:Event):void {
  29. desktop.addChild( mImageLoader );
  30. snapshot.draw( desktop );
  31. }
  32. function ioErrorHandler(
  33. event:IOErrorEvent):void {
  34. mdm.Dialogs.prompt("Error:" + event);
  35. }
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

 

Kommentare
Bisher keine Kommentare
Neuer Kommentar
  • Gute Kommentare werden belohnt.
  •   (optional)
  •   (Kommentar abonnieren/Gravatar - wird nicht veröffentlicht)
  •    Benachrichtige mich bei nachfolgenden Kommentaren per E-Mail
  • -+
Tags
Werbung
actionscript