[B3D] Feuerengin by Puccini

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Puccini

Betreff: [B3D] Feuerengin by Puccini

BeitragSa, Dez 15, 2007 0:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin!

Ich hab mir hier im Forum ein paar anregugnen für eine Feuerengin geholt und hab mal versuch selbst eine zu entwerfen.. naja.

Das ergebnis sieht für den ersten versuch net schlecht aus....

Das tolle, die Engine kommt ganz ohne zusätzliche Dateien aus ^^

FÜr verbesserungs- und änderungsmitteilungen bin ich immer zu haben!

Code: [AUSKLAPPEN]
Graphics3D 800,600,32,2

Const partikelanz_max=1500         ;maximale Partikelanzahl im Frame
Const rauch_an=1               ;1=an 0=aus
Const feuerdichte=20            ;he höher um so mehr Feuerpartikel
Const rauchdichte=5               ;je höher um so mehr Rauchpartikel

SetBuffer BackBuffer()
SeedRnd MilliSecs()

Global camera=CreateCamera()
PositionEntity camera,00,50,-250
Global firepartikel=CreateSprite()
cube=CreateCube()
PositionEntity cube,20,0,0
ScaleEntity cube,5,5,5

Global partikelanz=0

Type fire
Field partikel            ;Das Kopierte Entity
Field grob               ;Die Grobe Richtung des Partikels
Field r,g               ;Rot und Gelb Anteil
Field alpha#,alphablend#   ;Alpha und die Alphaänderung
Field speed#            ;Aufstiegsgesschwindigkeit
End Type
Type smoke
Field partikel
Field grob
Field r,g,b
Field alpha#,alphablend#
Field speed#
End Type

timer=CreateTimer(60)

While Not KeyHit(1)
   createfire()
   updatefire()
   updatesmoke()

   PointEntity camera,firepartikel         ;soll nur etwas um das feuer fahren
   MoveEntity camera,1,0,0
   
   WaitTimer(timer)

   UpdateWorld
   RenderWorld
   Text 10,10,partikelanz
   Flip 0

Wend


Function createfire()

If partikelanz<partikelanz_max
   For newfire=1 To feuerdichte
      f.fire=New fire
         f\partikel=CopyEntity(firepartikel)
         f\grob=Rnd(-1,1)
         f\r=255
         f\g=255
         f\alpha#=Rnd(0.2,0.4)
         f\alphablend#=Rnd(0.01,0.05)
         f\speed#=Rnd(0.1,1.6)
         partikelanz=partikelanz+1
         EntityFX f\partikel,17
   Next
End If
End Function
Function createsmoke(entity)

If partikelanz<partikelanz_max
   For newsmoke=1 To rauchdichte
      s.smoke=New smoke
         s\partikel=CopyEntity(entity)

         s\grob=Rnd(-1,1)
         graylevel=Rnd(30,90)
         s\r=graylevel
         s\g=graylevel
         s\b=graylevel
         s\alpha#=Rnd(0.2,0.4)
         s\alphablend#=Rnd(0.01,0.05)
         s\speed#=Rnd(0.1,1)
         partikelanz=partikelanz+1
         EntityFX s\partikel,17
   Next
End If
End Function
Function updatesmoke()
   For s.smoke=Each smoke
      ausweichen=Rnd(40)
      EntityAlpha s\partikel,s\alpha#
      s\alpha#=s\alpha+s\alphablend#
      If s\alpha#>0.8 Then s\alphablend#=Rnd(-0.05,-0.03)
      MoveEntity s\partikel,Rnd(-1.5,1.5)+0.2*s\grob,s\speed#,Rnd(-1.5,1.5)+0.2*s\grob
      EntityColor s\partikel,s\r,s\g,s\b   
      If s\alpha#<=0 Then
         partikelanz=partikelanz-1
         FreeEntity s\partikel
         Delete s
      End If         
   Next
         
