Could someone make cart that shows some basic transition effects (crossfade, swipe left/up/down, fade to black, etc) for those who want to have those but don't have skills to code it?
crossfade is going to be pretty tricky, because you'll have to store the whole screen in lua variables and have blends between all 16 colors (16x16xblend_levels array, plus 1920 variables minimum for screen data). I did fade to black and white like this:
_shex={["0"]=0,["1"]=1, ["2"]=2,["3"]=3,["4"]=4,["5"]=5, ["6"]=6,["7"]=7,["8"]=8,["9"]=9, ["a"]=10,["b"]=11,["c"]=12, ["d"]=13,["e"]=14,["f"]=15} _pl={[0]="00000015d67", [1]="0000015d677", [2]="0000024ef77", [3]="000013b7777", [4]="0000249a777", [5]="000015d6777", [6]="0015d677777", [7]="015d6777777", [8]="000028ef777", [9]="000249a7777", [10]="00249a77777", [11]="00013b77777", [12]="00013c77777", [13]="00015d67777", [14]="00024ef7777", [15]="0024ef77777"} _pi=0-- -100=>100, remaps spal _pe=0-- end pi val of pal fade _pf=0-- frames of fade left function fade(from,to,f) _pi=from _pe=to _pf=f end |
and in _update at the bottom:
if(_pf>0) then --pal fade if(_pf==1) then _pi=_pe else _pi+=((_pe-_pi)/_pf) end _pf-=1 end |
and in _draw at the bottom:
local pix=6+flr(_pi/20+0.5) if(pix!=6) then for x=0,15 do pal(x,_shex[sub(_pl[x],pix,pix)],1) end else pal() end |
Then you just call fade(0,-100,8); (to fade from default colors to solid black in 8 frames), and transition when _pf==1
Swipe (which I think means the wipe effect where it moves to an edge?) would probably use memcpy on the screen memory with a big for loop. I think you can do it, but there might be lag on that.
[Please log in to post a comment]