キーボード入力を検知する

Keyboard キーボード入力を検知するには、KeyboardクラスのGetStateメソッドを使います。 GetStateで取得できるKeyboardStateクラスでは、IsKeyDownメソッドでそのキーが押されているかを判定できます。 また、GetPressedKeysメソッドで現在押されているキー一覧を取得することができます。   Keyboardクラスを使うには以下の名前空間を追加します。 using Microsoft.Xna.Framework.Input;   KeyboardState kState = Keyboard.GetState(); if (kState.IsKeyDown(Keys.Space)) { //スペースキーが押されたとき } if (kState.IsKeyUp(Keys.A)) { //Aキーが押し上げのとき } foreach (Keys k in kState.GetPressedKeys()) { }   サンプル public class Game1 : Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; SpriteFont font; string text; public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory =…

マウス入力を検知する

マウス入力 Windowsストアアプリにおいては、タッチパネルでないノートパソコンやデスクトップでも遊べるように、マウス入力にも対応する必要があります。 WindowsPhoneはマウスがないので対応する必要はありません。   Mouse マウス入力を検知するには、MouseクラスのGetStateメソッドを呼びます。 取得されたMouseStateクラスにはさまざまなマウスの状態が入っています。   Mouseクラスを利用するには以下の名前空間を定義します。 using Microsoft.Xna.Framework.Input;   そして、MouseクラスのGetStateメソッドによってマウスの状態を検知します。 MouseState mState = Mouse.GetState(); int mouseX = mState.X; int mouseY = mState.Y; ButtonState bLeftState = mState.LeftButton; if (bLeftState == ButtonState.Pressed) { //マウスボタンが押されたときの処理 }   サンプル public class Game1 : Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; SpriteFont font; string text; public Game1() {…

タッチ入力を検知する

タッチ入力 WindowsストアアプリやWindowsPhoneのゲームにおいて、タッチ入力というものはもっとも比重が置かれるべき入力方法です。 シングルタッチだけではなく、マルチタッチにも対応しなければならないので開発者は複数の指のタッチを検知する必要があります。   TouchPanel タッチ入力を検知するためにはTouchPanelクラスのGetStateメソッドを使います。 GetStateメソッドで取得できるTouchCollectionはコレクション型であり、現在タッチしている数だけコレクションに要素が入ります。   TouchPanelを使うには以下の名前空間を追加します。 using Microsoft.Xna.Framework.Input.Touch;   GetStateメソッドでタッチのコレクションを取得し、foreachで順に調べていきます。 コレクションの要素であるTouchLocationクラスは、Positionプロパティによってタッチ位置を、Stateプロパティによってタッチ状態を取得することができます。 TouchCollection collection = TouchPanel.GetState(); foreach (TouchLocation state in collection) { int id = state.Id; float tPosX = state.Position.X; float tPosY = state.Position.Y; TouchLocationState tLState = state.State; if (tLState == TouchLocationState.Pressed) { //タッチされたときの処理 } }   サンプル public class Game1 : Game…

文字を描画する

SpriteFont MonoGameで文字列を描画するときもwavサウンドを再生するときと同じようにxnb形式にコンパイルする必要があります。 XNAGameStudio4.0.4をまだインストールしていない人もしくはコンテンツビルド用プロジェクトを作成していない人は「サウンドを再生する」を参照して、インストールとコンテンツビルド用のプロジェクトを作成してください。   MonoGameにおいて文字を描画するためのフォントはSpriteFontと呼ばれ、xml形式で記述された文章にフォントの名前や特徴を記入し、xnbにコンパイルします。     SpriteFontを作成する ではコンテンツビルド用プロジェクトに新しくSpriteFontを作成しましょう。 DummyProjectContentプロジェクトを右クリックして、追加→新しい項目を押します。     VisualC#からSpriteFontを選択し、SpriteFontの名前を入力し、OKを押します。     SpriteFontが作成できたことが確認できたら、一度DummyuProjectの方をビルドしましょう。     ではコンパイルできたxnbファイルを取得します。 DummyProjetを右クリック→「エクスプローラでフォルダーを開く」を押します。   DummyProject/Bin/X86/Debug/Contentディレクトリに入っているTestFont.xnbファイルをデスクトップにコピーしておきましょう。     ではMonoGameの方のProjectに戻り、Contentフォルダを右クリックして追加→既存の項目を押し、先ほどデスクトップにコピーしたSpriteFontのxnbファイルを追加しましょう。     コンパイル済みSpriteFontを追加することができました。   TestFont.xnbのプロパティウインドウから、ビルドアクションを「コンテンツ」にしましょう。   SpriteFontを描画する では先ほどつくったSpriteFontを使って実際に文字列を描画します。 Game1.csのメンバにSpriteFontクラスを追加します。 SpriteFont font;   LoadContentメソッドでSpriteFontを読み込みます。 protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); font = Content.Load<SpriteFont>(“TestFont”); }   DrawメソッドではSpriteBatchのBeginとEndの間にDrawStringメソッドで第一引数にSpriteFont、第二引数に描画したい文字列(英字文字列)をいれます。 protected override…

サウンドを再生する

コンテンツパイプライン XNAでは画像ファイルやサウンドファイルなどの読み込みを高速化するためにあらかじめコンテンツをコンパイルしておくコンテンツパイプラインという仕組みがあります。 サウンドファイルであるwavファイルはこのコンテンツパイプラインを通して一度xnbファイルに変換しなければなりません。   XNAGameStudio4.0 すでに廃止されたXNAGameStudioですがVisualStudio2013には対応しています。 MonoGameのコンテンツプロジェクトがVisualStudio2013に対応していないため、しばらくはこちらのXNAGameStudio4.0のプロジェクトテンプレートを使います。   こちらのサイトからXNA GameStudio4.0.4をダウンロードし、インストールします。   WAVファイルをコンパイルする インストールできたら、MonoGameのプロジェクトを置いているソリューションを右クリックし、追加→新しい項目を押しましょう。       XNA GameStudioのテンプレートの中から、Windows Game(4.0)を選択し、プロジェクト名は「DummyProject」とし、OKを押しましょう。     DummyProjectとDummyProjectContentの2つのプロジェクトができました。   続いてDummyProjectContentの方のプロジェクトを右クリックして、追加→既存の項目から再生したいサウンド(wavファイル)を選択しましょう。     wavファイルを追加することができたら、ソリューションエクスプローラからソリューション全体をビルドしましょう。   これでxnbファイルを作成することができました。DummyProjectの出力ファイルをみて、xnbファイルを取得しましょう。 DummyProjectを右クリックして、「エクスプローラでフォルダーを開く」を押します。     エクスプローラでDummyProjectを開くと、 bin/x86/Debug/Contentディレクトリにxnbファイルが作成できています。 これをデスクトップにコピーしておきましょう。     WAVファイルを再生する xnbファイルを作成することはできたのでこれをMonoGameのプロジェクトに追加しましょう。 MonoGameのプロジェクトのContentフォルダを右クリック→追加→既存の項目で先ほどのxnbファイルを追加しましょう。     xnbファイルを追加することができました。         次に、追加したxnbファイルのプロパティを見ます。 ビルドアクションを「なし」から「コンテンツ」に変更しましょう。   ではサウンドファイルを再生してみましょう。 Game1.csファイルに名前空間を追加します。 using Microsoft.Xna.Framework.Audio;  …