[前へ] [目次へ] [次へ]

DRMessage (ネイティブクラス)


このクラスはメッセージウィンドウ用の文字列を描画するDRを扱うクラスです。
このクラスはインスタンスに描画キャッシュを保持するため、
複数のオブジェクトと同時にリンク(DRマルチリンク)すると正常に動作しなくなります。

DR系クラスは描画に必要な情報を保持するクラスで、
INativeDrawResource での描画に対応したクラスを介して描画されます。
このクラスのインスタンスが消滅した時、
そのインスタンスへのリンクは強制的に解除されます。
描画に使用しているDRインスタンスを消滅させないようにしてください。

一番簡単にDRを画面に表示するには DRWindow クラスを使用します。

●継承

   このクラスは継承をしていません。

●インターフェイスとインターフェイスメソッド

   implements INativeDrawResource
          (C++レベルキャスト)IFGESDrawResource


●クラスメソッド

   このクラスはクラスメソッドを持っていません。

●クラスメンバメソッド

名前概要
public設定メソッド SetMessageメッセージを設定します
public設定メソッド SetCallBackMethodコールバックメソッドを設定します
public設定メソッド SetDrawCallBackMethod文字描画コールバックメソッドを設定します
public設定メソッド SetCharSE文字表示単位の効果音を設定します
public操作メソッド AllDrawメッセージを直ちに全て描画します
public操作メソッド AllClear描画中のメッセージを消去します
public操作メソッド SetNeedDrawCacheSize描画中のメッセージの必要領域を設定します
public比較・判定メソッドconst IsDrawCompleted描画が完了しているか取得します

●クラス共有変数

   このクラスはクラス共有変数を持っていません。

●インスタンス変数

   このクラスはインスタンス変数を持っていません。


●C++レベル追加情報

クラスID: FGES_CLASSID_DRMESSAGE
クラス名: FGES_DRMessage



DRMessage::SetMessage

public void SetMessage( INativeString text, FGESFont? font,
             INativeInteger width, INativeInteger height,
             INativeInteger? char_delay=NULL, INativeInteger? char_drawspeed=NULL)


   メッセージとして描画する内容を設定します。
   メッセージ文字列は一文字ごとに設定時間分待機し、
   フェードイン処理しつつ描画されます。
   
   描画する文字列は特殊文字を解釈します。

   特殊文字の指定方法:特殊文字一覧中の[]表記の利用方法の一覧
表記指定方法
[rrggbb]6桁のカラーコードを16進法で記述します
[000000]値を10進法で記述します
[A/B/C]/で区切った各項目のどれかを記述します。各項目の意味は文字の説明を参照。
[???][]内の文字を独自に解釈します。意味は文字の説明を参照。
[上記以外][]内の各文字ごとに個別に判断します。各文字の意味は文字の説明を参照。

   特殊文字の一覧:[]表記を用いるものは上記表参照
表記効果
%%%文字を表示します
%c[rrggbb/rrggbb,rrggbb]文字色を指定した色に変更します。
色を一つ指定すると単色に設定します。
色を , 区切りで二つ指定すると 上端,下端 で垂直グラデーションします。
%ct[rrggbb]垂直グラデーションの上端の色を指定した色に変更します。
%cb[rrggbb]垂直グラデーションの下端の色を指定した色に変更します。
%s[rrggbb]影色を指定した色に変更します
%mf文字部分を文字色で塗りつぶすようにします
%ms文字部分をフェイスビットマップで描画するようにします。文字色は無視されます。
%tf文字を固定幅モードで配置します。
%tv文字を可変幅モードで配置します。
%tk文字を可変幅(カーニング有効)モードで配置します。
%tc文字を可変幅(カーニングと結合文字有効)モードで配置します。
%o[/s1/s2/b1/b2/sb1/sb2/
  d/ds1/ds2/db1/db2/dsb1/dsb2]
文字に掛けるエフェクトを変更します。
各項目の意味:(空欄)=NORMAL s1=SHADOW1 s2=SHADOW2
        b1=BORDER1 b2=BORDER2 sb1=SHADOWBORDER1 sb2=SHADOWBORDER2
        d=BOLD ds1=BOLDSHADOW1 ds2=BOLDSHADOW2
        db1=BOLDBORDER1 db2=BOLDBORDER2 dsb1=BOLDSHADOWBORDER1 dsb2=BOLDSHADOWBORDER2
%b[000000]フェイスビットマップの読み取り元X座標を指定値に変更します
%d[csmtowhzliF]指定した設定をこの処理を開始した時の初期値に戻します。
文字と対応する項目:c=文字色 s=影色 m=文字部分描画モード t=文字配置モード
        o=描画エフェクト w=文字横幅 h=行送り高さ z=拡大率 l=レイアウト
        i=斜体レベル F=フォントID
