7、コメントと変数
スクリプトが長くなり複雑で読みにくくなることがあります。
そこで、そのスクリプトが何をしているかを他人が見て理解できるよう、コメントを追記します。
HSP でコメントを入れる場合は、; (セミコロン)を入力してください。
; 以降の文章は、処理時に無視されます。
下記に使い方を示します。
; この行はコメントでーす
mes "メッセージ"; この部分はコメント
注意として、; の後に命令を書いても処理されません。
その例を下記に示します。
exec "notepad" ; メモ帳を起動
こうすれば、後でスクリプト見直時に、処理内容を理解しやすくなります。
7-1、変数について説明します。
pos 150,80 ; カレントポジションを(150,80)に変更のように数値で指示しました。
この数値を変数に置きかえます。
x=150 ; 変数xに150を代入
y=80 ; 変数yに80を代入
pos x,y ; カレントポジションを(x,y)に変更
この場合カレントポジションは(150,80)に変更されます。
「x 名の箱」
「箱」は中に何かを入れることができます。
「x 名の箱に 100 (数値)を入れる」
と x 中に数字を入れておくことができます。この「箱」が変数です。
「xという変数に100という数字を入れる」こととなります。
スクリプトで書くと、
x=100
となります。
このように変数(箱)に数字を入れることを「代入」 と呼び、代入を行なうと変数に数字が記憶され、
それ以降はその変数を数字の代わりに使うことができます。
「代入」とは、変数に数値を覚えさせること
「代入」は、「変数名」+「=(イコール)」+「数値」で行なう
というのをよく覚えておいてください。
hensu = 1234
| |
変数名 代入する数値
代入だけは、他の命令と違い書き方が特殊です。
変数名は、英文字(20文字以内)の名前で示され、数値は 123 のような整数値か 1.5 のような小数値のみとなります。
変数名にはさらにルールがあります。
命令と同じ単語は使えません。
ラベルと同じ名前は使えません。
変数は自由に代入でき、何度でも変更できます。
1つの変数が覚えているのは1つの数値だけで、最後に代入した数値が記憶されることに注意してください。
hen=150
cls 1
hen=50
上記では、1行目で変数 hen に 150 が入りましたが、3行目で変数 hen は 50 に書き換えられ前の 150 は消えます。
下記に mes を応用した例を示します。
mes "文字列"+変数名
文字列の後に変数の内容を表示でき、+ (プラス)記号で文字列と変数名を繋げることができます。
これを使って下記のスクリプトを入力し実行してください。
hen=150
mes "現在の変数henの数値は、"+hen+"です。"
hen=50
mes "現在の変数henの数値は、"+hen+"です。"
stop
すると、
現在の変数henの数値は、150です。
現在の変数henの数値は、50です。
とに表示されます。
よって 2行目の時点では変数hen は数値 150 を記憶していましたが、3行目に代入され 50 が表示されます。
x=150
y=80
pos x,y
は、
pos 150,80
と同じです。
数式とは、数値と変数、またはそれらを計算式でつなげて書くことです。
計算式とは、
1+1
や、
125+200-32
など、いわゆる算数の式なので、
pos 150,100
てはなく、
pos 100+50,50*2
でも処理されます。
これも 150,100 と同じです。
「+」は足し算
「-」は引き算
「*」は掛け算(×)
「/」は割り算(÷)
キーボードには × ÷ がないので、かわりの記号を使います。
x=30
y=100
pos x,y
mes "1.ばんめ"
pos x,y+50
mes "2.ばんめ"
のように、使用できます。
この例だと、(30,100)と(30,150)にメッセー ジが表示されます。
しかもこの場合、
「少し上にずらしたい…」という時、2行目のy=100を、y=80などに変更するだけで、
2つのメッセージの場所をまとめて変更できます。
この例だとメッセージが2つだけだから楽ですが、10行くらいあるメッセージだとしたら、
いちいち「pos」命令の数値を変更していく苦労と比べると便利です。
数式はさらに、変数の代入でも使うことができます。
x=5
y=10
z=x*8/y
のように使ってみたり、
hen=0
hen=hen+1
のようにも使えます。
上の例では、1行目で変数 hen には 0 が代入されます。
2行目で変数 hen に代入される前の時点での変数 hen は 0 です。
それに 1 を足したものを、ふたたび変数 hen に代入するわけですから、変数 hen は 1 になります。
hen=hen+1
は、変数 hen に1を足す。
このように、もとの変数の値を計算によって変化させるパターンは 決まり文句だと思って下さい。
8、条件判断
この HSP 入門いよいよ終盤。あとは条件判断をマスターすれば基本部分は完了です。
条件判断は、変数と数値を比べることです。
比べた結果、別な処理をすることです。
HSPでは、条件判断をする命令は1つだけです。
その前に、伝えたいことがあります。
HSPでは、1行には1つの命令を書き順番に処理されていきます。ですが、実際は1行に複数の命令を書いてもいいのです。
この場合、文を区切るのに : (コロン)ほを入れることで 1行に複数の命令が書けます。
x=150
y=100
pos x,y
は、
x=150:y=100:pos x,y
と1行に収められます。、
x=150 : y=100 : pos x,y
とスペースを入れてもかまいません。
このように1行に複数の命令を書くことは 「マルチステートメント」と呼ばれます。
これで少ない行数に複数の処理を行われることが可能となります。
さて条件判断戻り、ただ1つの命令は、
if 条件式 : 条件が正しい時に実行される命令。
です。
条件式 意味
変数名 = 数値 変数の内容と数値が同じ
変数名 ! 数値 変数の内容と数値が同じではない
変数名 < 数値 変数の内容より数値の方が数が大きい
変数名 > 数値 変数の内容より数値の方が数が小さい
条件式によって、変数と数値を比べる条件を指定します。
条件判断の基準が、
hen<10
ならば、変数henの内容は10より小さいか ? となります。
例を書きに示します。
kai=0
*kuri
mes "くりかえすよー。"
kai=kai+1
if kai < 10 : goto *kuri
変数 kai の内容を 1 づつ足し、10 になるまで goto 命令によって同じ場所を繰り返します。
実行させると「くりかえすよー」というメッセージが 10 個表示されます。
もう1つ別な例を下記に示します。
cls
kai=0
mes "ボタンを押してね"
button "PUSH",*gopush
button "END",*goend
stop
*gopush
kai=kai+1
stop
*goend
if kai > 0 : goto *owari
mes "せめて1回は「PUSH」ボタンを押してよ"
stop
*owari
cls
mes "あなたは、"+kai+"回「PUSH」ボタンを押しましたね"
stop
PUSH と END のボタンが表示され、END のボタンを押すと、それまでに PUSH を押した回数を表示します。
ただし、PUSH を 1 回も押さないうち END を押した時 には、
「せめて1回は「PUSH」ボタンを押してよ」
と注意を促すメッセ ージが表示されます。
このように変数とからめて、
特定のメッセージを読んだか ?
ボタンを押したか ?
などの判断時に使用することができます。
HSPの命令はまだまだたくさん用意されていますが、ここまで覚えてきた命令を使うだけでも、
ランチャーやCG集などメディアブラウザ、アドベンチャーゲームなど色々なソフトが作れます。
さあ、これでスクリプトの書き方の基本は説明しました。
HSPにはまだまだ多彩な命令と使い方があります。そのうち、それらについて説明しましょう。
コメント
最新を表示する
NG表示方式
NGID一覧