Helft mir! (particle engine)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

ChrisAttack

Betreff: Helft mir! (particle engine)

BeitragMi, Apr 14, 2004 9:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich möchte auch einmal eine Particle Engine für meine spiele schreiben, nur leider habe ich keine ahnung wie das geht! Ich habe noch nicht mal irgendeinen ansatz! bitte helft mir! an alle die eine geschrieben haben:
wie geht das? (bitte einfach und ausführlich)

THX schon mal im vorraus...
B3D
MSVC++
DX9SDK

Bigmichi

BeitragMi, Apr 14, 2004 11:02
Antworten mit Zitat
Benutzer-Profile anzeigen
eine einfache und simple ist wenn du ein Sprite nimmst und dir 2 funktionen schreibst in der 1 Function ersellst du immer ein neues Sprite und mit einem Field z.B Lebensenergie und in der 2 function updatest du die vorhandenen sprites einfach immer 1 nachhinten und ab einer bestimmten lebensenergie grad verkleinerst du die und alpha vllt noch so bekommst du ein einfachen kleinen efekt =)


Für das Bsp benötigt man eine PNG irgendeine XD so ca. 128*128 net größer

z.B
user posted image


Code: [AUSKLAPPEN]
Type PE
   Field SP
   Field LB
End Type




Graphics3D 1024,768,16,2
SetBuffer BackBuffer()



Global SP = LoadSprite("B.png")
HideEntity SP


Global Kamera = CreateCamera()
PositionEntity Kamera,0,0,-30



Global KK = CreatePivot()

Global WW

Global Timer


While Not KeyHit(1)

      WW = ( WW + 2 ) Mod 360

      XX# = Cos(WW)*10
      YY# = Sin(WW)*10
     
     
      PositionEntity KK,XX#,YY#,0


      If Timer + 25 < MilliSecs() Then

       ADDP()

       Timer = MilliSecs()
      End If
       
       UPP()

   RenderWorld
   
   
Flip : Cls
Wend
End




Function ADDP()

   PA.PE = New PE
      PA\SP = CopyEntity(SP)
      PA\LB = 100
     
      ShowEntity PA\SP
     
      EntityColor PA\SP, Rand(0,255), Rand(0,255), Rand(0,255)
     
      PositionEntity PA\SP, EntityX(KK), EntityY(KK), EntityZ(KK)


End Function



Function UPP()

   For PA.PE = Each PE
   
      If PA\LB > 0 Then
         PA\LB = PA\LB - 1
         
         EntityAlpha PA\SP,PA\LB / 100.0
         ScaleSprite PA\SP,PA\LB / 100.0, PA\LB / 100.0
      End If
     
   
      If PA\LB = 0 Then
         FreeEntity PA\SP
         Delete PA
      End If
   
   Next

End Function

ChrisAttack

BeitragMi, Apr 14, 2004 11:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke! Very Happy
B3D
MSVC++
DX9SDK

ChrisAttack

BeitragMi, Apr 14, 2004 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
So, hab das mal selber geschreiben... sieht fast genauso aus, naja...
Download hier
B3D
MSVC++
DX9SDK

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group