Anzeige
Tutorialbeschreibung

Fortgeschrittene Feuer- und Rauch-Simulation

Fortgeschrittene Feuer- und Rauch-Simulation

Hier zeige ich dir wie man mit ein paar Zeilen Actionscript eine sehr gut und real aussehende Feuer-Simulation hinbekommt.


Schritt 1:
Als Erstes legst du dein Flash-Dokument an (muss Actionscript 2.0 sein!).
Größe und Hintergrundfarbe sind dir überlassen, bei der Framerate solltest du aber über
24 Bps liegen (am besten 30).

Bilder





Schritt 2:

Jetzt zeichnest du dir einen Partikel (siehe Bild; Höhe und Breite nicht mehr als 14 Pixel) und gibst ihm den Bezeichner “partikel1”.
Die weitere Gestaltung ist dir überlassen, wobei ein Unschärfe-Filter noch wichtig wäre!

Als nächstes machen wir das Graphische, dann kommen wir zum Scripten!

 


Bilder



So...das war's dann schon mit der Graphik!


Schritt 3:

Drücke nun F9, um den Actionscript Kompiler auszuklappen.

Das alles kommt nun in den Kompiler

var feuer = attachMovie("partikel1", "partikel1", _root.getNextHighestDepth());  >>schreibt in den "MovieClipcontainer" "feuer" den mc "partikel1" und attacht ihn auf der Bühne
----------------
feuer._x = _xmouse >>
setzt die Anfangsposition des Partikels
feuer._y = _ymouse
----------------
feuer.up = Math.random()*1.5;                >>   verleiht jedem einzelnem Partikel eigene unterschiedliche Fluggeschwindigkeiten
feuer.lr = (Math.random()*2-1)*Math.random()*0.6;
feuer.rot = Math.random()*5;