End Function
Function updatefire()
   For f.fire=Each fire
      ausweichen=Rnd(40)

      EntityAlpha f\partikel,f\alpha#
      f\alpha#=f\alpha#+f\alphablend#
      If f\alpha#>0.8 Then f\alphablend#=Rnd(-0.15,-0.1)
      MoveEntity f\partikel,Rnd(-1.5,1.5)+0.2*f\grob,f\speed#,Rnd(-1.5,1.5)+0.2*f\grob
      EntityColor f\partikel,f\r,f\g,0
      If f\r > 50 Then f\r = f\r - 5
      f\g = f\g - Rnd(10,20)
      If f\alpha#<=0 Or f\r<20 Then
         partikelanz=partikelanz-1
         If f\speed#>1.5 And partikelanz<partikelanz_max-200 And rauch_an=1Then
            createsmoke(f\partikel)
         End If
         FreeEntity f\partikel
         Delete f
      End If
   Next
End Function


Bitte sagt ob euch das gefällt oder nich!
Mit den 3 Konstanten am anfang könnt ihr etwas spielen. Bei rauchdichte=20 siehts aus als ob man einen autoreifen verbrennt ^^

MfG Puccini
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39

aMul

Sieger des Minimalist Compo 01/13

BeitragSa, Dez 15, 2007 1:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn es SingleSurface wäre wäre es gut.
So ist es nur so naja... annehmbar.

Im Prinzip nichts besonders...

Und unbedingt nach Feuer aussehen tut es auch nichts.
Allerdings ist es wirklich nicht leicht, realistisches Feuer hinzukriegen.
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

Foppele

BeitragSa, Dez 15, 2007 2:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finds gar nicht schlecht, die Bewegung der Partikel gefällt mir gut. Man könnte halt noch ne alphamap für runde Partikel mit verwaschen Rändern nehmen. Und in der Mitte des Feuers ein flackerndes Licht platzieren.

Sehr geil ist auch der kleine Würfel der da ums Feuer schleicht.

DAK

BeitragSa, Dez 15, 2007 7:58
Antworten mit Zitat
Benutzer-Profile anzeigen
jo, schaut nicht schlecht aus... ich find auch, das runde Partikel noch bissal besser ausschauen würden...
Gewinner der 6. und der 68. BlitzCodeCompo

Puccini

BeitragSa, Dez 15, 2007 9:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit dem rund hab ich mir auch shcon überlegt ^^

der würfel war nur für mich zum testen -.- habsch vergessen rauszunehmen.
die kamera dreht sich um das feuer, der würfel is starr. und damit man sieht das sich was dreht hab ich den halt hingemacht ^^

ich hab gelesen das wenn ich jetzt ne textur auf jeden partikel machen würde, mit mask, das würde extrem rechenintensiv für die arme graka... daher wollte ich das erstmal weglassen. ist es mit vertex alpha besser???

@aMul: wie willst du das in singlesurface machen?? is sicher schneller Very Happy


Ich weis auch das es nich wie ein richtiges feuer aussieht! ich würd gern wissen wie das bei Stranded gelöst ist Very Happy da gefällt mir das feuer Wink
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39

The_Nici

BeitragSa, Dez 15, 2007 10:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Singlesurface->Suche!

Ich habe gestern nur so aus Scheiss aus dem Partikeleffekt nen tollen Bluteffekt gebastelt.
Ich würde übrigens mit dem Mesh die Kamera pointen. Ansonsten sieht man die 2-Dimensionalität.

Puccini

BeitragSa, Dez 15, 2007 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
das sind sprits, die sind immer zur kamera ausgerichtet!

ich weis was singlesurface ist, wollte nur wissen wie er sicht das dann genau vorstellt!
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39

Silver_Knee

BeitragSa, Dez 15, 2007 15:45
Antworten mit Zitat
Benutzer-Profile anzeigen
nimm kleine spheres anstatt sprites.. die kann man singlesurfacen

PS das ist ein cooles wort xD

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group