忍者ブログ
暇人おやじの暇なつぶやき
[5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

さてあらかじめ入力枠に値を入れる為の変数を用意する
InputValue = ""
そしてボタンが押されたら、この変数に対して
押されたボタンの値を付加する

InputValue += buttonNo
このコードを表示する直前に書けばOKでR

ここでのポイントはあらかじめ変数を用意することでR
HSPは変数を準備しておかない場合には自動でその型を用意する

例えば「InputValue = ""」をコメントにして実行してみよう

するとボタンを押した際の表示が数字を足された結果になる
1と2を押すと、本来なら「12」と表示するところが「3」になる

これはHSP内部で数値型として変数を準備してしまい、その結果
数値型の演算(足し算)を行うからだ
今回は演算する変数「buttonNo」に数値が入る為、結果も数値型と判断された

これを回避するためにあらかじめ文字型として用意する必要がある

#const Wind_main 0
#const gyo1X 10
#const gyo2X 80
#const gyo3X 150
#const hoseiY 20
#const gyo0Y 0
#const gyo1Y 10+hoseiY
#const gyo2Y 35+hoseiY
#const gyo3Y 60+hoseiY
#const gyo4Y 85+hoseiY
InputValue = ""

 screen Wind_main,300,200
 pos gyo1X,gyo3Y
 button "1" ,*_1
 pos gyo2X,gyo3Y
 button "2" ,*_2
pos gyo1X,gyo0Y   // 表示枠
 sdim siki,200
 input siki,200
 inputNo = Stat

 stop
 
*_1
buttonNo=1
goto *_hyoji

*_2
buttonNo=2
goto *_hyoji

*_hyoji
InputValue += buttonNo
 objprm inputNo,InputValue
stop

PR

「2.表示の際、数値エリアに既に数字があれば、その数値を入力した数値の前部分に足す」

前回まではボタンを押して、そのボタンに書かれている数値を表示エリアに表示した
ボタンを2つしか使用しなかったが、これを10個(0~9までを)付ければOKでR

それぞれ同じ処理なので、他のボタンの処理を付け加える前に次の機能を作成しよう

表示エリアにある数値を取得したいのだが、残念なことにobjprmでは取得はできない
ではどうするか?
他の言語であればinputボックスなどのオブジェクトから文字列を取得することは意外と
簡単なのだが、hspではその機能がない

そこであらかじめ変数を用意し、各ボタンを押された際には変数にも数値を入れて置く

これで現在の表示部分にある「値」が取得できることになる


久しぶりに朝のモーニングを食べようと思ったのだが、看板の値段の文字にギクっとして
通り過ぎた

モーニング 410円

今までは390円だったので400円でお釣りがきていたのだが、それを越えてしまうのには
抵抗が有る

昼もそうだ
近所のゆでたろうでもりそば220円が260円になっている

40円はちと痛い


ガソリンの値段が下がったということで喜んでばかりも居られない
世間は住み辛い

庶民は食事もせずに働けということか

ところで某所に今年のボーナス予想がでていたが
民間は下がるらしい

公務員はというと、昨年の民間との格差を埋めようということで上がった給与分
ボーナスも上がるということだ

どこから財源があるのか不明だが
福田総理はメールマガジンで財源のお願いをする一方、ODAで巨額を拠出するらしい

何かが狂っているとしか思えない
春である

先週一週間はログインできないでいた

ふと今日ログインしようとしたところ、自動でログインできない
パスワードが違うらしい

さて、どうしたものか
パスワード再発行の画面にたどり着くも
「秘密の質問」と答えがわからん

こりゃ新しくID取り直しかぁと思い
新規画面とにらめっこ
パスワードには「_」やら、「-」やらが必須らしい
普段そんなもの付けてないので、ここで思いついた

どうにか入れたのでR ^^;;

これで開発が続けられるよママン

結論からいうと、ボタンを増やして処理もその分増やす
しかし、処理の内容を考えると、数値ボタンを押した際のプログラムの動きは
実はほとんどが同じでR
数値が0~9という違いだけで、その後の処理

1.数値ボタンを押したら、表示エリアに数値を表示
2.表示の際、数値エリアに既に数字があれば、その数値を入力した数値の前部分に足す

これら2つの処理はどのボタンでも行うものなのです
ということは、0~9までの数値を変数に保持しておけば、1の処理も2の処理も
その変数を利用することで一つの処理として記載できます

前回のサブルーチンは、仕様1の表示エリアに数値を表示している部分ですが
*_1
 objprm inputNo,1
 stop
*_2
 objprm inputNo,2
 stop

objprmの第二パラメータだけ違うだけです
でこの処理を再度サブルーチンにしてしまいます
*_1
buttonNo=1
goto *_hyoji

*_2
buttonNo=2
goto *_hyoji

*_hyoji
 objprm inputNo,buttonNo
stop

一見するとプログラムが長くなってしましましたが、実はこの方が後々
ボタンが増えた際などに楽になってきます

■電卓の初歩の機能

1.数値ボタンを押したら、表示エリアに数値を表示
2.表示の際、数値エリアに既に数字があれば、その数値を入力した数値の前部分に足す

1についてどうやら「objprm」命令で出来そうなことがわかった
ではどのようにするか?
ボタン一つ一つに処理を割り振ってみよう?
そこで、ボタン1とボタン2を表示させてみる
3/12のソースプログラムからボタン1と2だけにするために、他の部分はコメントにする
ボタン1の処理を*_1、ボタン2の処理を*_2にして追加する
inputオブジェクトのオブジェクトIDを変数に取得してそれぞれの処理で表示させる

これのプログラムが次だ(コメント部分は除いた)

#const Wind_main 0
#const gyo1X 10
#const gyo2X 80
#const gyo3X 150
#const hoseiY 20
#const gyo0Y 0
#const gyo1Y 10+hoseiY
#const gyo2Y 35+hoseiY
#const gyo3Y 60+hoseiY
#const gyo4Y 85+hoseiY

 screen Wind_main,300,200
 pos gyo1X,gyo3Y
 button "1" ,*_1
 pos gyo2X,gyo3Y
 button "2" ,*_2
pos gyo1X,gyo0Y   // 表示枠
 sdim siki,200
 input siki,200
 inputNo = Stat

 stop
 
*_1
 objprm inputNo,1
 stop

*_2
 objprm inputNo,2
 stop

さて、このままボタンを増やしてよいものか???

LGPが久しぶりにバージョンアップしていた
新しい命令も装備している

ソレと同時にサンプルプログラムが2つほどUPされていた
その一つが今回の新しい命令を使用してのサンプルで
フィールドをクマさんが歩き回るものだ

カメラが追いかけるので、3Dゲームの基礎が盛り込まれている

プログラム自体も非常に小さいので、是非試して欲しい

動く際の値を多くすると早く動くので、低スペックのマシンでもそれなりに楽しめ
仕組みがわかるはずでR

LGP
http://www.jppass.com/lgp/


忍者ブログ [PR]
カレンダー
08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
フリーエリア
最新CM
最新TB
プロフィール
HN:
忍者 シオ才
性別:
非公開
バーコード
ブログ内検索