----------------
feuer.onEnterFrame = function() {   >> sorgt dafür, dass die Partikel immer durchsichtiger werden und sich löschen, wenn sie unsichbar sind.
  if (this._alpha>0) {
   this._alpha -= 2;
  } else {
   this.removeMovieClip();
  }

----------------
this._y -= this.up;   >>   wendet die vorher angelegten Flug-Eigenschaften an
this._rotation += this.rot;
this._x += this.lr;


So. Bis jetzthin rührt sich noch gar nichts, denn pro Aufruf dieser ganzen Funktion wird nur ein einzelnes Partikel auf die Bühne gelegt. Was du jetzt brauchst, ist ein Befehl, der die Funktion öfter aufruft, als der "onEnterFrame"-Befehl.
Die Lösung ist: "setInterval()"
, also schreibst du einfach unter den vorherigen Skript:

setInterval(feuer_s,1)

Die Zahl hinter dem Funktionsnamen gibt an, in welchen Milisekunden-Abständen die Funktion ausgeführt wird.

Jetzt noch mal der ganze Skript in einem Stück:
-------------------------------------------------

function feuer_s () {
 var feuer = attachMovie("partikel1", "partikel1", _root.getNextHighestDepth());
 feuer._x = _xmouse
 feuer._y = _ymouse
 feuer.up = Math.random()*1.5;
 feuer.lr = (Math.random()*2-1)*Math.random()*0.6;
 feuer.rot = Math.random()*5;
 feuer.onEnterFrame = function() {
  if (this._alpha>0) {
   this._alpha -= 2;
  } else {
   this.removeMovieClip();
  }
  this._y -= this.up;
  this._rotation += this.rot;
  this._x += this.lr;
 };

   setInterval(feuer_s,1)

 


Damit das Ganze noch wie Feuer aussieht, gehst du einfach in den MovieClip “partikel1” und machst einen Tween, in dem sich der MovieClip von Rot in Schwarz färbt.


Bilder


Und jetzt sollte es ungefähr so aussehen:




Das war mein Tutorial über Feuer-Simulation!
Ich bedanke mich für deine Aufmerksamkeit!

Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von Belearas
  • 11.07.2011 - 09:53

Hallo!

Was genau muss ich eigentlich machen um den Effekt wieder zu beenden?

Portrait von Belearas
  • 18.07.2011 - 08:58

Hmm weis das niemand?

Portrait von Belearas
  • 22.02.2011 - 15:17

Ich bekomm es nicht hin....

Was muss man denn genau machen? Weil du schreibst fortgeschritten?

Ich verstehe es nicht ganz, und ich würde es gerne verstehen...

Wenn man es genauso abarbeitet wie du es hier mal stehen hast, tut sich erstens nix und
man bekommt einen Script Fehler.

Muss man Zwischensteps noch einbauen? Etwas dazu Scripten? oder noch ein
onClipEvent hinzufügen??

Wäre echt klasse wenn das jemand beschreiben könnte?

Portrait von NitroMani
  • 22.02.2011 - 19:00

naja fortgeschritten bedeutet auch, dass man auch was von dem code versteht...
bei dem "einfach blind reinkopieren", schelichen sich manchmal versehentlich buchstaben ein.
meistens endet das dann immer in einem "script fehler", auch syntax error gennant.

was spuckt er denn als fehler beschreibung aus?

Portrait von Belearas
  • 24.02.2011 - 08:03

Das verstehe ich ja, und aktzeptiere es auch voll und ganz.

Mich würde nur interessieren ob es als "anfänger" denn unmöglich ist, oder
doch machbar ist es hinzubekommen.

Ich verstehe AS noch nicht zu 100%, die befehle selbst sind selbsterklärend,
die Klammern usw kenne ich schon, zu auf usw. Deklarierungen etc.

Ich mache mal meine Anleitung wie ich das Mache.

Ich mache einen Punkt mit Pinselwerkzeug, Markiere Ihn, mache Ihn zu einen Movieclip mit den oberen
Daten, klicke dann auf F9 und Kopiere das Script rein.

So, würde der erste Fehler kommen, Anweisungsblock muss ja beendet werden (mit })
dann kommt ein Syntax Fehler, und was ich denke, es muss ja oberhalb der Scriptes ein onClipEvent kommen oder nich?

...

Portrait von wkoac
  • 03.08.2010 - 10:15

Werde ich direkt mal versuchen auf meiner Homepage zu integrieren. Danke

Portrait von pretzi
  • 16.12.2009 - 20:05

einfach nur cool ! Weiter so.

Portrait von Litti
  • 30.10.2009 - 19:37

klein, aber fein, sehr schön

Portrait von liridon
  • 28.10.2009 - 10:58

voll cool! super!!!!!!

Portrait von videom
  • 28.08.2009 - 12:43

Sau geiler Effekt!!!

Portrait von Leolo
  • 20.07.2009 - 17:07

Sieht gut aus, leider AS2 - nutze ich nimmer :(

Portrait von nicknameminivan
  • 24.06.2009 - 10:29

das benutz ich lieber als ein meteorid welcher runterfällt

Portrait von Pixelaugust
  • 08.06.2009 - 08:57

lol super auf sowas muss ma zuerst kommen THX

Portrait von samed_aka_electro
Portrait von Flip_p
  • 04.06.2009 - 17:01

danke! super erklärt!

Portrait von trohe
  • 04.06.2009 - 11:05

super TUT. Danke für die coole Idee

Portrait von robertbit
  • 04.06.2009 - 09:01

Sehr schönes Actionscript. Weiter so.

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 04.06.2009 - 08:40

Das TUT gibt einem super Innovation mehr daraus zu machen. Danke für die super Anleitung, weiter so!

Portrait von nobody09
  • 02.06.2009 - 17:42

Sehr Sehr gut vorallem ohne alzu komplizierte Scripts :)

Dazu scheint das ganze rechtflexibel zu sein wenn mann mit den Zahlen etwas herum spielt... Ich denke das sich eine Klasse sehr gut dafür eignen würde in der man alles schnell und einfach einstellen kann^^ aber da denk ich vll auch gerade n schritt zu weit :D

Portrait von NitroMani
  • 02.06.2009 - 23:25

Hey!<br>
Nein du denkst nicht zu weit! :D<br>
super idee das in eine klasse zu packen!<br>
und mit dem verändern der werte hast du total recht!

x
×
×