Partikeleffekt

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Kurzer

Betreff: Partikeleffekt

BeitragDo, Dez 13, 2007 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Ich wollte mal fragen wie man eigendlich Partikeleffekte macht? Und könnt ihr dafür evt. auch ein gutes Tutorial empfelen?

Danke für eure Antworten Wink

Eingeproggt

BeitragDo, Dez 13, 2007 22:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Partikeleffekt ist nichts weiters, als mehrere "Partikel" (Farbpunkte, Images in 2D, Sprites in 3D) mehr oder weniger zufällig in bestimmte oder auch zufällige Richtungen zu bewegen.
Diese Partikel und ihre jeweilige Eigenschaft werden am besten in Types abgespeichert. zB
Code: [AUSKLAPPEN]
Type partikel
  Field x,y
  FIeld winkel
  Field geschw
  Field color ;Farbe im Integer-Format für WritePixel, Plot ist nicht zu empfehlen!
End Type


Also wie gesagt. Partikel erstellen, bewegen, zeichnen. Im Prinzip ganz einfach, nur um die Performance macht man sich manchmal Sorgen.

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

d-bug

BeitragFr, Dez 14, 2007 10:32
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.

d-bug

Dottakopf

BeitragFr, Dez 14, 2007 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi hab mal uralt code rausgesucht wo ich sowas mit ner art Konfettie mach.
Wenn was unklar ist bitte fragen. (hab den jetzt auch nicht nochmal durchgeguckt)

Code: [AUSKLAPPEN]

Graphics 800,600,32,2
SetBuffer BackBuffer()

SeedRnd MilliSecs()
HidePointer


Global counter,p_sx#,p_sy#
Global timer = CreateTimer(80)
Global mx,my


Type pop
 Field px#
 Field py#
 Field p_color_r#
 Field p_color_g#
 Field p_color_b#
 Field p_speed#   ;standart speed
 Field p_speedx# ;für mausspeed des konfetties
 Field p_speedy# ;für mausspeed des konfetties
End Type




Repeat
Cls
WaitTimer(timer)

   p_sx# = MouseXSpeed()   ;er übernimmt den mousespeed
   p_sy# = MouseYSpeed()

   create_partikel()
   update_partikel()
   update_cursor()
 


Flip
Until KeyHit(1)





Function create_partikel()


 If MouseDown(1) Then
   
     
    counter = counter +1
    If counter >= 2 Then
       counter = 0   
   
      info.pop = New pop
         info\px = MouseX() +Rnd(-5,5)
         info\py = MouseY() +Rnd(-5,5)
          info\p_speedx = p_sx# *2
          info\P_speedy = p_sy# *2
           info\p_color_r = Rnd(0,255)
           info\p_color_g = Rnd(0,255)
           info\p_color_b = Rnd(0,255)
           info\p_speed = 0
   
      End If   
   
   
 End If



End Function


Function update_partikel()

  For info.pop = Each pop
       
       info\p_speed = info\p_speed + 0.1 ;gravitation zieht partikel nach unten
       info\py = info\py + ( info\p_speed + (info\p_speedy*0.2) ) ; + den maus speed
       info\px = info\px + info\p_speedx*0.2
   
       Color info\p_color_r,info\p_color_g,info\p_color_b : Rect info\px ,info\py,3,3,1

       If info\py > 600 Then Delete info.pop

  Next


End Function


Function update_cursor()

      mx = MouseX()
      my = MouseY()

      Color 0,0,150 Rect mx,my,3,3,1



End Function


Viel erfolg!

mfg Dottakopf
Rechtschreibfehler gelten der allgemeinen Belustigung!
 

Kurzer

BeitragFr, Dez 14, 2007 15:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry das ich das ins falsche FOrum gepostet hab.


Danke für eure Antworten - ich werde das gleich nachher mal probieren - jedoch wollte ich ja auch nicht so große Partikeleffekte machen, die wirklich viel Performance ziehen Wink

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group