Initial commit
This commit is contained in:
128
Cinematic_Old.pbi
Normal file
128
Cinematic_Old.pbi
Normal file
@@ -0,0 +1,128 @@
|
||||
;- Cinematic
|
||||
Enumeration
|
||||
#CV_X
|
||||
#CV_Y
|
||||
#CV_Width
|
||||
#CV_Height
|
||||
#CV_Opacity
|
||||
#CV_Size
|
||||
#CV_End
|
||||
EndEnumeration
|
||||
|
||||
Structure CineValue
|
||||
Value.f
|
||||
Easing.l
|
||||
EndStructure
|
||||
|
||||
Structure CineStep
|
||||
Array CineValue.CineValue(#CV_End-1)
|
||||
Duration.l
|
||||
EndStructure
|
||||
|
||||
Structure Cinematic
|
||||
StartTime.q
|
||||
StepIndex.l
|
||||
Duration.l
|
||||
Array *TargetValue.Long(#CV_End-1)
|
||||
Loop.b
|
||||
List CineStep.CineStep()
|
||||
EndStructure
|
||||
|
||||
Global NewList Cinematic.Cinematic()
|
||||
|
||||
Procedure.i NewCinematic()
|
||||
Protected *c.Cinematic=AddElement(Cinematic())
|
||||
*c\StartTime=-1
|
||||
ProcedureReturn *c
|
||||
EndProcedure
|
||||
|
||||
Procedure StartCinematic(*C.Cinematic)
|
||||
*C\StartTime=ElapsedMilliseconds()
|
||||
Cinematic()\StepIndex=-1
|
||||
Cinematic()\Duration=-1
|
||||
EndProcedure
|
||||
|
||||
Procedure AddCinematicStep(*c.Cinematic,Duration.l)
|
||||
Protected *Step.CineStep=AddElement(*c\CineStep())
|
||||
*Step\Duration=Duration
|
||||
Protected n.l
|
||||
For n=0 To #CV_End-1
|
||||
*Step\CineValue(n)\Value=-1
|
||||
Next
|
||||
ProcedureReturn *Step
|
||||
EndProcedure
|
||||
|
||||
Procedure FreeCinematicStep(*c.Cinematic)
|
||||
ClearList(*c\CineStep())
|
||||
EndProcedure
|
||||
|
||||
Procedure AddCinematicValue(*c.Cinematic,ValueIndex.l,*Value)
|
||||
*c\TargetValue(ValueIndex)=*Value
|
||||
EndProcedure
|
||||
|
||||
Procedure AddCinematicStepValue(*Step.CineStep,ValueIndex.l,Value.f,Easing.l)
|
||||
*Step\CineValue(ValueIndex)\Value=Value
|
||||
*Step\CineValue(ValueIndex)\Easing=Easing
|
||||
EndProcedure
|
||||
|
||||
|
||||
Procedure RenderCinematics()
|
||||
Protected *Start.CineStep
|
||||
Protected *Target.CineStep
|
||||
Protected CurrentPos.CineStep
|
||||
Protected ElapsedTime.q
|
||||
Protected n.l
|
||||
ForEach Cinematic()
|
||||
If Cinematic()\StartTime<>-1
|
||||
|
||||
ElapsedTime=ElapsedMilliseconds()-Cinematic()\StartTime
|
||||
|
||||
If ElapsedTime>Cinematic()\Duration
|
||||
|
||||
Cinematic()\StepIndex=Cinematic()\StepIndex+1
|
||||
Cinematic()\StartTime=ElapsedMilliseconds()
|
||||
ElapsedTime=0
|
||||
EndIf
|
||||
If Cinematic()\StepIndex>=0 And Cinematic()\StepIndex<ListSize(Cinematic()\CineStep())-1
|
||||
SelectElement(Cinematic()\CineStep(),Cinematic()\StepIndex)
|
||||
*Start=Cinematic()\CineStep()
|
||||
Debug "*Start="+Str(*Start)
|
||||
SelectElement(Cinematic()\CineStep(),Cinematic()\StepIndex+1)
|
||||
*Target=Cinematic()\CineStep()
|
||||
Debug "*Target="+Str(*Target)
|
||||
Cinematic()\Duration=*Target\Duration
|
||||
For n=0 To #CV_End-1
|
||||
If Cinematic()\TargetValue(n)<>0 And Cinematic()\TargetValue(n)\l<>-1
|
||||
|
||||
Cinematic()\TargetValue(n)\l=GetEasingPosValue(*Start\CineValue(n)\Value, *Target\CineValue(n)\Value ,Cinematic()\StartTime, *Target\Duration, *Target\CineValue(n)\Easing)
|
||||
;Cinematic()\SpriteObj\Size=*Start\Size + ( ElapsedTime * ( *Target\Size - *Start\Size ) / *Target\Duration)
|
||||
If n= #CV_Height
|
||||
Debug Cinematic()\TargetValue(n)\l
|
||||
EndIf
|
||||
|
||||
EndIf
|
||||
|
||||
Next
|
||||
|
||||
|
||||
Else ; If End Cinematic
|
||||
SelectElement(Cinematic()\CineStep(),ListSize(Cinematic()\CineStep())-1)
|
||||
*Target=Cinematic()\CineStep()
|
||||
For n=0 To #CV_End-1
|
||||
If Cinematic()\TargetValue(n)<>0
|
||||
Cinematic()\TargetValue(n)\l=*Target\CineValue(n)\Value
|
||||
EndIf
|
||||
Next
|
||||
If Cinematic()\Loop=#True
|
||||
StartCinematic(Cinematic())
|
||||
EndIf
|
||||
EndIf
|
||||
|
||||
|
||||
EndIf
|
||||
Next
|
||||
EndProcedure
|
||||
; IDE Options = PureBasic 6.00 Beta 5 (Windows - x64)
|
||||
; CursorPosition = 100
|
||||
; Folding = --
|
||||
; EnableXP
|
Reference in New Issue
Block a user