OK, so I made a quick and dirty test of text cutting in AGK2. It still have a few bug in it, but I have to leave quickly, so here it is. I might fix it later, maybe even adding a scrolling effect like that old project of mine.
Regarding scissoring the entire view, I have not yet experimented with it. My old way of doing it would be to use sprite masking, but I have not delve enough in AGK2 to see if that is possible.
Maybe you can just copy the picture under the view, hollow the center, and put it at the top?
Anyway, hope it helps.
SetWindowTitle( "Testbed" )
SetWindowSize( 1024, 768, 0 )
SetWindowAllowResize( 1 ) // allow the user to resize the window
// set display properties
SetVirtualResolution( 1024, 768 ) // doesn't have to match the window
SetSyncRate( 30, 0 ) // 30fps instead of 60 to save battery
UseNewDefaultFonts( 1 ) // since version 2.0.22 we can use nicer default fonts
#option_explicit
#constant MAX_WIDTH = 150
#constant SAMPLE_TEXT = "This is a sample of a long line of text!"
cuttxt as integer
cuttxt2 as integer
cuttxtsz as float
cuttxtsz2 as float
otext as string
ctext as string
sz as string
sz2 as string
recutcount as integer
otext = SAMPLE_TEXT
cuttxt = CreateText(otext)
SetTextFont(cuttxt,0)
SetTextPosition(cuttxt, 300, 300)
SetTextSize(cuttxt, 30)
cuttxtsz = GetTextTotalWidth(cuttxt)
sz = Str(cuttxtsz)+", "+Str(GetTextTotalHeight(cuttxt))
if cuttxtsz > MAX_WIDTH
ctext = Left(otext, Round((MAX_WIDTH/cuttxtsz)*Len(otext)))
cuttxt2 = CreateText(ctext)
SetTextFont(cuttxt2,0)
SetTextPosition(cuttxt2, 300, 340)
SetTextSize(cuttxt2, 30)
cuttxtsz2 = GetTextTotalWidth(cuttxt2)
recutcount = 0
while (cuttxtsz2 > MAX_WIDTH)
ctext = Left(ctext, Len(ctext)-1)
SetTextString(cuttxt2, ctext+"...")
cuttxtsz2 = GetTextTotalWidth(cuttxt2)
recutcount = recutcount + 1
endwhile
sz2 = Str(cuttxtsz2)+", "+Str(GetTextTotalHeight(cuttxt2))
endif
do
Print( ScreenFPS() )
Print("Size before: "+sz)
Print("Size after: "+sz2)
Print("Number of recuts: "+Str(recutcount))
Sync()
loop