Posted: 14th Oct 2011 4:56
Maybe I'm just missing something obvious, but is there a way to create a kind of viewport where something like the following occurs:

0
9
8
7
---
|6|
---
5
4
3
2
1
0

In this case, only the 6 would be visible. But one could scroll image file inside the box up or down to present a new number and a scrolling effect.

Thanks for any solutions!
Posted: 14th Oct 2011 11:34
Creating viewports is a different question but scrolling through numbers is very possible.

The best way to achieve what you want (I think) would be to have 10 sprites using images of the numbers.
1-check for input
2-if input increases the current number then set the size of the current number sprite smaller in 'Y' and move it down
3-if input decreases the current number then set the size of the current number sprite smaller in 'Y' and move it up
4-as the current sprite is getting smaller increase the size of the next sprite and move it into place...

That's how I'd do it.

EDIT: Attached is an example, here's the code:
+ Code Snippet
rem
rem AGK Application
rem

rem Landscape App
setVirtualResolution(640,480)

rem load media
global cNum as float
global tNum as integer
cNum = 5
tNum = 5
n=1
loadImage(1,"10.png")
createSprite(n,n)
setSpriteOffset(n,16,16)
setSpritePosition(n,320,240)
setSpriteSize(n,32,0)
for n=2 to 11
    loadImage(n,str(n-1)+".png")
    createSprite(n,n)
    setSpriteOffset(n,16,16)
    setSpritePosition(n,320,240)
    setSpriteSize(n,32,0)
next

rem A Baxslash Did It!
do
    up = getRawKeyPressed(38)
    down = getRawKeyPressed(40)
    
    tNum=tNum+up-down
    if tNum<1
        tNum=10
        cNum=11
    endif
    if tNum>11
        tNum=2
        cNum=1
    endif
    if cNum<>tNum
        diff# = (tNum - cNum)
        if abs(diff#)>0.01
            cNum = cNum + diff# * 0.1
        else
            cNum = tNum
        endif
    endif
    
    for num=1 to 11
        alpha# = 255 - (abs(cNum - num) * 255)
        if alpha#<0 then alpha#=0
        setSpriteColorAlpha(num,alpha#)
        size# = (alpha# / 255) * 32
        setSpriteSize(num,32,size#)
        posY# = 240 + (cNum - num) * 32
        if posY#>304 then posY#=304
        if posY#<240 then posY#=240
        setSpritePosition(num,320,posY#)
    next
    
    Sync()
loop