音声,文字列表示,文字取得 |
【音声,文字列表示,文字取得】
ここでは,
・音声の読み込み・再生
・文字列の表示
・キーボードからの文字取得
について解説する。
■手順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.TRUE か DxJava.FALSE で指定する。通常は DxJava.TRUE で良い。
下図④では,ゲーム本体とも言えるwhileループが始まる直前に,ゲームプレイ中ずっと継続して再生され続けるBGMをループ再生で再生開始している。
下図⑤では,
キーボードでスペースキーを押した時に交換をバックグラウンド再生している。
【キーボードからの半角文字取得】
キーボードからの半角文字の取得は,GetInputChar( ) メソッドで行う(下図⑤)。引数は,通常 DxJava.TRUE を指定する。返り値としてキーボードから
入力された半角文字が返ってくる。
SoundString.java (緑色の部分が IfElse.java に追加・変更を加えた箇所)