Okay, this isn't tested + I'm writing this up while half-incoherent with sleep, but here's something that _might_ work to display letters one at a time:
Edit: Okay, it works now.
Assuming Axe 1.0.5 for function coolness.
.TEST
. Use 'Fix 5' to draw all text to the buffer.
Fix 5
.Text you want to display:
"HELLO WORLD"->Str1
.Display the text
SLTXT(10,10,8,1000,Str1)
.Wait until you press [CLEAR] to quit.
Repeat getKey(15)
DispGraph
End
. End program
Fix 4
Return
.Function:
.r1 = X coordinate
.r2 = Y coordinate
.r3 = Distance between letters
.r4 = Delay between each letter
.r5 = Pointer to string
Lbl SLTXT
0->r6
While {r5+r6}
.X1T is from the parametric variable section.
.I just needed another variable -- you could have done
.r5+r6->A
.and used A instead if you needed to.
r5+r6->X1T
.'o^^' is the degrees symbol
Text(r6*r3+r5,r2,o^^X1T)
Pause r4
r6+1->r6
End
Return
.Basically:
.While the character isn't [00] (null byte),
.keep going and display the character.
What kind of menu? There are so many...
Here's basically pseudocode for what I would do for a basic menu:
.TEST
Fix 5
Draw basic stuff
Write all the text
Draw a sprite next to the first item
Repeat until I press [2nd] or [Enter]
If getkey up or down
erase the sprite
If getkey up
Subtract 1 from the sprite's Y value
End
If getkey down
Add 1 to the sprite's Y value
End
Draw the sprite (multiply the Y value by whatever and add an offset)
DispGraph
End
End
The sprite's Y coordinate is the menu item number
If Y=0
.Do something
ElseIf Y=1
.Do something
ElseIf (etc....)
.Blah
End
(Either wrap the entire menu in a loop, or add a Goto here.)