この記事はHSP公式サイトの入門編の実践をもとに記事を構築しています。
HSPはスクリプト言語だ。スクリプトを書くためのエディタを前回記事でインストールした。HSPスクリプトファイルの拡張子は.hspとなっているようだ。なぜHSP専用のエディタを使う必要があるのか現時点ではわからない。できれば使い慣れたAtomエディタを使いたいところだ。
もしかするとエディターはあとから変更することも可能なのかもしれないが、現時点ではこの点には触れないことにする。
スクリプトエディタの外観
この時点でどんな構文を書いてよいのかわからなかったので、おもむろにhtmlを書いてみた。とくに意味はない。当たり前だが使い慣れたエディタのショートカットは使えない。
ためしにファイルを保存してみる。拡張子はデフォルトで.hspになっていることが確認できる。そのためとくになにも拡張子を指定しなかった場合は.hspで保存されるということだ。
HSPでHello World的なもをやってみよう
どのプログラミング言語もそうだがhello worldと表示させるのがはじめの目標となる。しかしHSP公式では、画像の読み込みがはじめの目標となる。HSPは.hspファイルが自身がおかれているディレクトリを自動でさがすようになっている。hsp3ttl.jpgを作業ディレクトリにおいておく。
picload "hsp3ttl.jpg"
この構文を保存して実行すると、ウインドウが立ち上がって指定の画像が表示された。
HSPのコメントアウトは;///**/の3種類だ。また構文の最初にタブスペース分のインデントを持たせるのが慣習のようだ。確認したが一応タブスペースなしでも動作する。
画像を2枚連続で表示させるとどうなるのか
さきほどの画像と色違いの画像をもう一枚用意して、2枚読みこんでみるとどうなるのかをやってみる。
picload "hsp3ttl.jpg" picload "hsp3ttl_2.jpg"
結果としては、一瞬で処理されるので、見た目には一枚目の画像を表示されず2枚目の画像だけが表示される格好になる。
HSPの基本的な命令文
表示させてみよう
画面をクリアさせるには、cls、文字を表示させるにはmesを使う。下の構文を実行するとhello worldが表示される。文字列はダブルクォーテーションでかこう決まりのようだ。
cls 0 mes "hello world" //結果: hello world
stop, end, goto, button
stopendgotobuttonステートメントには以下の役割があるようだ。
命令 | パラメーター | 意味 |
---|---|---|
stop | なし | 実行を停止する |
end | なし | 実行を終了する |
goto | ラベル | 指定したラベルにジャンプする |
button | 文字列、ラベル | ボタンを表示、押された時に指定のラベルにジャンプ |
単語のはじめに*アスタリスクをつけることで、ラベルのようなものを表現することができる。gotoでラベルを指定すると。そこにジャンプする。
*hata1 cls goto *hata3 *hata2 mes"hello world" *hata3 mes "hello world by hata3" // 〇
次にbuttonを使ってみよう。buttonにはさきほどのラベルのようなものを引数としてもたせる必要がある。引数はカンマ区切でOKのようだ。
*hata1 cls mes "which button do you want?" button "push button1",*hata2 button "push button2",*hata3 stop *hata2 mes"pushed by button1" // button1をおせばこちら stop *hata3 end // button2をおせばこちら
buttonをおせば引数に指定したラベルにジャンプする。button1をおせば”pushed by button1″と表示される格好だ。ここでendとstopの違いはなにか?と疑問をもったかもしれない。stopは一時停止(待機状態)。endはhspが終了しウインドウが閉じる。
pos, color, execをつかってみよう
posはカレントポジションというものを変更できる。colorは色を変えることができる格好だ。興味深いのはposだ。posで座標を指定すると。mesで文字が表示される位置すら変わるのだ。
命令 | パラメーター | 意味 |
---|---|---|
pos | X座標とY座標 | 指定した座標をカレントポジションにする |
color | R<G,B輝度値 | テキストの色を指定する |
exec | 文字列 | 指定したプログラムを実行 |
このあたりでなにかhspの癖のある挙動みたいなものを感じた。自分でコードを書いて実行してみることをすすめる。
*hata1 pos 30,200 *hata2 button "OK",*hata3 button "hata4",*hata4 stop *hata3 mes "button OK" stop *hata4 color 255,0,0 mes "hello world"
表示位置や色が変わっているのが確認できる。地味ではあるが若干衝撃を受けた。
execは指定したプログラムを実行する。たとえばWindowsだとメモ帳が起動できる。buttonと組み合わせれば便利そうだ。
cls 0 pos 100, 50 button "メモ帳",*notepad button "終了",*endlabel stop *notepad exec "notepad" stop *endlabel //*endは使えない end
地味ではあるがたったこれだけの構文で、デスクトップアプリのようなものが作成できたことになる。ちょっと衝撃をうけている。
変数を使ってみよう
プログラミングで必ずでてくるのが変数だ。HSPの変数はどのようになっているのかみてみよう。四則演算は+–*/を使うことができる。余りに関してはちょっと特徴的で\円マークを使う(バックスラッシュかも)
x = 10 y = 20 mes x + y // 30 name = "hspさん" mes name + "の年齢は" + y + "歳です" // hspさんの・・・ mes y\x // 0 → 余りは%ではなく \ を使う x = 100 y = 200 pos x, y mes "hello world"
変数とはなんぞやというのはここでは解説しない。変数の使い方に関しては他のプログラム言語と大差ないようだ。
一行に複数の命令
HSPは構文が短いので1行に複数命令はよくつかいそうだ。複数命令を書くには:で区切ればよいようだ。
mes "he": mes "ll": mes "o"
条件分岐を使ってみよう
HSPの条件分岐はif文を使うようだ。公式の入門では比較演算子は=!><がかかれていたが他にもあるかもしれない。
x = 1 if(x > 0){ mes "xは0より大きい" }else{ mes "xは0もしくは0より小さい" } y = 1 if y > 0: mes "yは0より大きい" // 1行で書くことも可能
if文を1行でかっこを省略しても可能のようだ。コロンを使っている点に注目だ。
HSP公式の入門はここで終了
HSP公式の入門編はここで終わりだ。繰り返し処理や関数などには踏み込まない形だった。入門編を終えてHSPの基本的な部分は理解できたような気がする。構文は記号の羅列っぽく見えるが実際には非常に簡潔な構文であるという印象をうけた。あとは少ないコードでアプリっぽいのができるのが結構すごいと感じた。
今後HSPで簡単なシューティングゲームを作る予定だが、コードが読めないのが90%。ネット上の資料が古いのが10%くらいあり、挫折する可能性大。
コメント