Da ich leider von gutem MP3D, auf "komische Fehler produzierendes" Ogre umsteigen muss,
habe ich diesem Ogre mal ein paar Pickel ausgedrückt und noch ein paar Slider dazu gesetzt, um mal zu testen,
ob ich mit den Partikeln etwas anfangen kann. Jo, geht so.
Es kann vorkommen, dass man das Prog. 2 oder 3 mal starten muss. ( als Ogre-Jungfrau möge man mir verzeihen )
Ist auf der rechten Seite der Sprühstrahl zu sehen, war der Start erfolgreich.
Möchte man "Debug" benutzen, wird man von einem seit 20 Jahren eingebauten, und nie behobenen Fehler belästigt,
der besagt, dass man keine negativen Slider-Werte benutzen darf.
Warum das alles ohne "Debug" funktioniert, wird wohl immer ein Rätsel bleiben.
Da ich der Meinung bin, dass Grafiken auch bewegt werden sollten, anstatt dass sie nur herumlungern, bewegen sie sich nach Musik.
Dazu braucht man "FModEx.pbi" vom "Grillmeister".
-------------------------------------
"FModEX.pbi" findet man hier im Forum unter "fmodex include" oder "viewtopic.php?f=8&t=18082&hilit=fmod+include+file"
Bei der "FModEX.pbi" erscheint mehrmals: "Konstante nicht gefunden". Das Prog funktioniert auch ohne die - nicht gefundenen -.
--------------------------------------
Code: Alles auswählen
;##############################################################################################################
;########################################### Normal Partikel #####################################################
;##############################################################################################################
;Pure 5.73 (32) Win
;Betriebsanleitung:
;Listing----> in Examples\3D
;-------Slider - Button-------
;Signal för all:-----> Signal erhöhen, bei schwachem Sound, alten Kassettenaufnahmen etc. ( kein Volume )
;Prefs:-----> Voreinstellung för all de Slider
;Ball VU:-----> Ein bescheidenes " VU-Meter " für die zwei Bälle. Schnell nach vorne, langsam zurück.
;SpeedFactor -----> für Spray rechts
;Die Slider hinter dem grünen Balken sind nur für die Grafik in der Mitte.
;Warnung:
;Manche Slider haben negative Werte. Wenn man Debug einschaltet, springt der Käfer. ( 0 - 10000 )
;#######################
; Form-Designer
Enumeration FormWindow
#Window_1
EndEnumeration
Enumeration FormGadget
#Slider_PartikelSizeX
#Slider_PartikelSizeY
#Text_0
#Text_1
#Text_2
#Text_PartikelSizeX
#Text_PartikelSizeY
#Slider_EmissionPartikel
#Text_4
#Text_EmissionPartikel
#Text_5
#Text_6
#Slider_TimeMinimal
#Slider_TimeMaximal
#Text_TimeMinimal
#Text_TimeMaximal
#Text_7
#Slider_EmitterDirectionX
#Slider_EmitterDirectionY
#Slider_EmitterDirectionZ
#Text_16
#Text_9
#Text_10
#Text_EmitterDirectionX
#Text_EmitterDirectionY
#Text_EmitterDirectionZ
#Text_11
#Slider_VeloMinimum
#Text_12
#Slider_VeloMaximum
#Text_VeloMinimum
#Text_VeloMaximum
#Text_13
#Slider_SpeedFactor
#Text_SpeedFactor
#Text_14
#Slider_AccelerationX
#Text_AccelerationX
#Text_15
#Slider_MoveEmitterX
#Slider_MoveEmitterY
#Slider_MoveEmitterZ
#Text_17
#Text_18
#Text_MoveEmitterX
#Text_MoveEmitterY
#Text_MoveEmitterZ
#Text_8
#Text_19
#Slider_EmitterAngle
#Text_EmitterAngle
#Slider_AccelerationY
#Slider_AccelerationZ
#Text_AccelerationY
#Text_AccelerationZ
#Text_20
#Text_21
#Text_22
#Slider_ColorStart
#Slider_ColorEnd
#Text_23
#Text_ColorStart
#Text_ColorEnd
#Text_24
#Slider_ColorFaderR
#Slider_ColorFaderG
#Slider_ColorFaderB
#Slider_ColorFaderAlpha
#Text_ColorFaderR
#Text_ColorFaderG
#Text_ColorFaderB
#Text_ColorFaderAlpha
#Text_26
#Text_27
#Text_28
#Text_29
#Text_30
#Text_31
#Button_Musik
#Button_Ende
#Button_Start
#Button_Pause
#Slider_Signal
#Text_4_1
#Slider_EmissionEmitter
#Text_EmissionEmitter
#Text_13_2
#Button_Prefs
#Text_Signal
#Text__40
#Text__50
#Slider_BallVU
#Text_BallVU
#Text__51
#Slider_Spray
#Text_Spray
#Text__52
#Text_40
#Song_Name
EndEnumeration
Enumeration FormFont
#Font_Window_1_0
#Font_Window_1_1
EndEnumeration
LoadFont(#Font_Window_1_0,"Arial", 12, #PB_Font_Bold)
LoadFont(#Font_Window_1_1,"Arial", 10)
Procedure OpenWindow_1(x = 0, y = 0, width = 1920, height = 1080)
OpenWindow(#Window_1, x, y, width, height, "Normal Partikel Test", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered)
SetWindowColor(#Window_1, RGB(192,192,192))
ScrollBarGadget(#Slider_PartikelSizeX, 465, 35, 150, 20, 0, 100, 0)
ScrollBarGadget(#Slider_PartikelSizeY, 465, 60, 150, 20, 0, 100, 0)
TextGadget(#Text_0, 435, 10, 220, 20, "Partikel Size", #PB_Text_Center)
SetGadgetFont(#Text_0, FontID(#Font_Window_1_0))
TextGadget(#Text_1, 435, 35, 25, 20, "X", #PB_Text_Center)
SetGadgetFont(#Text_1, FontID(#Font_Window_1_0))
TextGadget(#Text_2, 435, 60, 25, 20, "Y", #PB_Text_Center)
SetGadgetFont(#Text_2, FontID(#Font_Window_1_0))
TextGadget(#Text_PartikelSizeX, 615, 35, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_PartikelSizeX, FontID(#Font_Window_1_0))
TextGadget(#Text_PartikelSizeY, 615, 60, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_PartikelSizeY, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_EmissionPartikel, 435, 115, 155, 20, 10, 10000, 0)
TextGadget(#Text_4, 435, 90, 220, 20, "Emission Partikel ", #PB_Text_Center)
SetGadgetFont(#Text_4, FontID(#Font_Window_1_0))
TextGadget(#Text_EmissionPartikel, 590, 115, 65, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_EmissionPartikel, FontID(#Font_Window_1_0))
TextGadget(#Text_5, 985, 150, 190, 20, "Time Minimal * 0.1", #PB_Text_Center)
SetGadgetFont(#Text_5, FontID(#Font_Window_1_0))
TextGadget(#Text_6, 1235, 150, 190, 20, "Time Maximal * 0.1", #PB_Text_Center)
SetGadgetFont(#Text_6, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_TimeMinimal, 985, 175, 150, 20, 1, 100, 0)
ScrollBarGadget(#Slider_TimeMaximal, 1235, 175, 150, 20, 1, 100, 0)
TextGadget(#Text_TimeMinimal, 1135, 175, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_TimeMinimal, FontID(#Font_Window_1_0))
TextGadget(#Text_TimeMaximal, 1385, 175, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_TimeMaximal, FontID(#Font_Window_1_0))
TextGadget(#Text_7, 1205, 10, 220, 20, "Emitter Direction ", #PB_Text_Center)
SetGadgetFont(#Text_7, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_EmitterDirectionX, 1235, 35, 150, 20, -100, 100, 0)
ScrollBarGadget(#Slider_EmitterDirectionY, 1235, 60, 150, 20, -10, 10, 0)
ScrollBarGadget(#Slider_EmitterDirectionZ, 1235, 85, 150, 20, -100, 100, 0)
TextGadget(#Text_16, 1675, 35, 25, 20, "X", #PB_Text_Center)
SetGadgetFont(#Text_16, FontID(#Font_Window_1_0))
TextGadget(#Text_9, 1205, 60, 25, 20, "Y", #PB_Text_Center)
SetGadgetFont(#Text_9, FontID(#Font_Window_1_0))
TextGadget(#Text_10, 1205, 85, 25, 20, "Z", #PB_Text_Center)
SetGadgetFont(#Text_10, FontID(#Font_Window_1_0))
TextGadget(#Text_EmitterDirectionX, 1385, 35, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_EmitterDirectionX, FontID(#Font_Window_1_0))
TextGadget(#Text_EmitterDirectionY, 1385, 60, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_EmitterDirectionY, FontID(#Font_Window_1_0))
TextGadget(#Text_EmitterDirectionZ, 1385, 85, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_EmitterDirectionZ, FontID(#Font_Window_1_0))
TextGadget(#Text_11, 1455, 10, 190, 20, "Velocity Minimum", #PB_Text_Center)
SetGadgetFont(#Text_11, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_VeloMinimum, 1455, 35, 150, 20, 2, 100, 0)
TextGadget(#Text_12, 1455, 65, 190, 20, "Velocity Maximum", #PB_Text_Center)
SetGadgetFont(#Text_12, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_VeloMaximum, 1455, 90, 150, 20, 0, 700, 0)
TextGadget(#Text_VeloMinimum, 1605, 35, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_VeloMinimum, FontID(#Font_Window_1_0))
TextGadget(#Text_VeloMaximum, 1605, 90, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_VeloMaximum, FontID(#Font_Window_1_0))
TextGadget(#Text_13, 1455, 150, 190, 20, "Backw. - Stop - Forw.", #PB_Text_Center)
SetGadgetFont(#Text_13, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_SpeedFactor, 1455, 175, 150, 20, -10, 50, 0)
TextGadget(#Text_SpeedFactor, 1605, 175, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_SpeedFactor, FontID(#Font_Window_1_0))
TextGadget(#Text_14, 955, 10, 220, 20, "Acceleration ( Wind )", #PB_Text_Center)
SetGadgetFont(#Text_14, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_AccelerationX, 985, 35, 150, 20, -100, 100, 0)
TextGadget(#Text_AccelerationX, 1135, 35, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_AccelerationX, FontID(#Font_Window_1_0))
TextGadget(#Text_15, 1675, 10, 220, 20, "Move Partikel Emitter", #PB_Text_Center)
SetGadgetFont(#Text_15, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_MoveEmitterX, 1705, 35, 150, 20, -300, 300, 0)
ScrollBarGadget(#Slider_MoveEmitterY, 1705, 60, 150, 20, -100, 100, 0)
ScrollBarGadget(#Slider_MoveEmitterZ, 1705, 85, 150, 20, -300, 300, 0)
TextGadget(#Text_17, 1675, 60, 25, 20, "Y", #PB_Text_Center)
SetGadgetFont(#Text_17, FontID(#Font_Window_1_0))
TextGadget(#Text_18, 1675, 85, 25, 20, "Z", #PB_Text_Center)
SetGadgetFont(#Text_18, FontID(#Font_Window_1_0))
TextGadget(#Text_MoveEmitterX, 1855, 35, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_MoveEmitterX, FontID(#Font_Window_1_0))
TextGadget(#Text_MoveEmitterY, 1855, 60, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_MoveEmitterY, FontID(#Font_Window_1_0))
TextGadget(#Text_MoveEmitterZ, 1855, 85, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_MoveEmitterZ, FontID(#Font_Window_1_0))
TextGadget(#Text_8, 1205, 35, 25, 20, "X", #PB_Text_Center)
SetGadgetFont(#Text_8, FontID(#Font_Window_1_0))
TextGadget(#Text_19, 1705, 150, 190, 20, "Emitter Angle", #PB_Text_Center)
SetGadgetFont(#Text_19, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_EmitterAngle, 1705, 175, 150, 20, 0, 359, 0)
TextGadget(#Text_EmitterAngle, 1855, 175, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_EmitterAngle, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_AccelerationY, 985, 60, 150, 20, -100, 100, 0)
ScrollBarGadget(#Slider_AccelerationZ, 985, 85, 150, 20, -100, 100, 0)
TextGadget(#Text_AccelerationY, 1135, 60, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_AccelerationY, FontID(#Font_Window_1_0))
TextGadget(#Text_AccelerationZ, 1135, 85, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_AccelerationZ, FontID(#Font_Window_1_0))
TextGadget(#Text_20, 955, 35, 25, 20, "X", #PB_Text_Center)
SetGadgetFont(#Text_20, FontID(#Font_Window_1_0))
TextGadget(#Text_21, 955, 60, 25, 20, "Y", #PB_Text_Center)
SetGadgetFont(#Text_21, FontID(#Font_Window_1_0))
TextGadget(#Text_22, 955, 85, 25, 20, "Z", #PB_Text_Center)
SetGadgetFont(#Text_22, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_ColorStart, 735, 35, 150, 20, 0, 255, 0)
DisableGadget(#Slider_ColorStart, 1)
ScrollBarGadget(#Slider_ColorEnd, 735, 60, 150, 20, 0, 255, 0)
DisableGadget(#Slider_ColorEnd, 1)
TextGadget(#Text_23, 685, 10, 240, 20, "Color Range", #PB_Text_Center)
SetGadgetFont(#Text_23, FontID(#Font_Window_1_0))
TextGadget(#Text_ColorStart, 885, 35, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_ColorStart, FontID(#Font_Window_1_0))
TextGadget(#Text_ColorEnd, 885, 60, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_ColorEnd, FontID(#Font_Window_1_0))
TextGadget(#Text_24, 685, 90, 240, 20, "Color Fader", #PB_Text_Center)
SetGadgetFont(#Text_24, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_ColorFaderR, 735, 115, 150, 20, -100, 100, 0)
DisableGadget(#Slider_ColorFaderR, 1)
ScrollBarGadget(#Slider_ColorFaderG, 735, 140, 150, 20, -100, 100, 0)
DisableGadget(#Slider_ColorFaderG, 1)
ScrollBarGadget(#Slider_ColorFaderB, 735, 165, 150, 20, -255, 255, 0)
DisableGadget(#Slider_ColorFaderB, 1)
ScrollBarGadget(#Slider_ColorFaderAlpha, 735, 190, 150, 20, 0, 255, 0)
DisableGadget(#Slider_ColorFaderAlpha, 1)
TextGadget(#Text_ColorFaderR, 885, 115, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_ColorFaderR, FontID(#Font_Window_1_0))
TextGadget(#Text_ColorFaderG, 885, 140, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_ColorFaderG, FontID(#Font_Window_1_0))
TextGadget(#Text_ColorFaderB, 885, 165, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_ColorFaderB, FontID(#Font_Window_1_0))
TextGadget(#Text_ColorFaderAlpha, 885, 190, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_ColorFaderAlpha, FontID(#Font_Window_1_0))
TextGadget(#Text_26, 685, 35, 45, 20, "Start", #PB_Text_Center)
SetGadgetFont(#Text_26, FontID(#Font_Window_1_0))
TextGadget(#Text_27, 685, 60, 45, 20, "Ende", #PB_Text_Center)
SetGadgetFont(#Text_27, FontID(#Font_Window_1_0))
TextGadget(#Text_28, 685, 115, 45, 20, "R", #PB_Text_Center)
SetGadgetFont(#Text_28, FontID(#Font_Window_1_0))
TextGadget(#Text_29, 685, 140, 45, 20, "G", #PB_Text_Center)
SetGadgetFont(#Text_29, FontID(#Font_Window_1_0))
TextGadget(#Text_30, 685, 165, 45, 20, "B", #PB_Text_Center)
SetGadgetFont(#Text_30, FontID(#Font_Window_1_0))
TextGadget(#Text_31, 685, 190, 45, 20, "Alpha", #PB_Text_Center)
SetGadgetFont(#Text_31, FontID(#Font_Window_1_0))
ButtonGadget(#Button_Musik, 5, 5, 180, 30, "Lood de Musik ")
SetGadgetFont(#Button_Musik, FontID(#Font_Window_1_0))
ButtonGadget(#Button_Ende, 5, 180, 180, 35, "Ende ( Esc )")
SetGadgetFont(#Button_Ende, FontID(#Font_Window_1_0))
ButtonGadget(#Button_Start, 5, 40, 80, 30, "Start ")
SetGadgetFont(#Button_Start, FontID(#Font_Window_1_0))
ButtonGadget(#Button_Pause, 105, 40, 80, 30, "Pause", #PB_Button_Toggle)
SetGadgetFont(#Button_Pause, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_Signal, 5, 110, 140, 20, 1, 100, 0)
TextGadget(#Text_4_1, 435, 145, 220, 20, "Emission Emitter", #PB_Text_Center)
SetGadgetFont(#Text_4_1, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_EmissionEmitter, 435, 170, 155, 20, 1, 30, 0)
DisableGadget(#Slider_EmissionEmitter, 1)
TextGadget(#Text_EmissionEmitter, 590, 170, 65, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_EmissionEmitter, FontID(#Font_Window_1_0))
TextGadget(#Text_13_2, 1455, 130, 190, 20, "Speed Factor * 0.1", #PB_Text_Center)
SetGadgetFont(#Text_13_2, FontID(#Font_Window_1_0))
ButtonGadget(#Button_Prefs, 220, 180, 180, 35, "Preferents för all")
SetGadgetFont(#Button_Prefs, FontID(#Font_Window_1_0))
TextGadget(#Text_Signal, 145, 110, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_Signal, FontID(#Font_Window_1_0))
TextGadget(#Text__40, 5, 80, 180, 20, "Signal för all", #PB_Text_Center)
SetGadgetFont(#Text__40, FontID(#Font_Window_1_0))
TextGadget(#Text__50, 220, 10, 180, 20, "Ball VU", #PB_Text_Center)
SetGadgetFont(#Text__50, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_BallVU, 220, 35, 140, 20, 1, 200, 0)
TextGadget(#Text_BallVU, 360, 35, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_BallVU, FontID(#Font_Window_1_0))
TextGadget(#Text__51, 220, 65, 180, 20, "Speed Factor * 0.1 ", #PB_Text_Center)
SetGadgetFont(#Text__51, FontID(#Font_Window_1_0))
ScrollBarGadget(#Slider_Spray, 220, 110, 140, 20, -5, 40, 0)
TextGadget(#Text_Spray, 360, 110, 40, 20, "", #PB_Text_Center | #PB_Text_Border)
SetGadgetFont(#Text_Spray, FontID(#Font_Window_1_0))
TextGadget(#Text__52, 220, 85, 180, 20, "Spray rechts", #PB_Text_Center)
SetGadgetFont(#Text__52, FontID(#Font_Window_1_0))
TextGadget(#Text_40, 410, 10, 25, 215, "->", #PB_Text_Center)
SetGadgetColor(#Text_40, #PB_Gadget_FrontColor,RGB(0,255,0))
SetGadgetColor(#Text_40, #PB_Gadget_BackColor,RGB(0,255,0))
SetGadgetFont(#Text_40, FontID(#Font_Window_1_1))
TextGadget(#Song_Name, 5, 135, 395, 40, "", #PB_Text_Center)
SetGadgetColor(#Song_Name, #PB_Gadget_FrontColor,RGB(255,255,255))
SetGadgetColor(#Song_Name, #PB_Gadget_BackColor,RGB(0,0,255))
SetGadgetFont(#Song_Name, FontID(#Font_Window_1_0))
EndProcedure
;--------------FMod--------------------
Macro Musik
Song.s = OpenFileRequester("*","*", " Plaat op lääje (*.mp3, *.wav, *.mp2)|*.mp3;*.wav;*.mp2|*.*|*.*",0,0)
FMOD_System_CreateStream(fmodsystem, Ascii(Song) , #FMOD_CREATESTREAM, 0 , @sound)
FMOD_System_PlaySound(fmodsystem, 1, sound, 0, @Channel)
FMOD_Channel_SetVolume(Channel, 1)
GP.s = GetFilePart(Song, #PB_FileSystem_NoExtension)
SetGadgetText(#Song_Name,GP)
EndMacro
Macro NormalPartikelPrefs
Signal = 20
SetGadgetState(#Slider_Signal, Signal)
SetGadgetText(#Text_Signal ,""+Str(GetGadgetState(#Slider_Signal)))
Global BallVU = 120
SetGadgetState(#Slider_BallVU, BallVU)
SetGadgetText(#Text_BallVU ,""+Str(GetGadgetState(#Slider_BallVU)))
Global Spray = 30 ; SpeedFactor
SetGadgetState(#Slider_Spray, Spray)
SetGadgetText(#Text_Spray ,""+Str(GetGadgetState(#Slider_Spray)))
Global PartikelSizeX = 3
SetGadgetState(#Slider_PartikelSizeX, PartikelSizeX)
SetGadgetText(#Text_PartikelSizeX ,""+Str(GetGadgetState(#Slider_PartikelSizeX)))
Global PartikelSizeY = 3
SetGadgetState(#Slider_PartikelSizeY, PartikelSizeY)
SetGadgetText(#Text_PartikelSizeY ,""+Str(GetGadgetState(#Slider_PartikelSizeY)))
;--------------------------------------
Global EmissionPartikel = 8000
SetGadgetState(#Slider_EmissionPartikel, EmissionPartikel)
SetGadgetText(#Text_EmissionPartikel ,""+Str(GetGadgetState(#Slider_EmissionPartikel)))
Global EmissionEmitter = 0
SetGadgetState(#Slider_EmissionEmitter, EmissionEmitter)
SetGadgetText(#Text_EmissionEmitter ,""+Str(GetGadgetState(#Slider_EmissionEmitter)))
;--------------------------------------
Global ColorStart = 0
SetGadgetState(#Slider_ColorStart, ColorStart)
SetGadgetText(#Text_ColorStart ,""+Str(GetGadgetState(#Slider_ColorStart)))
Global ColorEnd = 0
SetGadgetState(#Slider_ColorEnd, ColorEnd)
SetGadgetText(#Text_ColorEnd ,""+Str(GetGadgetState(#Slider_ColorEnd)))
;--------------------------------------
Global ColorFaderR = -1
SetGadgetState(#Slider_ColorFaderR, ColorFaderR)
SetGadgetText(#Text_ColorFaderR ,""+Str(GetGadgetState(#Slider_ColorFaderR)))
Global ColorFaderG = -5
SetGadgetState(#Slider_ColorFaderG, ColorFaderG)
SetGadgetText(#Text_ColorFaderG ,""+Str(GetGadgetState(#Slider_ColorFaderG)))
Global ColorFaderB = -55
SetGadgetState(#Slider_ColorFaderB, ColorFaderB)
SetGadgetText(#Text_ColorFaderB ,""+Str(GetGadgetState(#Slider_ColorFaderB)))
Global ColorFaderAlpha = 255
SetGadgetState(#Slider_ColorFaderAlpha, ColorFaderAlpha)
SetGadgetText(#Text_ColorFaderAlpha ,""+Str(GetGadgetState(#Slider_ColorFaderAlpha)))
;--------------------------------------
Global AccelerationX = 0
SetGadgetState(#Slider_AccelerationX, AccelerationX)
SetGadgetText(#Text_AccelerationX ,""+Str(GetGadgetState(#Slider_AccelerationX)))
Global AccelerationY = -80
SetGadgetState(#Slider_AccelerationY, AccelerationY)
SetGadgetText(#Text_AccelerationY ,""+Str(GetGadgetState(#Slider_AccelerationY)))
Global AccelerationZ = 0
SetGadgetState(#Slider_AccelerationZ, AccelerationZ)
SetGadgetText(#Text_AccelerationZ ,""+Str(GetGadgetState(#Slider_AccelerationZ)))
;--------------------------------------
Global TimeMinimal = 10 ; * 0.1
SetGadgetState(#Slider_TimeMinimal, TimeMinimal)
SetGadgetText(#Text_TimeMinimal ,""+Str(GetGadgetState(#Slider_TimeMinimal)))
Global TimeMaximal = 15 ; * 0.1
SetGadgetState(#Slider_TimeMaximal, TimeMaximal)
SetGadgetText(#Text_TimeMaximal ,""+Str(GetGadgetState(#Slider_TimeMaximal)))
;--------------------------------------
Global EmitterDirectionX = 0
SetGadgetState(#Slider_EmitterDirectionX, EmitterDirectionX)
SetGadgetText(#Text_EmitterDirectionX ,""+Str(GetGadgetState(#Slider_EmitterDirectionX)))
Global EmitterDirectionY = 1
SetGadgetState(#Slider_EmitterDirectionY, EmitterDirectionY)
SetGadgetText(#Text_EmitterDirectionY ,""+Str(GetGadgetState(#Slider_EmitterDirectionY)))
Global EmitterDirectionZ = 0
SetGadgetState(#Slider_EmitterDirectionZ, EmitterDirectionZ)
SetGadgetText(#Text_EmitterDirectionZ ,""+Str(GetGadgetState(#Slider_EmitterDirectionZ)))
;--------------------------------------
Global VeloMinimum = 2
SetGadgetState(#Slider_VeloMinimum, VeloMinimum)
SetGadgetText(#Text_VeloMinimum ,""+Str(GetGadgetState(#Slider_VeloMinimum)))
Global VeloMaximum = 500
SetGadgetState(#Slider_VeloMaximum, VeloMaximum)
SetGadgetText(#Text_VeloMaximum ,""+Str(GetGadgetState(#Slider_VeloMaximum)))
;--------------------------------------
Global SpeedFactor = 5
SetGadgetState(#Slider_SpeedFactor,SpeedFactor)
SetGadgetText(#Text_SpeedFactor ,""+Str(GetGadgetState(#Slider_SpeedFactor)))
;--------------------------------------
Global MoveEmitterX = 0
SetGadgetState(#Slider_MoveEmitterX,MoveEmitterX)
SetGadgetText(#Text_MoveEmitterX ,""+Str(GetGadgetState(#Slider_MoveEmitterX)))
Global MoveEmitterY = 0
SetGadgetState(#Slider_MoveEmitterY,MoveEmitterY)
SetGadgetText(#Text_MoveEmitterY ,""+Str(GetGadgetState(#Slider_MoveEmitterY)))
Global MoveEmitterZ = 0
SetGadgetState(#Slider_MoveEmitterZ,MoveEmitterZ)
SetGadgetText(#Text_MoveEmitterZ ,""+Str(GetGadgetState(#Slider_MoveEmitterZ)))
;--------------------------------------
Global EmitterAngle = 10
SetGadgetState(#Slider_EmitterAngle,EmitterAngle)
SetGadgetText(#Text_EmitterAngle ,""+Str(GetGadgetState(#Slider_EmitterAngle)))
EndMacro
InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
IncludeFile "fmodex.pbi"
;IncludeFile "Window-Normal.pbf"
Global q
Global fmodsystem.i, Channel.i, Sound.i
;------------------
;FMOD EX Preferents
P = 1 ; Pause
Global Signal = 20 ; Signalstärke ( no Volume )
;------------------
;FMOD EX
Declare Anim()
Global Dim Array.f(1024)
FMOD_System_Create(@fmodsystem)
FMOD_System_Init(fmodsystem, 2, #FMOD_INIT_NORMAL, 0)
;------------------
OpenWindow_1() ; 0, 0, 1920, 1080
;OpenWindow(1, 0, 0, 1920, 1080, "", #PB_Window_SystemMenu|#PB_Window_SizeGadget )
OpenWindowedScreen(WindowID(#Window_1), 0, 220, 1920, 880 )
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data" , #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures" , #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Models" , #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Scripts" , #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Particles" , #PB_3DArchive_FileSystem)
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Packs/desert.zip" , #PB_3DArchive_Zip)
Parse3DScripts()
SetWindowTheme_(GadgetID(#Button_Musik),@Null,@Null)
SetWindowTheme_(GadgetID(#Button_Start),@Null,@Null)
SetWindowTheme_(GadgetID(#Button_Pause),@Null,@Null)
SetWindowTheme_(GadgetID(#Slider_Signal),@Null,@Null)
SetWindowTheme_(GadgetID(#Button_Ende),@Null,@Null)
NormalPartikelPrefs:
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 0, 120, 300, #PB_Absolute)
CameraBackColor(0,$884444)
LoadTexture(0, "Dirt.jpg")
CreateMaterial(0, TextureID(0))
CreatePlane (0,2000,1000,1,1,32,32)
CreateEntity(0, MeshID(0), MaterialID(0),0,0,0)
LoadTexture(0, "smoke2.png")
CreateMaterial(0, TextureID(0))
DisableMaterialLighting(0, 1)
MaterialBlendingMode (0, #PB_Material_AlphaBlend)
LoadTexture(1, "flare.png")
CreateMaterial(1, TextureID(1))
DisableMaterialLighting(1, 1)
MaterialBlendingMode (1, #PB_Material_Add)
LoadTexture(2, "Spheremap.png")
CreateMaterial(2, TextureID(2))
DisableMaterialLighting(2, 1)
MaterialBlendingMode (2, #PB_Material_Add)
;MaterialBlendingMode (0, #PB_Material_AlphaBlend)
;MaterialBlendingMode (0, #PB_Material_Color)
;######################################
;-Springbrunnen Mitte, mit Slider
CreateParticleEmitter(1, 0, 0, 0, 0, 0, 0, 0)
ParticleMaterial (1, MaterialID(1))
ParticleSize (1, 2,2)
ParticleTimeToLive (1, 1, 2)
ParticleEmitterAngle(1,90)
ParticleEmissionRate(1, 8000)
;######################################
;-Spray links
CreateParticleEmitter(2, 0, 0, 0, 0, 0, 0, 0)
ParticleMaterial (2, MaterialID(0))
ParticleSize (2, 5,5)
ParticleTimeToLive (2, 1, 2.0)
ParticleEmitterAngle(2,10)
ParticleEmitterDirection(2, -1, 1, -1)
ParticleEmissionRate(2, 8000)
MoveParticleEmitter(2, -150, 0 , 0)
;######################################
;-Spray rechts
CreateParticleEmitter(3, 0, 0, 0, 0, 100, 0, -150)
ParticleMaterial (3, MaterialID(1))
ParticleSize (3, 2, 2)
ParticleScaleRate(3, 2)
ParticleEmitterDirection(3, 1, 1, -1)
ParticleTimeToLive (3, 1, 4)
ParticleEmitterAngle(3,5)
ParticleEmissionRate(3, 8000)
MoveParticleEmitter(3, 0,0,0)
;######################################
;-Ball links
CreateParticleEmitter(4, 0, 0, 0, 0, 0, 0, 0)
ParticleMaterial (4, MaterialID(2))
ParticleTimeToLive (4, 0.1, 0.1) ; wenn höher, Doppelbilder
MoveParticleEmitter(4, -50, 30, 160)
ParticleEmitterDirection(4, 0, 0, 0)
;######################################
;-Ball rechts
CreateParticleEmitter(5, 0, 0, 0, 0, 0, 0, 0)
ParticleMaterial (5, MaterialID(2))
ParticleTimeToLive (5, 0.1, 0.1)
MoveParticleEmitter(5, 50, 30, 160);
ParticleEmitterDirection(5, 0, 0, 0)
;######################################
;-Quirl
; CreateParticleEmitter(6, 0, 0, 0, 0, 0, 50, -250)
; ParticleMaterial (6, MaterialID(1))
; ParticleSize (6, 4, 4)
; ;ParticleScaleRate(6, 2)
; ParticleEmitterDirection(6, 1, 1, 1)
; ParticleTimeToLive (6, 0.1, 0.7)
; ParticleEmitterAngle(6, 0.1)
; ParticleEmissionRate(6, 5000)
; MoveParticleEmitter(6, 0,0,0)
;######################################
q = 1
CreateThread(@Anim(), 0)
While q
;--------------------------------------
Event = WindowEvent() ; WaitWindowEvent(1)
If Event
Select Event
Case #PB_Event_Gadget
Select EventGadget()
;
;-Start
Case #Button_Start
Signal = 20
FMOD_System_PlaySound(fmodsystem,1 , sound, 0, @Channel)
Case #Button_Pause
If P = 1
SetGadgetState(#Button_Pause,1)
FMOD_Channel_SetPaused(Channel, #True)
P = 0
Signal = 0
Else
SetGadgetState(#Button_Pause,0)
FMOD_Channel_SetPaused(Channel, #False)
P = 1
Signal = 20
EndIf
Case #Button_Musik
Musik:
Case #Button_Prefs
NormalPartikelPrefs:
Case #Button_Ende
FMOD_System_Release(fmodsystem)
End
;####################### Slider ########################
;{ Slider
Case #Slider_Signal
Signal = GetGadgetState(#Slider_Signal )
SetGadgetText(#Text_Signal ,""+Str(GetGadgetState(#Slider_Signal )))
Case #Slider_BallVU
BallVU = GetGadgetState(#Slider_BallVU )
SetGadgetText(#Text_BallVU ,""+Str(GetGadgetState(#Slider_BallVU )))
Case #Slider_Spray
Spray = GetGadgetState(#Slider_Spray )
SetGadgetText(#Text_Spray ,""+Str(GetGadgetState(#Slider_Spray )))
Case #Slider_PartikelSizeX
PartikelSizeX = GetGadgetState(#Slider_PartikelSizeX )
SetGadgetText(#Text_PartikelSizeX ,""+Str(GetGadgetState(#Slider_PartikelSizeX )))
Case #Slider_PartikelSizeY
PartikelSizeY = GetGadgetState(#Slider_PartikelSizeY )
SetGadgetText(#Text_PartikelSizeY ,""+Str(GetGadgetState(#Slider_PartikelSizeY )))
;--------------------------------------
Case #Slider_EmissionPartikel
EmissionPartikel = GetGadgetState(#Slider_EmissionPartikel )
SetGadgetText(#Text_EmissionPartikel ,""+Str(GetGadgetState(#Slider_EmissionPartikel )))
Case #Slider_EmissionEmitter
EmissionEmitter = GetGadgetState(#Slider_EmissionEmitter )
SetGadgetText(#Text_EmissionEmitter ,""+Str(GetGadgetState(#Slider_EmissionEmitter )))
;--------------------------------------
Case #Slider_ColorStart
ColorStart = GetGadgetState(#Slider_ColorStart )
SetGadgetText(#Text_ColorStart ,""+Str(GetGadgetState(#Slider_ColorStart )))
Case #Slider_ColorEnd
ColorEnd = GetGadgetState(#Slider_ColorEnd )
SetGadgetText(#Text_ColorEnd ,""+Str(GetGadgetState(#Slider_ColorEnd )))
;--------------------------------------
Case #Slider_ColorFaderR
ColorFaderR = GetGadgetState(#Slider_ColorFaderR )
SetGadgetText(#Text_ColorFaderR ,""+Str(GetGadgetState(#Slider_ColorFaderR )))
Case #Slider_ColorFaderG
ColorFaderG = GetGadgetState(#Slider_ColorFaderG )
SetGadgetText(#Text_ColorFaderG ,""+Str(GetGadgetState(#Slider_ColorFaderG )))
Case #Slider_ColorFaderB
ColorFaderB = GetGadgetState(#Slider_ColorFaderB )
SetGadgetText(#Text_ColorFaderB ,""+Str(GetGadgetState(#Slider_ColorFaderB )))
Case #Slider_ColorFaderAlpha
ColorFaderAlpha = GetGadgetState(#Slider_ColorFaderAlpha)
SetGadgetText(#Text_ColorFaderAlpha ,""+Str(GetGadgetState(#Slider_ColorFaderAlpha )))
;--------------------------------------
Case #Slider_AccelerationX
AccelerationX = GetGadgetState(#Slider_AccelerationX )
SetGadgetText(#Text_AccelerationX ,""+Str(GetGadgetState(#Slider_AccelerationX )))
Case #Slider_AccelerationY
AccelerationY = GetGadgetState(#Slider_AccelerationY )
SetGadgetText(#Text_AccelerationY ,""+Str(GetGadgetState(#Slider_AccelerationY )))
Case #Slider_AccelerationZ
AccelerationZ = GetGadgetState(#Slider_AccelerationZ )
SetGadgetText(#Text_AccelerationZ ,""+Str(GetGadgetState(#Slider_AccelerationZ )))
;--------------------------------------
Case #Slider_TimeMinimal
TimeMinimal = GetGadgetState(#Slider_TimeMinimal )
SetGadgetText(#Text_TimeMinimal ,""+Str(GetGadgetState(#Slider_TimeMinimal )))
Case #Slider_TimeMaximal
TimeMaximal = GetGadgetState(#Slider_TimeMaximal )
SetGadgetText(#Text_TimeMaximal ,""+Str(GetGadgetState(#Slider_TimeMaximal )))
;--------------------------------------
Case #Slider_EmitterDirectionX
EmitterDirectionX = GetGadgetState(#Slider_EmitterDirectionX )
SetGadgetText(#Text_EmitterDirectionX ,""+Str(GetGadgetState(#Slider_EmitterDirectionX )))
Case #Slider_EmitterDirectionY
EmitterDirectionY = GetGadgetState(#Slider_EmitterDirectionY )
SetGadgetText(#Text_EmitterDirectionY ,""+Str(GetGadgetState(#Slider_EmitterDirectionY )))
Case #Slider_EmitterDirectionZ
EmitterDirectionZ = GetGadgetState(#Slider_EmitterDirectionZ )
SetGadgetText(#Text_EmitterDirectionZ ,""+Str(GetGadgetState(#Slider_EmitterDirectionZ )))
;--------------------------------------
Case #Slider_VeloMinimum
VeloMinimum = GetGadgetState(#Slider_VeloMinimum )
SetGadgetText(#Text_VeloMinimum ,""+Str(GetGadgetState(#Slider_VeloMinimum )))
Case #Slider_VeloMaximum
VeloMaximum = GetGadgetState(#Slider_VeloMaximum )
SetGadgetText(#Text_VeloMaximum ,""+Str(GetGadgetState(#Slider_VeloMaximum )))
;--------------------------------------
Case #Slider_SpeedFactor
SpeedFactor = GetGadgetState(#Slider_SpeedFactor )
SetGadgetText(#Text_SpeedFactor ,""+Str(GetGadgetState(#Slider_SpeedFactor )))
;--------------------------------------
Case #Slider_EmitterAngle
EmitterAngle = GetGadgetState(#Slider_EmitterAngle )
SetGadgetText(#Text_EmitterAngle ,""+Str(GetGadgetState(#Slider_EmitterAngle )))
;--------------------------------------
Case #Slider_MoveEmitterX
MoveEmitterX = GetGadgetState(#Slider_MoveEmitterX )
SetGadgetText(#Text_MoveEmitterX ,""+Str(GetGadgetState(#Slider_MoveEmitterX )))
Case #Slider_MoveEmitterY
MoveEmitterY = GetGadgetState(#Slider_MoveEmitterY )
SetGadgetText(#Text_MoveEmitterY ,""+Str(GetGadgetState(#Slider_MoveEmitterY )))
Case #Slider_MoveEmitterZ
MoveEmitterZ = GetGadgetState(#Slider_MoveEmitterZ )
SetGadgetText(#Text_MoveEmitterZ ,""+Str(GetGadgetState(#Slider_MoveEmitterZ )))
;}
;-----------------------------------------------------------------------------------------
EndSelect : Default :EndSelect : Else : Delay(1) : EndIf
ExamineKeyboard()
;-Musik
If KeyboardPushed(#PB_Key_M)
Musik:
EndIf
;-Ende
If KeyboardPushed(#PB_Key_Escape) Or Quit = 1
FMOD_System_Release(fmodsystem)
End
EndIf
;######################################################################################
Wend
Procedure Anim()
While q
;--------------------------------FMOD EX---------------------------------
;-Frequents aus Froggerproggers Spectrum-Demo: CodeArchiv\Music+Movie\FMod\SpectrumAnalyzer
; FMOD_RESULT FMOD_Channel_GetSpectrum( FMOD_CHANNEL * channel,
; float * spectrumarray,
; int numvalues,
; int channeloffset,
; FMOD_DSP_FFT_WINDOW windowtype
FMOD_Channel_GetSpectrum(Channel, Array(), 1024, 0, 0 )
w = 150
Fr1.f = w - Pow(0.0000001 , Array(1 )) * w : S1 = Int(Fr1) * signal
Fr2.f = w - Pow(0.0000001 , Array(2 )) * w : S2 = Int(Fr2) * signal
Fr3.f = w - Pow(0.0000001 , Array(3 )) * w : S3 = Int(Fr3) * signal
Fr4.f = w - Pow(0.0000001 , Array(4 )) * w : S4 = Int(Fr4) * signal
Fr5.f = w - Pow(0.0000001 , Array(5 )) * w : S5 = Int(Fr5) * signal
Fr6.f = w - Pow(0.0000001 , Array(6 )) * w : S6 = Int(Fr6) * signal
;#######################################################################
;-Springbrunnen Mitte, mit Slider
ParticleSize(1, PartikelSizeX , PartikelSizeY )
ParticleEmissionRate(1, EmissionPartikel )
ParticleAcceleration(1, AccelerationX , AccelerationY , AccelerationZ )
ParticleTimeToLive(1, TimeMinimal * 0.1, TimeMaximal * 0.1)
ParticleEmitterDirection(1, EmitterDirectionX *0.001 , EmitterDirectionY *0.1 , EmitterDirectionZ * 0.001)
ParticleSpeedFactor(1, 0 + ( SpeedFactor * 0.1 ) )
MoveParticleEmitter(1, MoveEmitterX, MoveEmitterY, MoveEmitterZ, #PB_Absolute)
ParticleVelocity(1, VeloMinimum , VeloMaximum + ( s6 / 3 ) )
ParticleEmitterAngle(1, EmitterAngle)
;ParticleColorRange(1, ColorStart, ColorEnd )
;ParticleColorRange(1, 0, 255 )
;ParticleColorRange(1, RGB(ColorStartR, ColorStartG, ColorStartB), RGB(ColorEndR, ColorEndG, ColorEndB) )
;ParticleColorFader(1, ColorFaderR * 0.01 , ColorFaderG * 0.01 , ColorFaderB * 0.01, ColorFaderAlpha *0.01 )
ParticleColorFader(1, ColorFaderR , ColorFaderG , ColorFaderB , ColorFaderAlpha )
;######################################
;-Spray links
ParticleSize(2, 5, 5 )
ParticleEmissionRate(2, 8000 )
ParticleAcceleration(2, 0, -10 ,0 )
ParticleTimeToLive(2, 1, 1.5 )
ParticleEmitterDirection(2, -1 , 1, -1 )
ParticleSpeedFactor(2, 1 )
ParticleEmitterAngle(2, 10)
ParticleVelocity(2, 2, 30 + s5 / 3 )
;######################################
;-Spray rechts
Sig.f = 0.0002 * s4
wi.f + ( Sig )
ParticleEmitterDirection(3, 1, 1, 3 * Sin( wi ))
ParticleVelocity(3, 2, 200 )
ParticleSpeedFactor(3, (Spray * 0.1 ))
ParticleAcceleration(3, 0 , -1 , 0)
;######################################
;-Ball links
;VU-Meter
StV = BallVU ; je nach Bewegung der Grafik anpassen
H = 0 : Stepe3 = StV ;80
z3 = z3 + Stepe3 : If z3 > H : z3 - Stepe3 - s3 : EndIf
VU3.f = 0.02 * z3
H = 0 : Stepe4 = StV ;80
z4 = z4 + Stepe4 : If z4 > H : z4 - Stepe4 - s4 : EndIf
VU4.f = 0.02 * z4
ParticleVelocity(4, 1, 5 )
ParticleSize (4, 15 - VU3, 15 - VU4)
;######################################
;-Ball rechts
;VU-Meter
StV = BallVU
H = 0 : Stepe5 = StV ; 80
z5 = z5 + Stepe5 : If z5 > H : z5 - Stepe5 - s5 : EndIf
VU5 .f = 0.02 * z5
H = 0 : Stepe6 = StV ; 80
z6 = z6 + Stepe6 : If z6 > H : z6 - Stepe6 - s6 : EndIf
VU6.f = 0.02 * z6
ParticleVelocity(5, 1, 5 )
ParticleSize (5, 15 - VU5 , 15 - VU6)
;######################################
;-Quirl
; Qu.f + 0.1
; ParticleEmitterDirection(6, Sin( qu ), Cos( qu ), 1)
; ParticleVelocity(6, 2, 300 )
; ParticleSpeedFactor(6, ( 0.1 ))
; ParticleAcceleration(6, 0 , -1 , 0)
;--------------------------------------------------------------------------------------------------
CameraLookAt(0,0,0,0)
RenderWorld()
FlipBuffers()
Wend
EndProcedure