株式会社リサイクルループ

ブログ

回収依頼お問合わせ

株式会社リサイクルループ

回収依頼

MENU

【HSPプログラミング講座#4】表示する位置を変えてみよう

プログラミング講座アイキャッチ

前回のプログラムではボタンをクリックしたら、指定したプログラムの場所まで飛ばして文字を表示したり、画面に表示されている全ての情報をリセットするプログラムを作りました。しかしある問題が発生しましたね。文字の表示される位置や、ボタンの表示される位置が勝手に決められてしまう問題です。これを解決するためにワタクシは、またまたHSP言語の説明書を調べました。。。そーいえばワタクシの名前を決めていませんでした(^_^;) 株式会社リサイクルループという会社でセコセコ働いている中の人です。なので名前は「リサル」としておきましょう。。。(ダサい・・) とにかくプログラムを書いていきましょう!

HSP言語で位置を指定する命令

ワタクシ「リサル」が調査したところによると位置を指定する命令がありました。それは「pos」という命令でした。名前から想像すると「Position → ポジション → 位置」という事でしょう。ちなみに位置のことを座標と言ったりします。座標には縦と横があって、横はX座標、縦はY座標と言います。では早速、下記のプログラムを書いてみました。

HSPプログラミング_position00

このpos命令のあとに100と200の数値を書いていますが、それぞれX座標とY座標になります。でもX座標が100、Y座標が200の位置ってどの辺なんですかね? 何が基準になっているのでしょうか? まずはプログラムを実行して眺めてみましょう。

HSPプログラミング_position01

おおー!ここがX座標100、Y座標200の場所か! 全然わからん!! 感覚で覚えるしかないのか!? でもこの見た目の情報からわかることは、この結果が表示されているウインドウの左上がスタートの位置(X座標0、Y座標0)の位置なんでしょうね。 でも、またまた疑問が湧いてきました。画面の大きさを超えるくらい長い文字を表示したら、文字は途切れてしまうのでしょうか!? それとも下の段に折り返されて表示されるのでしょうか? やっぱり疑問が出たらテストしてみるのが大事ですからプログラムを付け足してみます。

HSPプログラミング_position02

早速、4行目に長い文字を表示するプログラムを追加しました。プログラムを書くこの画面(スクリプトエディタと言う)では、長い文字を入れると横にスクロールして、どんどん長く文字を打ち込めるようです。ちなみになんて書いてあるかというと、

mes “どこまーでも、どこまーでも、果てしない空~ 信じているかぎり、夢は終わらない~”

と書いてあります(笑) どこかの学校のCMで聞いたことがあるような。。 とりあえず実行して結果を見てみましょう!

HSPプログラミング_position03

ふむふむ。結果は「画面に収まらない文字は切れて表示されない」でした。とゆーことは、pos命令で座標を移動させた場合には、文字の長さも気にしないと途切れてしまいますね。それからもう1つの発見があります。4行目に追加したプログラムはpos命令をしていないのに、自動的に3行目の続きから表示されるように1段下がった位置から文字が表示されていますね。どうやらHSP言語では内部でposの座標位置を覚えていて自動的に次の段に表示されるようになっているみたいです。

またまた疑問が湧いてきましたが、posでまた同じ座標を指定して文字を表示した場合に、うまくキレイに文字を書き換えてくれるのでしょうか? それとも文字が重なり合ってぐちゃぐちゃになってしまうのでしょうか? それともう一つ、前回のプログラムで使ったbutton命令でボタンを表示したらどうなるのでしょうか? またプログラムを追加していきましょう!

HSPプログラミング_position04

追加したのは5行目から下です。5行目はボタンを表示して、押されたらジャンプするプログラムですね。もう覚えましたよね? 6行目はstopでプログラムは待機状態です。 ボタンを押したら8行目にジャンプして、9行目で先ほどと全く同じX座標100、Y座標100にしてかぶるようにしています。そして10行目でかぶる位置に文字を表示させています。さてどうなることでしょう。実行結果を想像してみてください。

HSPプログラミング_position05

なるほど。なるほど。そーなるんですね! まずボタンの位置は自動的に1段下がったところに表示してくれましたね。ボタンでも文字でもpos命令で指定した場所に表示してくれるようです。 次にボタンを押して、わざと文字がかぶるようにpos 100,200をしたところは、文字が重なってまったく読めない状態になりました。これは自動的に以前の文字を消去してくれたりしないのですね。自動的に座標は1段下に調整してくれるのに、文字は自動的に消してくれないということがわかりました。 覚えることが多いなー(汗)

でもワタクシ「リサル」は思いついてしまいました! 以前使ったcls命令とpos命令を使えば面白いことができそうだということに。次回はそれをやってみましょう。ウヒヒ。。