【HSPプログラミング講座#17】画面の重なり(レイヤー)についてテストする
タイトルとURLをコピーしました
HSP言語プログラミングを勉強しながら、今まで様々なプログラムを書いてみました。 みなさんも色々なプログラムを書いて実行してみたと思いますが、イマイチよくわからないことが発生しませんでしたか? わからないまま進んでいくと気持ちがスッキリしないですよね!? 今回は画面の重なり方について調べてみたいと思います。
画面の重なり具合について調べる
まずは一番最初に気になってことは「 button命令 」で表示されるあのボタンです。 今までやってきたプログラムの中には、繰り返し処理などで「 cls命令 」を使うとボタンも消えてしまうので、もう一度、表示させる場所を「 pos命令 」で指示してから「 button命令 」で書き直しをしていました。
でも「 boxf命令 」で画面を塗りつぶしたとき、ボタンが消えなかったんです! まずは下記のプログラムを実行してみてください。
ボタンを2つ用意しました。 1つは「 cls命令 」の処理にジャンプさせます。 もう1つは「 boxf命令 」の処理にジャンプさせます。 実行してみると、やっぱり「 cls命令 」はボタンも消えてしまいます。 そして「boxf命令 」のほうはどうかというと、
赤く塗りつぶされた画面の上にボタンがある
実行結果が下記の画面です。
不思議じゃないですか? 今までプログラミングをしてきた感覚からすると、あとからプログラムを実行したほうが画面を上書きする感じでしたよね? ボタンを表示したあとで、画面全体を赤で塗りつぶしたはずなのに、ボタンが上書きされていないんです。。。
おそらくですが、ボタンに関しては文字や画像よりも上の階層(レイヤー)に描かれているため、塗りつぶしの命令に対して影響しなかったのでしょう。
プログラミングって実行してみないとわからないことが多いので、とにかくたくさんプログラムを書いて、実行して、テストを繰り返すしか無いですね。 説明書を読んでも「ボタンはboxf命令でも消えないですよ~」なんて書いてないですからね。
それから画面の重なりとは関係ないですけど「 cls命令 」でボタンが消えましたけど、これは「見えなくなったわけじゃなく、ボタンの機能そのものが消滅」していますからね。 「見えなくなっただけで、ボタンはあるんじゃないの?」とか思ってた人は、もっとテストプログラムを書いて実験してくださいね。