良く使うコマンド / HSP3ヒント

        ▼ライブラリの選択
        #include "d3m.hsp"	3D描画
        
        ▼よく使うコマンド
        
        #pack "a.txt"	実行ファイルと一緒にパックする
        #epack "a.bmp"	暗号化してパックする
         screen 0,1024,800	画面サイズ(0は画面のID複数表示できる)
        
        // ━━━━━━━━━━━ JavaScript
        //WEB形式に変換するには、「hsp3dh.exe」を実行する。
        //画像などのメディアファイルは\dataフォルダにまとめて入れる。
        //コードはパスを記述しなくてもいい
        mmload "se_shot_001.wav", 0, 0
        celload "enemy02.png", 3
        
        // ━━━━━━━━━━ 画像ファイル(外部ファイル)
        //Picload "画像パス", 読み込みモード   Bmp, gif, jpg, ico, cur, wmf
        //Celload "画像パス", buff-ID, 0
        //Celdiv buff-ID, 横分割, 縦分割
        //Celput id, 画像番号, zoomY(0.0), zoomY(0.0), 角度(0.0)
        celload "enemy02.png", 3
        celdiv 3, 100, 66
        pos enemy_x(cnt), enemy_y(cnt_y) + enemy_row
        celput enemy, enemy_turn * -1
        
        
        // ━━━━━━━━━━━━━━━━ 変数
        #const BG_R 255
        Dim a, 5
        A(0) = 1, 2, 3
        >Mes a(0)
        >1
        
        // ━━━━━━━━━━━━━━━━ 画面表示
        
        // -------------------------------
        //文字フォント
        // -------------------------------
          font "Arial",60,2+opt
          mes "Arial"
        
        // -------------------------------
        // Window タイトル
        // -------------------------------
        Title "アプリのタイトル" + "文字列可"
        
        // -------------------------------
        // Windowのアイコン
        // -------------------------------
        #packopt icon "safe.ico"
        
        // -------------------------------
        // 画像イメージ
        // -------------------------------
        Celload "xxx.bmp"  ; 画像ファイル
        objImg = stat         ; 画像のIDを保持。画像を読むとstatがカウントされる1,2,3,4
        
        Redraw 0 ;描画開始
        Color 0, 0, 64
        Boxf   ; 背景を消す
        Gmode 2 ; 透明色あり
        Pos x, y 
        Celput objImg
        ; Celput イメージID, 分割画像No,横倍率,縦倍率,角度
        Redraw 1 ;描画終わり
        
        // -----------------------------------
        // ラインを描く
        // ----------------------------------
        color 255,0,0			;赤色
        i = 0
        repeat 50
            line 100,100,100+i,200
            i=i+10
        loop
        
        // --------------------
        // 四角形を描く
        // --------------------
        boxf 100,100,200,200
        
        // --------------------
        // まるを描く
        // --------------------
        color 255,0,0			;赤色
        circle 100,100,200,200,0  ;四角形に収まる○輪郭
        circle 100,300,200,400,1 ;四角形に収まる●塗りつぶし
        
        
        // ━━━━━━━━━━━━━━━━━━━━ 制御
        
        //--------------------------
        // 繰り返し repeat 回数, cntの初期値
        // -------------------------
         repeat 10
             ~~
            Mes cnt
            Cnt 	;cntは何もしなくても+1される
         loop
        
        // --------------------------
        // 行ジャンプ、サブルーチン
        // ----------------------------
        *main
            Wait 10
            Goto *main
            
            Gosub *sub
        
        *sub
            ~~
            Return
            
        // --------------------------
        // Windowsタスクにリソースをゆずる。処理待ち
        // -------------------------
            Await 20
            Wait [10ms]
            
        // -------------------------------
        // 比較
        // -------------------------------
        及びは、&
        もしくは、|
        
        
            
        // ━━━━━━━━━━━━━━ 操作INPUT
        
        //--------------------------
        // キー入力
        // p3: stick key; if key =1 ; 入力1回だけ判定
        // p3: stick key,15; if key =1 ; キーを連続押している間(同時には押せない)
        // p3: stick key; if key&1 ; 2つ以上のキーを同時受付できる
        // ----------------------------
        *main
            Stick key, 15, p3  ; p3を1にするとアクティブなときだけキー入力する
            If key&1 : x=x-speed    ;←
            If key&4 : x=x+speed   ;→
            If key&2 : y=y-speed    ;↑
            If key&8 : y=y+speed   ;↓
            ; 16 space
            ; 32 enter
            ; 64 ctrl
            If key & 128 : end  ;ESC
            If key = 128 :end
            ; 256 マウス左ボタン
            ; 512 マウス右ボタン
            ;1024 TAB
            Goto *main
        
        // ━━━━━━━━━━━━━━ ユーザー定義関数
        
        // ---------------------------------------
        // ユーザー定義関数
        // ---------------------------------------
        goto *start
        #defcfunc plushundred double intValue1, double intValue2
            ret = intValue1 + intValue2
            return ret
        
        *start
            answer = 0
            answer = plushundred(10, 100)
            pos 100,100
            mes answer
            stop
        
        // -------------------------
        // ユーザー定義関数のローカル変数が重複しても大丈夫なモジュール化
        // module, globalを省略するとエラーになる。
        // -------------------------
        goto *start
        
        ;#module
        #defcfunc plushundred double intValue1, double intValue2
            ret = intValue1 + intValue2
            return ret
        ;#global
        
        *start
            answer = 0
            answer = plushundred(10, 100)
            pos 100,100
            mes answer
        
            intValue1 = 200    ;※ここでエラーになる
            pos 100,200
            mes intValue1
            stop