手順 6: SoundPlayer の追加
次に、迷路ゲームにサウンドをいくつか追加します。ユーザーが壁に触れてスタート地点に戻されたときとユーザーがゴールしたときに、それぞれ異なるサウンドが再生されるようにします。この手順では、マウス ポインターが壁に触れたときに再生されるサウンドを追加します。複雑に思えるかもしれませんが、必要なコードは数行だけです。
このトピックのビデオ版については " " を参照してください。
ノイズの SoundPlayer を追加するには
まず、フォームのコードで、コンストラクターのすぐ上に SoundPlayer を追加します。
Public Class Form1 ' This SoundPlayer plays a sound whenever the player hits a wall. Private startSoundPlayer = New System.Media.SoundPlayer("C:\Windows\Media\chord.wav") Public Sub New() ' This call is required by Windows Forms Designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. MoveToStart() End Sub
public partial class Form1 : Form { // This SoundPlayer plays a sound whenever the player hits a wall. System.Media.SoundPlayer startSoundPlayer = new System.Media.SoundPlayer(@"C:\Windows\Media\chord.wav"); public Form1() { InitializeComponent(); MoveToStart(); }
[!メモ]
最初の行 (public partial class Form1 : Form) は、これまでにも何度か見てきました。この行で重要なのは、class キーワードが含まれていることです。class キーワードは何度も使用されますが、これはどのプログラムにおいてもクラスが基本のビルド ブロックであるからです。
前の手順で、MessageBox.Show("Congratulations!"); というステートメントの MessageBox という単語の上にマウス ポインターを置いて、IDE のツールヒントを開きました。ここで、もう一度同じようにして、最初の行 (次の図を参照) について詳しく見てみましょう。
Tooltip
[!メモ]
最初の行には class キーワードが表示されています。これが頻繁に使用されるのは、コードはクラスにまとめられるからです。プログラムにクラスが含まれ、各クラスにメソッドが含まれ、各メソッドにステートメントが含まれます。多数の組み込みクラスがあり、MessageBox もその 1 つです。MessageBox クラスには、Show() というメソッドがあり、このメソッドを呼び出すと、メッセージ ボックスを開くステートメントが実行されます。そのほかにも、Button クラス、Label クラス、および Panel クラスを使用しました。それらのクラスでは、クラスのもう 1 つの側面であるプロパティの設定を行いました。クラスにはメソッドだけでなくプロパティも含めることができ、それらのプロパティを設定することで、動作を変更するステートメントをクラスで実行することができます。
この手順で作成する SoundPlayer もサウンドを再生するクラスです。SoundPlayer を new キーワードを使用して作成すると、ファイルからサウンドが読み込まれ、その Play() メソッドを使用して再生することができます。この SoundPlayer を使用して、プレーヤーが新しいゲームを開始するとき、つまりポインターが壁に触れてスタート地点からやり直しになったときに、Windows の Chord サウンドを再生します (startSoundPlayer という名前にしたのはそのためです)。
別のサウンドを使用する場合は、新しいステートメントの引用符で囲まれたパス (C:\Windows\Media\chord.wav) を、使用するサウンド ファイルのパスに置き換えます。
Windows フォーム デザイナーでフォームを作成する場合、IDE を使用して独自のクラス (ここでは、Form1 というクラス) を作成できます。コンストラクターの上にそのコード行を追加すると、前にボタンやラベルを追加したときと同じように、新しい SoundPlayer がフォームに追加されます。ステートメントはメソッドの外にあるため、複数のメソッドから SoundPlayer にアクセスできます。新しいステートメントをフォームのコード内のメソッドの外に記述する必要があるのはそのためです。Label コントロールの 1 つに finishLabel という名前を付けたのと同じ方法で、そのステートメントに startSoundPlayer という名前を付けています。
新しい SoundPlayer を作成するステートメントを追加し、startSoundPlayer という名前を付けると、ラベルやボタンなどのコントロールと同じように、IntelliSense ウィンドウに表示されるようになります。
複雑に思えるかもしれませんが、IDE で前に実行した手順と同様です。たとえば、IDE のツールボックスを使用してボタンまたはラベルをフォームに追加すると、新しいボタンまたは新しいラベルの作成に使用されるコード行が IDE で自動的に追加されます。作成するものが SoundPlayer であることを除けば、ここでも同じことを行っています (2 つ目の SoundPlayer については、チュートリアルの次の手順で作成します)。
続行または確認するには
チュートリアルの次の手順に進むには、「手順 7: サウンドを再生するコードのフォームへの追加」を参照してください。
チュートリアルの前の手順に戻るには、「手順 5: 各壁の MouseEnter イベント ハンドラーの追加」を参照してください。