今作ってるゲームの中で
「キーボードから数値を入力する」
という部分を作りたかったんですよ。
というわけで、いろいろ頑張った話です。
と言ってもそんなに頑張ってはないんですけど。
実際のところ、電卓形式で数値を入力させるなら、
1.キーボード入力待ち
2.キーボード入力を確認
3.現在の入力中の値を10倍
4.キーボードの入力値を加算
これに上限の処理を付けるだけじゃないですか。
実際はこれにバックスペースの機能を付加してみたんですが
これも入力中の値を10で割って小数点以下切捨てするだけじゃないですか。
これまた大した苦労じゃないんですね。
ただ、今回小数点を入れたかったんですよ。
この場合一つの方法としては
現在の小数点以下でのカーソル位置を記憶する
そしてキーボードから値が入力された時は10^nで入力値を割り
入力中の値に加算する
という感じでしょうか。
これだと、小数点以下の値の入力中として処理する内容は
小数点以下でのカーソル位置をずらす
キーボードからの入力値を10^nで割る
となります。
でも、今回私はその部分の処理を書くのがめんどくさかったので
小数点以下でのカーソル位置を記憶する
そしてキーボードからの値の入力は通常と同じように行い、
値を表示するタイミングで、10^nで入力中の値を割る
というようにしてみました。
こうすることで、小数点以下の値の入力中である場合の例外部分は
小数点以下でのカーソル位置をずらす
だけになるんです!
なんだかんだで正しい結果は得られましたし
私としてはちょっと意外なくらいでした。
たまに私って自分で作ったプログラムに驚かされていますww
0 件のコメント:
コメントを投稿