This wiki is out of date, use the continuation of this wiki instead

Textinput

From FenixWiki

(Difference between revisions)
Jump to: navigation, search

Revision as of 22:43, 6 August 2007


This isn't much of a tutorial, rather some example code, but anyway. This code shows that text input in Fenix is not hard at all: with just a little piece of code, much can be achieved.

Note that this is code for Fenix versions 0.93 and up. Should the code work for other versions as well, be so kind to note this here.

Example code

Program texts;

Declare Function String textinput();
End

Begin

    set_fps(60,0);

    say("You typed: '" + textinput() + "'");

    Repeat
        frame;
    Until(key(_esc));

End

Function String textinput()
Private
    String str;
    int t;
    int t2;
    byte last_ascii;
    int txtid;
Begin

    // show what you type in top left corner
    txtid = write_string(0,0,0,0,&str);

    // clean the string
    str = "";

    // get input from the user
    // pressing enter will end the loop
    Loop
        if(ascii!=0&&last_ascii==ascii) // check if a key is pressed and if the same key
                                        // was pressed last frame
            if(t==0||t>fps/4) // check if the key was just pressed or it has been pressed
                              // for 0.25 seconds
                if(t==0||t2>fps/30) // check if the key was just pressed or it has been pressed
                                    // for the last 0.03 seconds
                    t2=0;
                    switch(ascii) // handle input
                        case 8: //backspace
                            str = substr(str,0,len(str)-1);
                        end
                        case 13: //enter
                            break;
                        end
                        default: //addkey
                            str+=chr(ascii);
                        end
                    end
                end
                t2++;
            end
            t++;
        else
            t = t2 = 0; // reset
        end
        last_ascii = ascii;
        frame;
    End

    // delete the text used
    delete_text(txtid);

    // return the typed string
    return str;

End

Used in example: set_fps(), say(), write_string(), substr(), chr(), declare, function, switch, ascii, fps

You'll find a nice ASCII table here.

Personal tools