(3)戻り値がないアプリを作る
では、次はお絵かきソフトを作ってみましょう。
といっても、タッチした座標に点を打つだけという最もシンプルなお絵かきソフトです。
アプリ名はOEKAKIにしてみます。
COMMON DEF OEKAKI()
VAR TT,TX,TY
XSCREEN 2
DISPLAY 1
GCLS
WHILE 1
VSYNC
TOUCH OUT TT,TX,TY
IF TT THEN GPSET TX,TY
WEND
RETUEN 0
END
OEKAKI()で起動させるとこのアプリには大きな問題があることに気づくと思います。
それはメインループが無限ループであるためずっとシステム画面には戻らないということです。
したがって、特定の操作を行うことで終了をさせるという処理が必要になります。
簡易関数電卓QSPではYボタンを終了ボタンとして使うことを推奨しています。(A、B、Xボタンはシステム側で意味を持たせているため終了ボタンとしては使わないことを推奨)
COMMON DEF OEKAKI()
VAR TT,TX,TY
XSCREEN 2
DISPLAY 1
GCLS
WHILE BUTTON()!=#Y
VSYNC
TOUCH OUT TT,TX,TY
IF TT THEN GPSET TX,TY
WEND
XSCREEN 0
DISPLAY 0
RETUEN 0
END
これで、Yボタンでシステムに戻るようになったものの関数自体の戻り値が0であるため戻るたびにOEKAKI()のあとに「=0」というシステムによる表示が行われるのは気になるかもしれません。
実はこれは表示しないようにすることが可能なのです。
それはシステム変数Lを使いL=0とするだけです。
COMMON DEF OEKAKI()
VAR TT,TX,TY
XSCREEN 2
DISPLAY 1
GCLS
WHILE BUTTON()!=#Y
VSYNC
TOUCH OUT TT,TX,TY
IF TT THEN GPSET TX,TY
WEND
XSCREEN 0
DISPLAY 0
L=0
RETUEN 0
END
これで、システムに戻るたびに「=0」が表示されることは無くなりました。
ドットだけではなく線も引けるようにしたいとか、色を変えられるようにしたいとか、システムに戻るたびに画面が初期化されないようにしたいとか、様々な改善点が思いつくと思いますが、基本的な動作さえできていれば改善を行うのは容易にできるので各自で行ってみるとよいです。
後述のシステム変数を活用すると簡単に判定を行えるようになります。