HSP-002

ページ名:HSP-002

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にはまだまだ多彩な命令と使い方があります。そのうち、それらについて説明しましょう。

 

 

 

 

 

 

 

 

 

 

 

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