%eh[000000]半角幅の外字を表示します。指定値は描画する左端の外字用ビットマップ内のX座標。
%ef[000000]全角幅の外字を表示します。指定値は描画する左端の外字用ビットマップ内のX座標。
%x[000000]次に描画するX座標を指定値に変更します。
%xr[000000]次に描画するX座標を現在からの相対値で変更します。
%y[000000]次に描画するY座標を指定値に変更します。
%yr[000000]次に描画するY座標を現在からの相対値で変更します。
%wh[000000]半角文字の最低横幅を指定値に変更します。
%wf[000000]全角文字の最低横幅を指定値に変更します。
%we[000000]半角幅の外字の横幅を指定値に変更します。
%wa[000000]全文字種の横幅補正を指定値に変更します。
%h[000000]一行当たりの縦幅(行送りの高さ)を指定値に変更します。
%ha[000000]改行後の縦幅(行送りの高さ)補正を指定値に変更します。
%hf[000000]一行当たりの縦幅(行送りの高さ)と位置補正を指定したフォントID基準に変更します。
%z[000000]文字の拡大率を指定値をパーセントとして変更します。
50%指定時、および 66%か101%以上(クオリティ2または4の場合のみ)指定時は高品質化を行います。
%i[000000]文字の斜体レベルを指定値に変更します。
%ll文字列を左揃えに配置します。
%lc文字列を中央揃えに配置します。この指定は行単位で適用され、%xおよび%yと併用できません。
%lr文字列を右揃えに配置します。この指定は行単位で適用され、%xおよび%yと併用できません。
%lt文字列を上揃えに配置します(縦書きモード)。
%lv文字列を中央揃えに配置します(縦書きモード)。この指定は行単位で適用され、%xおよび%yと併用できません。
%lb文字列を下揃えに配置します(縦書きモード)。この指定は行単位で適用され、%xおよび%yと併用できません。
%a[000000/000000,000000]指定した番号のスタンプを配置します。
数値を一つ指定すると横軸のスタンプ番号を示します。
数値を , 区切りで二つ指定すると 横軸,縦軸 のスタンプ番号を示します。
%u[???]指定した1文字を表示します。
???の部分は「文字」「異体字」「フォントID」をこの順番で指定します。
このうち、「異体字」「フォントID」は省略できます。
「文字」:この部分が1文字ならその文字を示します。特殊文字は%%以外解釈しません。
         この部分が2文字以上なら16進数のUnicodeコードポイントとして解釈します。
「異体字」:「+000」の書式で、異体字のVS番号を10進で指定します。
         VS番号はSVSが1〜16、IVSが17〜256になります。
         指定が省略された場合は通常の文字として扱います。
「フォントID」:「*0」の書式で、フォントIDを10進一桁で指定します。
         フォントID10以降はここから指定できません。
         フォントIDを明示した場合、スプライトフォントは解釈せず必ず指定したフォントIDで出力します。
         指定が省略された場合は現在のフォントID指定に従います。
%F[???]描画フォントを変更します。
???の部分はフォントオブジェクト名で、空欄にした場合はデフォルトフォントにします。
%Fi[000000/000000X]描画に使用するフォントIDを変更します。
-1を指定すると「指定なし」になり、末尾にXを付けるとスプライトフォントが無効になります。
ただし、「-1X」の指定はできません。
%Lx言語ブロックの区切りとして、最優先で解釈されます。
xは1文字の言語識別子で、実際は半角英数を指定します。
設定されている言語識別子の言語ブロックが見つからない場合、
最初にこの制御文字が出現するより前を使用します。
%r[000000]指定した次の文字以降の描画開始を指定値フレーム分遅らせます。
%rb[000000]1文字描画する度の待機時間(基本ウェイト)を、指定値を1/512フレーム単位として設定します。
%k[???]設定されているコールバックメソッドを呼び出します。
???の部分はコールバックメソッドにそのまま渡されます。
ただしAllDrawメソッドによる描画の場合はコールバックメソッドは呼ばれません。
%K[???]設定されているコールバックメソッドを呼び出します。
???の部分はコールバックメソッドにそのまま渡されます。

INativeString text :設定する文字列
FGESFont? font :描画に使用するフォントオブジェクト。
         空参照を指定した場合はデフォルトフォントを指定したものとして扱います。
INativeInteger width :描画領域の横幅
INativeInteger height :描画領域の縦幅
INativeInteger? char_delay=NULL :1文字描画する度に待機する時間を1/512フレーム単位で指定します。
         空参照を指定した場合は1205(およそ秒間25文字)として扱います。
