Blut und Explosionen mit Partikeln (Sprites)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Jannik

Betreff: Blut und Explosionen mit Partikeln (Sprites)

BeitragDo, Feb 19, 2009 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich bins mal wieder...
ch bin auf der Suche nach einem Tutorial oder einer Hilfe für das Einsetzen von Partikeln also sprites als Blut- (bzw. Eplosions-)effekt.

Ich bin bei der Forums-Suche auf folgenden Code gestoßen, der einen ähnlichen Vorgang auslöst:


Code: [AUSKLAPPEN]


Graphics3D 800,600,16,2
SetBuffer BackBuffer()

Camera = CreateCamera()
CameraRange Camera,1,800

Type Partikel
 Field x#,y#,speed#,winkel,rotate,alpha#,entity
End Type

For i = 1 To 1000
 CreatePartikel(400,300,2,2)
Next

Global FPSSEC = MilliSecs(), FPS, FRAMES

Timer1 = MilliSecs()
Repeat
Cls

UpdatePartikel()

RenderWorld()

; --- DEBUG INFO ONLY ---
Text 0,30, "FPS: " + FPS(1) + " FPS"
p.partikel = First partikel
Text 0,0, "X: " + p\x#
Text 0,10, "Y: " + p\y#
; ---

Flip
Until KeyHit(1)
End


Function CreatePartikel(x,y,w,h)
 p.partikel = New partikel
p\x# = (x*2)-800+w
p\y# = -(y*2)+600-h
 p\speed# = Rnd(1,5)
 p\winkel = Rnd(0,359)
 p\alpha# = Rnd(0,1)
 p\entity = CreateSprite()
 ScaleSprite p\entity, w, h
 EntityAlpha p\entity, p\alpha#
 EntityColor p\entity, 255,Rnd(0,255),0
 PositionEntity p\entity, p\x#, p\y#, 800
End Function


Function UpdatePartikel()
 For p.partikel = Each partikel
  p\x# = p\x# + Cos(p\winkel) * p\speed#
  p\y# = p\y# + Sin(p\winkel) * p\speed#
  PositionEntity p\entity, p\x#, p\y#, 800
  p\rotate = p\rotate + p\speed*3
  If p\ rotate > 360 Then p\rotate = 0
  RotateSprite p\entity, p\rotate
 Next
End Function


Function FPS(MODE)
 If MODE = 1 Then
  FRAMES = FRAMES + 1
  If MilliSecs() - FPSSEC => 1000 Then
   FPS = FRAMES
   FRAMES = 0
   FPSSEC = MilliSecs()
  EndIf
 EndIf
 
 Return FPS
End Function



Dieser Vorgang ist allerdings prinzipiel in 2d gehalten, da die Partikel sich nicht auf der z-achse bewegen.

Was ich möchte ist halt, dass die Partikel eine "Trichter", der sich nach vorne hin öffnet, bilden.

Wenn's dazu kein Tutorial gibt, hat jemand zufällig nen Codeschnipsel dazu?

Danke schonmal...Smile

faeX

BeitragSo, Feb 22, 2009 13:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Wozu selber schreiben, es gibt genug gute Wink
Devil Engines unter Page/Products und dann bei Particle Engine auf's Bild klicken Wink
Particle Works
Ansonsten erkundige dich nach Lotus, der Autor "Noel" wurde glaube ich gekickt und hat deshalb viele Downloadlinks stillgelegt Wink Ich hab sie aber noch hier auf meiner Festplatte, wenn du sie möchtest schick mir 'ne PM Very Happy

EDIT: Schau dir am besten die Codes an! Und übrigens: Z ist fast gleich zu setzen mit X, in so gut wie allen Particle Engines kann Z nach dem gleichen Muster berechnet werden wie X. Und zum Feuer und Blut: da gilt es rumprobieren. Empfehle dir dafür die Devil Particle Engine (siehe Link), da kann man gut dran rumspielen!

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group