Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(4 edits)

Scene tracking & camera management script

Generally a games will contain many diffrent "scenes"  such as  "start screen" scene, cut scene,  gameplay scene, transition scene with score gain sumery ... Each scene will probably need different dynamic adjustment so we need a way to track which scene our current frame belongs to. The "scene" script below will help us with this task.

function Start()     
    scene = -1     
    sceneChanged = false     
end  
function Update()    
    _scene = 0  
end  
function UpdateS()     
    if _scene < shape.CData[7] then
        _scene = shape.CData[7]     
    end 
end  
function LateUpdate()     
    if scene ~= _scene then
         sceneChanged = true
         scene = _scene     
    else      
       sceneChanged = false     
    end 
end

For each scene determine a pattern which only appears on it and give it a "scene" tag and assign a scene id number to its CData0. That way the variable "scene" will alway refer to the current scene.

function Start()
     camRot = Camera.Rot
     oldRot, oldRot1 = {x=0, y = 0}, {x=-65,y = 0}
 end
function LateUpdate()
     if sceneChanged then
         Setting.TopDownCam = scene == 1
         if scene == 0 then
             camRot.x = oldRot.x
             camRot.y = oldRot.y
         else
             camRot.x = oldRot1.x
             camRot.y = oldRot1.y
         end
     else if scene == 0 then
             oldRot.x = camRot.x
             oldRot.y = camRot.y
         else
             oldRot1.x = camRot.x
             oldRot1.y = camRot.y
         end
     end
end 
function Save()
    PData[0] = oldRot.x
    PData[1] = oldRot.y
    PData[2] = Camera.Distance
    PData[3] = oldRot1.x
    PData[4] = oldRot1.y
 end  
function Load()
     oldRot.x = PData[0]
     oldRot.y = PData[1]
     Camera.Distance = PData[2]
     oldRot1.x = PData[3]
     oldRot1.y = PData[4]
end