音声,文字列表示,文字取得


【音声,文字列表示,文字取得】
ここでは,
 ・音声の読み込み・再生
 ・文字列の表示
 ・キーボードからの文字取得
について解説する。


■手順0:あらたなサンプルプログラムを実行してみよう。

  (1)DxLibGameプロジェクトの「src」→「デフォルトパッケージ」に,空のファイル SoundString.java を追加せよ。
  (2)こちらのリンクから SoundString.java の中身をコピーし,(1)でプロジェクトに追加した SoundString.java に貼りつけ(ペースト)よ。
  ここで解説したように,実行の構成を
     ・プロジェクトを「DxLibGame」
     ・ メインクラスを 「SoundString」
   にして実行してみよ。

  カウントダウンから始まり,BGMが鳴る。また,スペースキーを押すと効果音とともにキャラクターの周りが赤くなる。


 【文字列表示】

   まずは,ゲーム開始時のカウントダウンを行うところ(下図①②)で使用しているDXライブラリの SetFontSize( )メソッド と DrawFormatString( ) メソッド
  を紹介する。 DrawFormatString( )は,System.out.printf( ) と同様に1つの値を書式付きで表示する。書式の指定の仕方は,System.out.printf( )
  の使い方(もしくは元ネタとなったC言語のprintf( )の書式指定 )について調べてみよ。SetFontSize( )メソッドは,DrawFormatString( )などで描写
  するフォントのサイズを設定できる。
   また,DXライブラリの WaitTimer( )は,引数で指定されたミリ秒の間,処理を一時停止する。

 【音声データの読み込みと再生】

   音声データもグラフィックデータ同様に,事前に読み込んで整数値で管理し,再生することができる。LoadSoundMem( ファイル名 )メソッドが
  音声データの読み込みメソッドで,ファイル名で指定された音声データを読み込み,音声データの管理番号を整数値で返してくる(下図③)。
   読み込み済みの音声データを再生するのは,PlaySoundMem( )メソッドを使う。
  ・第1引数はLoadSoundMem( )メソッドで読み込んだ音声データの管理番号である。
  ・第2引数に DxJava.DX_PLAYTYPE_LOOP を指定するとループ再生,DxJava.DX_PLAYTYPE_BACK を指定するとバックグラウンド再生になる。
  ・第3引数は,再生位置を音声データの先頭にするかどうかで,DxJava.TRUEDxJava.FALSE で指定する。通常は DxJava.TRUE で良い。
  下図④では,ゲーム本体とも言えるwhileループが始まる直前に,ゲームプレイ中ずっと継続して再生され続けるBGMをループ再生で再生開始している。
  下図⑤では, キーボードでスペースキーを押した時に交換をバックグラウンド再生している。

 【キーボードからの半角文字取得】

   キーボードからの半角文字の取得は,GetInputChar( ) メソッドで行う(下図⑤)。引数は,通常 DxJava.TRUE を指定する。返り値としてキーボードから
  入力された半角文字が返ってくる。

SoundString.java (緑色の部分が IfElse.java に追加・変更を加えた箇所)