hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
小ワザ/スクリプトの書き方 - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

足りないトコあったら書き足しもしくはわかりやすいように変更お願いします。


まずは

HSPは先頭行から下へ順に実行する言語です。
スクリプトはアルファベットの大文字・小文字を区別しないので、どちらでもOKです。

基本を知らないと後々効率が悪いです。

コメント

行中でコメント後は無視されます。

  • コメント一覧
    • 「;」セミコロン
    • 「//」ダブルスラッシュ
    • 「/*」から「*/」までの間をコメント化
-2147483647〜214748364710進整数
$0〜$FFFFFFFF16進整数(0xでも可)
%0〜%111111...2進整数(0bでも可)
'A'文字コード(1バイト)
+,-,*,/加算,減算,乗算,除算
&,|,^論理演算(and,or,xor)
\割り算の余り
=,<,>,!条件式(同じ,小さい,大きい,同じでない)
==,<=,>=,!=条件式2(同じ,以下,以上,同じでない)
<<,>>左、右方向にビットシフト
  • 数式は左から順に行われ、乗除算の優先はありません。
    • hsp3では乗除算優先に変更されます。
  • カッコは、8重までネスティングすることが可能です。

文字列

  • 「\」
    • 「\n」改行
    • 「\t」TAB
    • 「\r」リターン(0x0d)
    • 「\"」(")ダブルクォート
    • 「\\」ただの「\」
      • "C:\WINDOWS\SYSTEM" などの文字列は、
        "C:\\WINDOWS\\SYSTEM" と記述しないと認識されません。
  • 「{"」から「"}」までの間はすべて文字列として解釈されます。
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
-
|
|
!
mes {"
	ここには、1行まるまる直接メッセージを
	書いてもいいです。
"}
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
x=100            ;x(変数)に100(数値)を代入
y=200            ;y(変数)に200(数値)を代入
pos x,y            ;100,200座標に移動
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
x="strings"            ;x(変数)に「strings」(文字列)を代入
mes x            ;x(変数)の内容を画面に表示
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//特殊な代入
a=a+10            ;上と下は
a+=10            ;同じことをしています。
//その弐
a=a+1            ;上と下は
a++            ;同じことをしています。
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//型の変換
int a            ; 変数aを数値型にする
str b            ; 変数bを文字列型にする
  • 変数に日本語を使用する事も出来ます。(一般的ではない)//追記--kz3
  1
  2
  3
  4
 
 
 
 
    変数=1
    mes 変数    ;こちらは変数「変数」
    mes "変数"  ;こちらは文字列「変数」
    stop

配列変数

一つの変数に番号をつけ、複数の数値・文字列を管理することができます。

  • 要素に数式を扱うことはできません。
    • 数式を扱いたい場合、あらかじめ変数に代入してからとなります。
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 
 
 
 
 
 
 
 
 
x.0=1            ;x(変数)の要素0に1を代入
x.1=2
//連続代入
x=1,2            ;上の例と同じ
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//要素の拡張(数値)
dim a,20            ; 変数aの要素は0〜19まで使えるようになります
//要素の拡張(文字列)
sdim a,32,5             ; 変数aは32文字までの文字列を5つの要素で扱えます

hsp3では以下のようになります。

Everything is expanded.Everything is shortened.
  1
  2
  3
 
 
 
x(0)=1            ;x(変数)の要素0に1を代入
x(1)=2
x(1+b)=3            ;配列要素として式も指定可能

ラベル

プログラム上の位置を示すためにラベルとして名前をつけることができます。 ラベルは*(アスタリスク)の後に続く59文字(半角)以下の文字列で示します。

Everything is expanded.Everything is shortened.
  1
  2
  3
 
 
 
 *label
    mes "Wait.":wait 100
    goto *label            ; 無限ループを生成

ラベル名は日本語でもできる(一般的ではない)

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
 
 
 
 
onclick goto *ラベル
stop
*ラベル
    mes "OK"

ローカルラベル

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 
 
 
 
 
 
 
 
 
    mes "GO!"
 *@
    mes "A="+a
    a+
    if a=5 : goto *@forward        ; 後のローカルラベルに進む
    if a<5 : goto *@back        ; 前のローカルラベルに戻る
 *@
    mes "STOP"
    stop
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2008-12-30 (火) 22:43:21 (1803d)