Dark Bit Factory & Gravity
PROGRAMMING => Purebasic => Topic started by: Omnikam on September 30, 2023
-
My new logo effects, i really love it. Inspired by by wolfgangs old-school demo, although All the code is new. Run the compiled or unrar and use the logo. Let me know what you think
Procedure.f GSin(winkel.f)
ProcedureReturn Sin(winkel * (2 * 3.14159265 / 360))
EndProcedure
UsePNGImageDecoder()
#ID_Sprite2 =2 ; ID Logo
#ID_Buffer2 =3 ; ID for logo temporary buffer
If InitSprite() = 0
MessageRequester("", "Sprite", 0):End:EndIf
If InitKeyboard() = 0
MessageRequester("", "Keyboard", 0):End:EndIf
If OpenScreen(800,600, 32, "Logo Wobble and Spin") = 0
MessageRequester("", "Screen", 0):End:EndIf
LoadSprite(#ID_Sprite2, "Omnikam.png", #PB_Sprite_AlphaBlending)
If InitSound() = 0
MessageRequester("Error", "Sound system not available.") : End
EndIf
If CatchMusic(0, ?Tune, ?TuneEnd-?Tune)
PlayMusic(0)
EndIf
Global angle.f: angle = 0.0
Global spinAngle.f: spinAngle = 0.0
Global startTime.q: startTime = ElapsedMilliseconds()
Global moveflag = 0
Repeat
angle + 2
elapsedTime.q = ElapsedMilliseconds() - startTime
help6.f = 0
CopySprite(#ID_Sprite2, #ID_Buffer2)
SH = SpriteHeight(#ID_Buffer2)
SW = SpriteWidth(#ID_Buffer2)
wobbleFrequency = 0.1
wobbleAmplitude = 20
If moveflag = 0 And elapsedTime < 8000
spinAngle = 0
EndIf
If elapsedTime > 14000 And moveflag = 0
spinAngle = spinAngle + 0.009
EndIf
If elapsedTime > 42880 And moveflag = 0
moveflag = 1
EndIf
If moveflag = 1 And elapsedTime > 43000
spinAngle = spinAngle - 0.009
Debug spinAngle
If spinAngle <= 0 And moveflag = 1
spinAngle = 0
elapsedTime = 0
startTime = ElapsedMilliseconds()
moveflag = 0
EndIf
EndIf
help6 = 0.0
For i = 0 To SW
spinAngle + 0
help6 + 0.9
ClipSprite(#ID_Buffer2, 0, i, SW, 2)
sideToSideEffect = GSin(angle + help6 *2)* 40
upAndDownEffect = Gsin(i + angle) * 20 + 100
wobbleEffect = GSin(angle * wobbleFrequency) * wobbleAmplitude
DisplayTransparentSprite(#ID_Buffer2, sideToSideEffect-200, -0 + i + upAndDownEffect + wobbleEffect - 200)
RotateSprite(#ID_Buffer2, spinAngle, #PB_Relative)
Next
Delay(10)
FlipBuffers()
ClearScreen(0)
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_All)
DataSection
Tune:
IncludeBinary "simpukka_chilli.xm" ; no need to convert it to DATA statments using bin2data, just include the file.
TuneEnd:
EndDataSection
-
Nice!... it reminds me of some very old TV broadcast effects seen on TV in the early '80s
I mean something like this https://youtu.be/0wxc3mKqKTk?feature=shared&t=102 (https://youtu.be/0wxc3mKqKTk?feature=shared&t=102)... your effect is quite close...
-
hehe, it starts off with a nice lil' sinewave... and then trips-out to a fullscreen spiral. trippy effect, nice one.
-
Nice effect. I had to run it a window second time as fullscreen had my eyes popping out. 😀
I had a play with the code and got some even stranger fx too.
-
Nice effect. I had to run it a window second time as fullscreen had my eyes popping out. 😀
I had a play with the code and got some even stranger fx too.
Feel free to share your modifications, id be interested in other effects based around it :cheers: :cheers:
-
Just a little modification to slow it down mid spin then slowly move it back.
Procedure.f GSin(winkel.f)
ProcedureReturn Sin(winkel * (2 * #PI / 360))
EndProcedure
UsePNGImageDecoder()
#ID_Sprite2 =2 ; ID Logo
#ID_Buffer2 =3 ; ID for logo temporary buffer
If InitSprite() = 0
MessageRequester("", "Sprite", 0):End:EndIf
If InitKeyboard() = 0
MessageRequester("", "Keyboard", 0):End:EndIf
OpenScreen(800,600,32,"")
LoadSprite(#ID_Sprite2, "Omnikam.png", #PB_Sprite_AlphaBlending)
If InitSound() = 0
MessageRequester("Error", "Sound system not available.") : End
EndIf
Global angle.f: angle = 0.0
Global spinAngle.f: spinAngle = 0.0
Global startTime.q: startTime = ElapsedMilliseconds()
Global moveflag = 0
Repeat
angle + 2
elapsedTime.q = ElapsedMilliseconds() - startTime
help6.f = 0
CopySprite(#ID_Sprite2, #ID_Buffer2)
SH = SpriteHeight(#ID_Buffer2)
SW = SpriteWidth(#ID_Buffer2)
wobbleFrequency = 0.1
wobbleAmplitude = 20
If moveflag = 0 And elapsedTime < 2000
spinAngle = 0
EndIf
If elapsedTime > 2000 And moveflag = 0
spinAngle = spinAngle + 0.009
EndIf
If elapsedTime > 4000 And moveflag = 0
moveflag = 1
EndIf
If moveflag = 1 And elapsedTime > 7500
spinAngle = spinAngle - 0.0009
If spinAngle <= 0 And moveflag = 1
spinAngle = 0
elapsedTime = 0
startTime = ElapsedMilliseconds()
moveflag = 0
EndIf
EndIf
help6 = 0.0
For i = 0 To SW
spinAngle + 0
help6 + 0.9
ClipSprite(#ID_Buffer2, 0, i, SW, 2)
sideToSideEffect = GSin(angle + help6 *2)* 40
upAndDownEffect = Gsin(i + angle) * 20 + 100
wobbleEffect = GSin(angle * wobbleFrequency) * wobbleAmplitude
DisplayTransparentSprite(#ID_Buffer2, sideToSideEffect-200, -0 + i + upAndDownEffect + wobbleEffect - 200)
RotateSprite(#ID_Buffer2, spinAngle, #PB_Relative)
Next
FlipBuffers()
ClearScreen(0)
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_All)