レーン専用関数

レーン専用関数は、レーンに関する画像やアニメーションの設定や表示制御などを行います。

レーンにはレーン背景やレーンカバー、白鍵や黒鍵、スクラッチなどのオブジェやロングノートオブジェ、キー押下時のライティングなどの要素があり、これらをレーンコールバックから設定しておくことで、レーンの表示を行う場合に設定された画像を使用してシステム側で最終的なレーン画像を構築します。

v1.09からレーン画像が登録されなかった場合は、自動的にシステムで代替表示されるようになっています。なお、代替表示されるオブジェクトは一部のものに限られますが、オブジェやレーンカバーなどのゲームに必要なものにはほぼ対応しているため、レーン画像を何も登録しなくてもプレイすることは可能です。
関数詳細
hdxSysLoadImage( tid,file ) システム画像をロードする。
 tid : 画像ID
 file : 画像ファイル名
hdxSysSetRange( pid,tid,x,y,w,h,ox,oy,blend ) システム画像から一部を切り抜いて表示対象のIDとする。
 pid   : 表示ID
 tid   : システム画像ID
 x    : 画像の左上X座標
 y    : 画像の左上Y座標
 w    : 切り抜く画像の幅
 h    : 切り抜く画像の高さ
 ox    : 切り抜いた画像の左上を(0,0)とした場合の原点X座標
 oy    : 切り抜いた画像の左上を(0,0)とした場合の原点Y座標
 blend  : 描画方法(0=通常合成、1=加算合成)
hdxSysLoadAnime( aid,file,int ox,int oy ) システムアニメをロードする。
※ロード直後はアニメーションがOFFとなり、-1フレーム(非表示)状態で停止しているため、
 表示を行うには必ずロード後にhdxSysCtrlObject()を使用してモードやフレーム番号を指定する
※システムアニメには音声を入れてはならない
 aid : アニメID
 file : アニメファイル名
 ox : 原点のオフセットX座標
 oy : 原点のオフセットY座標
hdxSysSetObject( obj,type,id ) ゲーム用オブジェクトのデザインを登録する。
※指定しない場合はシステムデフォルトが使用される
※各画像のサイズはグローバル定数で指定したサイズでデザインされている必要がある
 obj : オブジェクトID(OBJID_****)
      1P側レーン背景     2P側レーン背景
      1P側小節ライン     2P側小節ライン
      1P側ライティング    2P側ライティング
      1P側レーンカバーSUD  2P側レーンカバーSUD
      1P側レーンカバーHID  2P側レーンカバーHID

     白鍵盤        黒鍵盤        スクラッチ     スクラッチ(オート時)
      オブジェ      オブジェ       オブジェ      オブジェ
      ロングオブジェ   ロングオブジェ    ロングオブジェ   ロングオブジェ
      ロング上部OFF   ロング上部OFF    ロング上部OFF   ロング上部OFF
      ロング中心部OFF  ロング中心部OFF   ロング中心部OFF  ロング中心部OFF
      ロング下部OFF   ロング下部OFF    ロング下部OFF   ロング下部OFF
      ロングF上部ON   ロングF上部ON    ロングF上部ON
      ロングF中心部ON  ロングF中心部ON   ロングF中心部ON
      ロングF下部ON   ロングF下部ON    ロングF下部ON
      バックライト    バックライト
 type : 設定するタイプ
       DRAWTYPE_NONE : 未定義
       DRAWTYPE_IMAGE : 静止画像
       DRAWTYPE_ANIME : アニメーション
 id   : 画像の場合は切り抜きID、アニメの場合はアニメIDを指定
ret = hdxSysGetAnimeMaxFrame( aid ) ロードしたシステムアニメの最大フレーム数を返す。
 ret : 最大フレーム数
 aid : アニメID
hdxSysCtrlObject( cid,sid,draw,alpha,mode,frm,start,end ) レーンの各オブジェクトの表示状態をコントロールする。
 cid : コントロールID(CTRLID_****)
 sid : コントロールサブID(爆発アニメのみ複数重ねるために0~LANE_MAX_EXPLOSION-1までを使用/それ以外は常に0)
 draw : 表示するか(静止画像のみ影響)
 alpha : 表示する場合のアルファ値
 mode : オブジェクトがアニメだった場合の制御方法
     CTRLMODE_MANUAL   手動でフレームをセット
     CTRLMODE_AUTO_END  再生後に終了フレームで停止
     CTRLMODE_AUTO_LOOP  再生後指定のフレームに戻ってループ
 frm : オブジェクトがアニメだった場合の最初のフレーム番号(停止時はこのフレームを手動で設定する)
 start : オブジェクトがアニメだった場合で自動再生する場合のループ開始位置(再生開始位置はstartより前に設定可能)
 end : オブジェクトがアニメだった場合で自動再生する場合の終了位置
     ※自動停止時はこのフレーム番号で停止する
     ※-1の場合は最終フレームで表示状態、-2の場合は最終フレーム+1で非表示状態となる
tbl = hdxSysGetInput() 現在のボタンやスクラッチの押下状態を返す。
押されている場合はTRUE、押されていない場合はFALSEが入る。
※この関数で取得出来る押下状態はラグや取りこぼしがあるため、あくまでも表示を変化させるためだけに使用し、
 ゲームの遷移には使用しないこと
 tbl : "is_press_start"            スタートボタンが押されているか
     "is_press_effect"           エフェクトボタンが押されているか
     "is_press_up"             上キーが押されているか
     "is_press_down"            下キーが押されているか
     "is_press_left"            左キーが押されているか
     "is_press_right"            右キーが押されているか
     "is_press_lkey1"~"is_press_lkey7"   1P側のキー1~7が押されているか
     "is_turn_lscratch"           1P側のスクラッチの回転方向(-1=左回転中、0=停止、1=右回転中)
                         ※内蔵デバイス使用時は0と1のみが入る
     "is_press_rkey1"~"is_press_rkey7"   2P側のキー1~7が押されているか
     "is_turn_rscratch"           2P側のスクラッチの回転方向(-1=左回転中、0=停止、1=右回転中)
                         ※内蔵デバイス使用時は0と1のみが入る
hdxSysDrawLane() グローバル設定で指定した情報を使い、現在のレーン状態を表示する。
OnRunGame()内で呼び出すことで、描画のタイミングを自分で制御することが出来る。
また、レンダーターゲットを変更してから描画することで、テクスチャとして3Dなどに貼り付けることも出来る。
※この関数を呼び出すと常に左右のレーンが同時に描画される