Funktionen "länger" aufrufen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Black Spider

Betreff: Funktionen "länger" aufrufen

BeitragDo, Dez 15, 2005 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey Leute,
brauch für meine kleine Part.Engine mal wieder Hilfe von euch...
Also:
ich möchte meine Funktion etwas "länger" aufrufen, so als wenn ich sie mit KeyDown
in der Schleife Aktiviert hätte. Code: BlitzBasic: [AUSKLAPPEN]
Graphics3D 1024,768,32,1
SetBuffer BackBuffer()

cam = CreateCamera()
PositionEntity cam,0,0,-20



Global flam = LoadSprite(\"funke.bmp\");\"PartikelEngine/funke.bmp\")
HideEntity flam

Global glow = LoadSprite(\"glow.bmp\");\"PartikelEngine/glow.bmp\")
HideEntity glow


Type Flamme
Field x#
Field y#
Field z#
Field obj
Field size#
Field alpha#
Field rotz#
Field bewy#
Field sc#

Field mesh
Field surf
Field brush


End Type




FlammenLaden = Flamieren(0,0,9,3)

;-- Haupschleife ---
;-- (Testebene) ---

While(Not(KeyHit(1)))


If KeyDown(57) Then Flamieren(Rnd(-1,1),Rnd(-1,1),Rnd(-3,3),1) ;--- Kleine Explosion / kleines Feuer
If KeyDown(15) Then Flamieren(Rnd(-3,3),Rnd(-3,3),Rnd(-3,3),3) ;--- Mittlere Explosion / Mittleres Feuer
If KeyDown(200) Then Flamieren(0,0,0,9) ;-- Grosse Explosion / Grosses Feuer


FlammenErneuern()


UpdateWorld
RenderWorld

Flip
Wend

End


Function Flamieren(x,y,z,s)

fl.Flamme = New Flamme


fl\x = x
fl\y = y
fl\z = z
fl\sc = 1

fl\bewy = 0.3;Rnd(1,3)
fl\rotz = Rnd(1,3)

fl\obj=CopyEntity(flam)
fl\size = s
fl\alpha = 1

EntityAlpha fl\obj,fl\alpha
EntityColor fl\obj,Rnd(150,250),Rnd(0,100),0
ScaleSprite fl\obj,fl\size,fl\size
PositionEntity fl\obj,fl\x,fl\y,fl\z

End Function


Function FlammenErneuern()

For fl.Flamme = Each Flamme

fl\size = fl\size + .2
fl\alpha = fl\alpha - .05
EntityAlpha fl\obj,fl\alpha
fl\rotZ = fl\rotZ + 3
RotateSprite fl\obj,fl\rotZ
ScaleSprite fl\obj,fl\size,fl\size
MoveEntity fl\obj,0,0.3,0

If fl\alpha < 0
FreeEntity fl\obj
Delete fl
End If


Next

End Function

Es handelt sich um eine Partikel Engine. Die letzte Funktion (hier nicht mit aufgeführt)
soll auswerten ob es sich um ein Feuer oder um eine Explosion Handelt.
Das Feuer soll dann Lange aufgerufen werden,
bei Explosion brennt das Feuer dann nur kurz und verschwindet wieder.
Jemand ne Idee !?

Danke!
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif
 

gamble

BeitragDo, Dez 15, 2005 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich dich richtig verstehe:

Du könntest in einer Variable speichern ob die Funktion aufgerufen werden soll, die Variable dann in der Hauptschleife überprüfen und die Funktion ggf. aufrufen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group