2012-04-07 8 views
1

私は簡単なアプリケーションを作成しようとしています。C#XNAの動きがうまくいかない理由を説明できません

なぜか分かりませんが、左矢印または右の矢印をクリックすると、テクスチャはその位置を変更しません。

私は何かが不足していると確信しています、何が愚かに見えるかわからない。

メインファイル:http://paste.ubuntu.com/919662/

Character.cs:http://paste.ubuntu.com/919664/

Position.cs:http://paste.ubuntu.com/919665/

どうもありがとうございました。

答えて

3

UPDATED ANSWER:

真犯人は次のとおりです。

KeyboardStateキーボード=新しいKeyboardState();

変数名として 'キーボード'を使用することはできません。それはXNAのクラスです!あなたはそれを再宣言しています。したがって、あなたのキープレスはもはや検出されていません!代わりに、この使用します。

KeyboardState keyb = Keyboard.GetState(); 

をそして、あなたの参照を更新

にこの答えは、やや有効です。

あなたは文字

 C = new Character(100, 100, new Position(200, 200)); 

を初期化している。しかし、あなたが、あなたの更新で()メソッド:

 spriteBatch.Draw(myTexture, myVector, Color.White); 

CharacterクラスのPosの値を適切に変更していますが、これはmyTextureに関連付けられていません。実際には、画面上に「文字」を描くことさえありません。

TL; DR:キャラクタークラスを修正していますが、myTextureを描画しています。 Characterではなく、myTextureを保持するオブジェクトの座標を変更しています。

さらに、「文字」を画面に描画する場合は、独自のPosクラスの代わりにVector2Dを使用するのが最善の方法です。

もう一つ:

LoadContentであなたが

 myVector = new Vector2(C.Pos.Col, C.Pos.Row); 

を行っている。しかしドキュメントには明記: /// LoadContentはゲームごと一度と呼ばれ、 をロードするための場所であることになるが///あなたのすべてのコンテンツ。

これで問題を解決する方法がわかります。あなたはまだ質問がある場合は、私の答えの下にコメントを投稿してください。

+0

ご協力いただきありがとうございます。私はXNAを使い、概念を学び始めました。もう一度、ありがとう。 – Novak

関連する問題