; hsp3dish でスプライトを表示してアニメしてみるテスト #include "hsp3dish.as" #packopt name "hsp3dish_sprite_anime" #packopt type 0 #packopt xsize 640 #packopt ysize 480 ; ウインドウID=0を初期化 screen 0, 640, 480, screen_normal title "hsp3dish sprite anime test" ; スプライト初期化 es_ini ; キャラ画像読み込み imgid = 3 buffer imgid picload "player_64x64_512x256.png" ; スプライトサイズを指定。w, h, 当たりサイズの割合(%) es_size 64, 64, 0 ; キャラ画像定義。ここでは4キャラ分定義している ; フレーム数を指定すると、そのフレーム数が経過したら ; 次のキャラに表示が変わる。つまりアニメができる。 ; ; es_pat キャラNo, x, y, (フレーム数), (バッファID) frm = 6 es_pat 0, 64 * 0, 64, frm es_pat 1, 64 * 1, 64, frm es_pat 2, 64 * 2, 64, frm es_pat 3, 64 * 3, 64, frm ; スプライトアニメ設定 ; キャラNo 3 を表示し終わったら、キャラNo 0 に戻るように指定 es_link 3, 0 ; キャラ画像定義は、以下のような書き方もできる ; ただし、キャラが横に並んでいること ; es_patanim キャラNo, 定義個数, x, y, (フレーム数), (バッファID) es_patanim 4, 4, 0, 64, frm es_link 7, 4 ; スプライトを登録 ; スプライトNo, x, y, キャラNo es_set 0, (64 * 1), 64, 0 es_set 1, (64 * 3), 64, 4 ; 描画先を指定。ウインドウID=0 を指定している。 gsel 0 ; redraw 0 を呼んだ時の画面クリア設定 ; 0 or 1, 色指定($000000 - $ffffff) setcls CLSMODE_SOLID, $3070a0 *mainloop ; ESCキーで終了 stick key, $ff if key & $80 : goto *jobend redraw 0 ; 描画開始 es_draw ; スプライトを描画 redraw 1 ; 描画終了 await (1000 / 60) ; 処理待ち goto *mainloop *jobend es_bye ; スプライトシステム開放 end