Framework
Posted: Wed Feb 01, 2017 8:10 pm
I've created a module based framework system for SpiderBasic that is designed to handle all the loading and program processing for you, with a screen fading system between active modules.
An example of setting up a program would be :
And a module is :
The framework hasn't been extensively tested yet, but seems okay at the moment. It can be downloaded here : http://blurg.org/spiderbasic/Triority.zip
The Maths module is here : http://blurg.org/spiderbasic/sourcecode/Maths.sb and the resident file here : http://blurg.org/spiderbasic/sourcecode/resident.sb
An example of setting up a program would be :
Code: Select all
If Triority::OnInitialise("Hello",4)
If Triority::LoadData(#TYPE_SPRITE,"background","background2.png",#PB_Sprite_AlphaBlending,0)=#False Or
Triority::LoadData(#TYPE_SOUND,"music","killers.ogg",0,0)=#False
Debug "Unable to prepare loading of a file"
Else
Debug "File loading prepared"
EndIf
; Register a section
If Section::Add("title",titleModule::@OnInitialise(),titleModule::@OnStart(),titleModule::@OnLeave(),titleModule::@OnRender(),
titleModule::@OnProcess(),titleModule::@OnResolutionChange(),titleModule::@OnLoaded(),titleModule::@OnUnloaded(),
titleModule::@OnOnce(),titleModule::@OnFinish())=#False Or
Section::Add("title2",titleModule2::@OnInitialise(),titleModule2::@OnStart(),titleModule2::@OnLeave(),titleModule2::@OnRender(),
titleModule2::@OnProcess(),titleModule2::@OnResolutionChange(),titleModule2::@OnLoaded(),titleModule2::@OnUnloaded(),
titleModule2::@OnOnce(),titleModule2::@OnFinish())=#False
Debug "Error adding section"
Else
Debug "all okay!"
EndIf
If Triority::OnStart("")
Else
Debug("Cant start the first section")
EndIf
Else
Debug("Cant initialise Triority")
EndIf
Code: Select all
XIncludeFile "..\Triority\sprite.sb"
XIncludeFile "..\Triority\Sound.sb"
DeclareModule titleModule
Declare.b OnInitialise()
Declare.b OnStart()
Declare.b OnResolutionChange(sW.i,sH.i)
Declare.b OnLoad()
Declare.b OnUnload()
Declare.b OnRender()
Declare.b OnProcess(moveSpeed.f)
Declare.b OnOnce()
Declare.b OnLeave()
Declare.b OnLoaded()
Declare.b OnUnloaded()
Declare.b OnFinish()
EndDeclareModule
Module titleModule
IncludeFile "..\triority\colours.sb"
Global sprite.TriorityGlobalData::SPRITE
Procedure.b OnInitialise()
ProcedureReturn #True
EndProcedure
Procedure.b OnStart()
Sound::PlayMusic("music")
ProcedureReturn #True
EndProcedure
Procedure.b OnResolutionChange(sW.i,sH.i)
ProcedureReturn #True
EndProcedure
Procedure.b OnLoad()
ProcedureReturn #True
EndProcedure
Procedure.b OnUnload()
ProcedureReturn #True
EndProcedure
Procedure.b OnRender()
;Debug "rendering!"
;Sprite::Draw(@sprite,100,100,0,#HANDLE_MIDDLE,#HANDLE_MIDDLE,COLOUR_YELLOW,255)
ProcedureReturn #True
EndProcedure
Procedure.b OnProcess(moveSpeed.f)
If ExamineMouse()
If MouseButton(#PB_MouseButton_Left)
Section::ChangeSection("title2",#True)
EndIf
EndIf
ProcedureReturn #True
EndProcedure
Procedure.b OnOnce()
ProcedureReturn #True
EndProcedure
Procedure.b OnLeave()
ProcedureReturn #True
EndProcedure
Procedure.b OnLoaded()
If Sprite::Sprite(@sprite,"background",-1,-1)=#False Or Section::AddSprite(0,"test1","background",56,56)=#False
Debug "Error!"
Else
Debug "All okay!"
;Section::PositionItem(0,"test1",150,200)
EndIf
ProcedureReturn #True
EndProcedure
Procedure.b OnUnloaded()
ProcedureReturn #True
EndProcedure
Procedure.b OnFinish()
ProcedureReturn #True
EndProcedure
EndModule
The Maths module is here : http://blurg.org/spiderbasic/sourcecode/Maths.sb and the resident file here : http://blurg.org/spiderbasic/sourcecode/resident.sb