INativeInteger? char_drawspeed=NULL :描画開始から毎フレーム増加させる透過度を1/512単位で指定します。
         空参照を指定した場合は4370(およそ0.5秒)として扱います。

先頭へ


DRMessage::SetCallBackMethod

public Bool SetCallBackMethod( INativeMethod? callback_method=NULL)

   メッセージの %k/%K 特殊文字で呼び出すコールバックメソッドを設定します。
   コールバックメソッドは %k/%K 特殊文字を解釈する時、ネイティブコールバックスレッドで呼び出されます。
   このコールバックには制限時間があり、制限時間以内に完了しない場合は例外が発生します。
   
   このメソッドで指定するコールバックメソッドは以下の形で定義されている必要があります。
       Integer MessageCallBack( String param)

      戻り値:負値を返した場合、その絶対値のフレーム経過後にコールバックを再実行します。
            この際、特殊文字は完了せず、次の文字の評価も行いません。
            0以上の値を返した場合、返した値のフレーム経過後に次の文字以降の評価を行います。
      
       String param :特殊文字の[]内の文字列。


戻り値:設定に成功すると真を返します。

INativeMethod? callback_method=NULL :設定するコールバックメソッド。
         空参照を指定した場合は設定を解除します。

先頭へ


DRMessage::SetDrawCallBackMethod

public Bool SetDrawCallBackMethod( INativeMethod? callback_method=NULL)

   メッセージの文字描画時に呼び出すコールバックメソッドを設定します。
   コールバックメソッドは文字を描画する時、ネイティブコールバックスレッドで呼び出されます。
   このコールバックには制限時間があり、制限時間以内に完了しない場合は例外が発生します。
   
   このコールバックを設定した場合、文字描画時のフェードインは処理されません。
   SetMessage の char_drawspeed パラメータの指定は無視されるようになります。
   
   このメソッドで指定するコールバックメソッドは以下の形で定義されている必要があります。
       Bool MessageCallBack( FGESFont font, String ch, Integer x, Integer y, Integer width, Integer height)

      戻り値:文字描画を処理した場合は真を返します。
            真を返した場合、その文字の描画は完了したものとして扱われます。
            偽を返した場合、メッセージ描画バッファに即座にその文字が描画されます(フェードインはしません)。
      
       FGESFont font :描画に指定されたフォント。
               このフォントはメッセージ設定時に指定したもので、フォント指定を解決した結果ではありません。
       String ch :描画しようとしている文字。
               このオブジェクトには描画オプションを指定する文字列が含まれているので、
               これを font でそのまま描画するとオプションや位置を含めて反映されます。
               描画しようとしている文字を抽出する場合は ch[ch.GetCharCount()-1] を使用します。
       Integer x :文字がメッセージ描画バッファへ出力される際の左上X座標。
       Integer y :文字がメッセージ描画バッファへ出力される際の左上Y座標。
       Integer width :文字がメッセージ描画バッファへ出力される際の横幅。
       Integer height :文字がメッセージ描画バッファへ出力される際の縦幅。


戻り値:設定に成功すると真を返します。

INativeMethod? callback_method=NULL :設定するコールバックメソッド。
         空参照を指定した場合は設定を解除します。

先頭へ


DRMessage::SetCharSE

public Bool SetCharSE( INativeString? se_name=NULL)

   メッセージを1文字描画開始する度に鳴らす効果音を設定します。
   デフォルトでは「なし(再生しない)」に設定されています。

戻り値:設定に成功すると真を返します。

INativeString? se_name :1文字描画開始する度に鳴らす効果音ファイル名。
         SEフォルダ基準でサブフォルダのパスは含むことができます。
         空参照または空文字列を指定した場合は「なし(再生しない)」を指定したものとして扱います。

先頭へ


DRMessage::AllDraw

public Bool AllDraw()

   描画途中のメッセージがある場合、直ちに全て描画します。

戻り値:メッセージを最後まで描画したか、描画途中のメッセージがない場合は真を返します。

先頭へ


DRMessage::AllClear

public void AllClear()

   描画しているメッセージを消去し、全領域を透明にします。

先頭へ


DRMessage::SetNeedDrawCacheSize

public Bool SetNeedDrawCacheSize( INativeInteger width, INativeInteger height)

   描画中のメッセージに使用している描画キャッシュの最低サイズを設定します。
   このメソッドはメッセージの描画処理中に出力領域をリサイズする場合のみ呼び出す必要があります。
   
戻り値:設定に成功すると真を返します。

INativeInteger width :設定する描画領域の横幅
INativeInteger height :設定する描画領域の縦幅

先頭へ


DRMessage::IsDrawCompleted

public Bool IsDrawCompleted()const

   描画処理が完了しているか取得します。

戻り値:描画が完了していれば真を返します。

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2023/10/13