[B3D] 3D-Partikelengine
Übersicht

![]() |
KabelbinderSieger des WM-Contest 2006Betreff: [B3D] 3D-Partikelengine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eine Paritkelengine für BB3D.
Sie beherrscht: x, y, z, pitch, yaw, roll, speep, startalpha, endalpha, startsize, ensize, drehwinkel, textur, lebendauer(in Durchläufen), startcolor, endcolor und drehrichtung Beschleunigungen und undproportionale verschiebungen gehen leider nicht. Die Farben kann man nur benutzen, wenn man keine textur angegeben hat. Die Farbwerte muss man wie bei wirtepixel angeben, also Zitat: rot*$10000+grün*$100+blau*$1
Im Beispiel hat man beim Druck der linken Maustaste fliehende Rechtecke, die sich von rot langsam grün färben und immer durchsichtiger werden; und beim Druck der rechten Maustaste soetwas, wie Rauch (Mit texturierten Sprites käme der Rauch sicher besser) Code: [AUSKLAPPEN] AppTitle "Emitter"
Graphics3D 640,480,16,2 SetBuffer BackBuffer() Const flumax = 600 ;1 x,2 y,3 z,4 countup,5 pivot,6 pitch,7 yaw,8 roll,9 speed,10 startalpha,11 endalpha,12 startsize,13 endsize,14 rotieren,15 textur,16 maxlife,17 startcolor,18 endcolor,19 sprite Dim flapj#(flumax,20) Global flum mycam = CreateCamera() PositionEntity mycam,0,1,-2 Function createflapj(x#,y#,z#,pit#,yaw#,rol#,spe#,sta#,ena#,sts#,ens#,dreh#,textu,stam,stc,enc,drehmar#) flapj(flum,1)=x flapj(flum,2)=y flapj(flum,3)=z flapj(flum,4)=0 flapj(flum,5)=CreatePivot() flapj(flum,6)=pit flapj(flum,7)=yaw flapj(flum,8)=rol flapj(flum,9)=spe flapj(flum,10)=sta flapj(flum,11)=ena flapj(flum,12)=sts flapj(flum,13)=ens flapj(flum,14)=dreh flapj(flum,15)=textu flapj(flum,16)=stam flapj(flum,17)=stc flapj(flum,18)=enc flapj(flum,20)=drehmar flapj(flum,19)=CreateSprite(flapj(flum,5)) RotateEntity flapj(flum,5),flapj(flum,6),flapj(flum,7),flapj(flum,8) PositionEntity flapj(flum,5),flapj(flum,1),flapj(flum,2),flapj(flum,3) SpriteViewMode flapj(flum,19),3 If flapj(flum,15) <> 0 Then EntityTexture flapj(flum,19),flapj(flum,15) Else ro=(flapj(flum,17) And $FF0000)/$10000 gr=(flapj(flum,17) And $FF00)/$100 bl=(flapj(flum,17) And $FF)/$1 EntityColor flapj(flum,19),ro,gr,bl EndIf ScaleSprite flapj(flum,19),flapj(flum,12),flapj(flum,12) RotateSprite flapj(flum,19),flapj(flum,14) EntityAlpha flapj(flum,19),flapj(flum,10) If flum = flumax Then flum = 0 Else flum = flum + 1 EndIf End Function Function flapjlife() For i = 0 To flumax If flapj(i,4)<flapj(i,16) And flapj(i,19)<>0 Then ;ablaufen flapj(i,4) = flapj(i,4) + 1 ;verschieben MoveEntity flapj(i,5),flapj(i,9),0,0 ;alpha EntityAlpha flapj(i,19),flapj(i,10)+(flapj(i,11)-flapj(i,10))*(flapj(i,4)/flapj(i,16)) ;farbe If flapj(i,15)=0 Then ro1=(flapj(i,17) And $FF0000)/$10000 gr1=(flapj(i,17) And $FF00)/$100 bl1=(flapj(i,17) And $FF)/$1 ro2=(flapj(i,18) And $FF0000)/$10000 gr2=(flapj(i,18) And $FF00)/$100 bl2=(flapj(i,18) And $FF)/$1 EntityColor flapj(i,19),ro1+(ro2-ro1)*(flapj(i,4)/flapj(i,16)),gr1+(gr2-gr1)*(flapj(i,4)/flapj(i,16)),bl1+(bl2-bl1)*(flapj(i,4)/flapj(i,16)) EndIf ;größe ScaleSprite flapj(i,19),flapj(i,12)+(flapj(i,13)-flapj(i,12))*(flapj(i,4)/flapj(i,16)),flapj(i,12)+(flapj(i,13)-flapj(i,12))*(flapj(i,4)/flapj(i,16)) ;drehung flapj(i,14)=flapj(i,14)+flapj(i,20) RotateSprite flapj(i,19),flapj(i,14) Else FreeEntity flapj(i,19) flapj(i,19) = 0 EndIf Next End Function Repeat If MouseDown(1) Then If MilliSecs()-ntimer >=50 Then ntimer = MilliSecs() createflapj(0,0,0,0,Rnd(70,110),Rnd(0,8),0.09,1,0,0.2,0.2,Rand(0,360),0,400,255 * $10000,255 * $100,Rnd(-2.0,2.0)) EndIf EndIf If MouseDown(2) Then If MilliSecs()-ntimer >=5 Then ntimer = MilliSecs() createflapj(-5,-4,8,0,0,Rand(30,60),0.06,1,0,0.2,1.8,Rand(0,360),0,400,20*$10000+20*$100+20*$1,200*$10000+200*$100+200*$1,0);Rnd(-2.0,2.0)) EndIf EndIf flapjlife() UpdateWorld RenderWorld Flip Until KeyHit(1) End |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
JanK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sehr schön...auch wenn die Teile nicht ausschauen wie Rauch/Feuer ![]() |
||
Ich habe keine Zeit, mich zu beeilen.
The Pollux Conflict || The Pollux Renegades || Lipstick-live.de |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schön.. | ||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
- Zuletzt bearbeitet von Triton am Di, März 24, 2009 20:14, insgesamt einmal bearbeitet
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es gefällt mir ganz gut, die Geschwindigkeit ist mit knapp 80 Fps bei den grauen und ca. 120 bei den roten Partikeln auch ok. Allerdings scheint sie immer weiter abzunehmen, wenn man die Partikel immer weiter produziert.
Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei mir geht das nicht, wenn ich es starte, kommt nichts, wenn ich eine Maustaste drücke, kommt: "Parent Entity does not exist"
![]() |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group