Home -> HSP講座 -> 初級編 No.1

続・スクリプトを書こう!

では、さっそくスクリプトを書いてみましょう!
スクリプトエディタを起動して、準備完了!


はい、サンプル終わり。
えっ? 何も書いてないって?

ごめん、今日は気分が悪いんだ。

嘘です。

はいはい。そんなことはともかく、
上記のスクリプト (なにもなし) を実行してみてください。
実行は、メニューバーの「HSP」から、コンパイル+実行です。
F5キーで一発なので、それを使うと良いでしょう。

……

どうでしたか? 「Hot Soup Processor ver.3.2」という真っ白なウィンドウが出てきたと思います。
何も書いてないのに何故か?……仕様だからですね。HSPでは、自動的にこの真っ白なウィンドウが表示されます。
でも、何も書いてないので、それより多くのことは何もしませんけど。

このウィンドウは、クローズボタン(右上の赤い[×]ボタン) で閉じてください。

今のやつで、一瞬だけウィンドウが現れて、一瞬のうちに消えた人はいますか?
もしそうなら、あなたは HSP 2 を使用しています。
この講座は HSP3 向けに書かれていますので、HSP2 ではサンプルを実行したりできません。
HSP 3.2 に乗り換えるのをお勧めします。
※HSP2 と HSP3 の違いは後述。だいぶ違いますが。

話が逸れましたね。 ( 毎度のことですが )
今回は、本当にスクリプトを書こうと思います。

	title "プログラ広場"

さて、これをエディタに入力して、実行してみてください。( F5 キーでしたね )

今回もまた、味気ないウィンドウが出てきました。
しかし、何もなかった前回と比べ、こちらには title 命令があるので……
なんと、タイトルバーが "Hot Soup Processor ver.3.2" ではなく、
我らが (?) "プログラ広場" になっています。
流石は命令ですね。

このように、PCに対して何かをさせる単語を、命令と言います。
また、命令の後ろに続いているものをパラメータ(または、引数[ひきすう])と言います。


命令を書くときのお約束

です。
もちろん、[Tab] スペースも忘れずに。

これで、あなたも命令を使えるようになりました!
ここでプチ知識 (というかなんというか) ですが、エディタの title の上にカーソルを合わせた状態で
F1キー ( キーボード左上: [Esc][F1][F2][F3] etc... )
を押すと、その命令の説明が表示されます。(ワンキー・へルプといいます。)
サンプルとかで、見知らぬ命令さんに出会ったら、すぐさま「ワンキー・ヘルプ」で意味を確認しましょう!
それが、優れたHSPプログラマへの近道です。

さて、基本的な命令をもっと紹介しましょうか。
HSPで一番基本的な mes 命令の登場です。

	mes "Hello, world!"

今回は、画面の中に"Hello, world!"が表示されましたねぇ。
※ Hello, world! というのは、こういうときにお約束の文字列です。世界中で使われてます。

ところで、 mes 命令のヘルプ(リファレンス)は見ましたか?
それに書いてある string とは、文字列という意味です。
※文字列 …… 文字の並び。そのままじゃん。
HSPでは、約束として文字列を " (ダブルクォーテーション) で囲まなければなりません。
そうしないと、文字列として扱ってくれませんので、気をつけてください。
ダブルクォーテーションは、「[Shift] キーを押しながら [2] キー」 で打ち込めます。
もちろんこれも半角で書いてくださいね。

では、あと3つばかし。

	repeat 3
		mes "mes 命令でござる"
		print "mes と同じです"
		wait 1
	loop
	mes "繰り返し終了"

さて、一気に 4 つも新しい命令が出てきてしまいました。とほほ。
でもまぁ、print 命令は mes 命令と全く同じなので、新しい命令は 3つ だけなんですけどね。

まず、repeat 文の説明をします。サンプルを実行してみると分かるかもしれませんが、repeatloop の間が 3 回繰り返されています。
repeat 文は、中にある命令を指定した回数だけ繰り返すものです。
loop は、repeat で繰り返す範囲の終わりの目印のようなものです。
※これを、repeat ループと呼ぶことにします。

repeat 文を書く場合、それが何を繰り返すのか分かりやすくするために、字下げ(インデント)というのを行います。
[tab] のスペースを、他より一段深くします。それだけです。
たったそれだけの苦労で、見やすくなります。忘れずにやりましょう。

ところで、wait 命令は何をしてたんでしょう?
mes(print)命令がせっせと repeat している間に、この wait 命令も 3 回あったはずなのに、何も起きていません。
もしかして、サボり!?
いえ、この wait 、実はしっかり働いていました。
こんなに引っ張るほどのモノでもなかったんですが、実行を少し遅らせる命令なのです。
この wait 命令を使用すると、repeat ループによるパソコン (CPU) への負担が軽くなるのです。
まぁ、本当は何万回も繰り返さない限りは不要なんですが、説明するために付けておきました (ぇ)。

さて、今回はこの辺にしておきましょうか。
最後に、今日やった命令&さらっと新しい命令、数個です。
いろいろ組み合わせて、使ってみてください。

新出命令をおさらい
命令名 第一パラメータ(p1) p2 備考
title "文字列" ---- タイトルバーの文字列を変更
mes "文字列" ---- 文字列を画面に表示
print "文字列" ---- mes 命令と同じ
repeat   数値   数値 p1 の回数分繰り返す。
loop ---- ---- repeatループの終了を示す。
wait   数値   ---- 10ミリ秒間実行を止める。(1/100秒)
await   数値   ---- 1ミリ秒間実行を止める。(1/1000秒)
break ---- ---- repeatループから強制脱出
continue 数値 ---- repeatに戻る

では、第二章に進みましょう!


by 上大

序章へ   第二章へ