@ SDMono: sure you could create slider options for lightness, contrast, saturation etc. However we also have the getWindowBrightness() & setWindowBrightness() functions for getting & setting the global window brightness, which I believe is similar to shaderLightness(). However shaderContrast() is the more interesting one to adjust methinks.
@ Ke4: maybe I'll sort out a little tech demo or video of it at some point. On the scene I've been testing it on I had to zoom into the scene a little bit because the scene is the same size as the default game resolution which means that at default zoom value you end going past the edge of the available screen at times. Plus you have to use subtle values of 10 pixels or less otherwise it looks a bit mad. I've found that a random value between 5 seems to work quite well.
Here's a quick rundown of what I've done so far.
1. inside an at begin of scene action I added an execute a script action part to zoom into the scene a fraction. It's up to you if you want to ease into scene over a period of time or snap to new zoom level instantly...
shaderZoom(1.01, 0, easeLinearIn) -- instant zoom to .01x
2. I then created 2 values which I use to set random delay values between 3 & 5 seconds. I called them:
dc_delay_x &
dc_delay_y.
3. I created 2 called by other actions in which I added...
if current character is on x scene
execute a script... local pos = game:getPoint(VGameScrollPosition)
local delay = math.random(3000, 5000)
getObject("Game.GameCurrentScene.SceneValues[dc_delay_x]"):setValue(VValueInt, delay)
if shader_offsetx <= pos.x then
shaderPan( pos.x + math.random(5), delay, easeBackIn, false)
else
shaderPan( pos.x - math.random(5), delay, easeBackOut, false)
end
pause for "dc_delay_x"
jump to action part #1
end ifSame again but with some name changes in the script & the pause value being linked to dc_delay_y instead of dc_delay_x.
What this script is doing is generating a random delay time between 3 & 5s for x & then a different delay value for y which makes the movement more dynamic. It is of course entirely possible to set a random easing option too, which I tested out yesterday by adding multiple easing options into a table & then randomly grabbing one from the table based on index number.
quick example of grabbing random easing option...
local t = {easeLinearIn, easeLinearOut, easeCircIn, easeCircOut, easeCircInOut}
local rand = math.random( 1, table.maxn(t) )
shaderPan( 300, 3000, t[rand], false ) -- pan to 300 on x-axis over 3s with random easing option
...something for you to get started.