タグ付けされた質問 「xna-4.0」

XNA Game Studio 4.0は、Visual Studioを使用してWindows Phone、Xbox 360コンソール、およびWindowsベースのコンピューター向けのゲームを作成できるプログラミング環境です。


8
彼らはそれをどうしましたか?テラリアの何百万ものタイル
私はTerrariaに似たゲームエンジンを主に挑戦として取り組んできましたが、そのほとんどを理解しましたが、何百万もの相互作用/収穫可能なタイルをどのように扱うかについて頭を包み込むように思えませんゲームは一度に持っています。私のエンジンでは、Terrariaで可能なことの1/20である約500.000のタイルを作成すると、フレームレートが60から約20に低下します。気を付けてください、私はタイルで何もしていません。メモリに保存するだけです。 更新:私が物事を行う方法を示すためにコードが追加されました。 これは、タイルを処理して描画するクラスの一部です。犯人は「foreach」の部分で、空のインデックスも含めてすべてを繰り返すと推測しています。 ... public void Draw(SpriteBatch spriteBatch, GameTime gameTime) { foreach (Tile tile in this.Tiles) { if (tile != null) { if (tile.Position.X < -this.Offset.X + 32) continue; if (tile.Position.X > -this.Offset.X + 1024 - 48) continue; if (tile.Position.Y < -this.Offset.Y + 32) continue; if (tile.Position.Y > -this.Offset.Y + …

2
XNA 4.0でスプライトスケーリングのテクスチャフィルタリングを無効にするにはどうすればよいですか?
XNAで拡大しようとしているスプライトがありますが、XNAはそれを滑らかにして見苦しくする何らかのテクスチャフィルタリングを適用しています。補間の代わりにピクセルの倍増を行うだけです。どうすればそれを達成できますか?

4
XNA 3.1と4.0の違いは何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 私は数か月間XNAから離れていましたが、XNAに戻りたいと思います。現在取り組んでいるゲームがありましたが、XNA 3.1で行われました。2つの違いは何ですか?更新する価値はありますか?
17 xna  c#  xna-4.0 

2
新しいXNA 4.0ゲームプロジェクトのエラー-適切なグラフィックカードが見つかりません
これを修正する方法についてのアイデアはありますか?XNA 3について私が覚えているのは、アプリケーションをゼロから実行すると、何もレンダリングされずに青いウィンドウが表示されるということでした。 助言がありますか? 編集! プロジェクトを右クリックして[プロパティ]を選択し、ゲームプロファイルを[HiDefを使用]から[リーチを使用]に変更しました。これで、見慣れた青い色合いのウィンドウが期待どおりに表示されます。 制限されたAPIを選択した場合、何が失われますか?また、なぜ機能するためにこれを選択しなければならなかったのですか?
16 xna  xna-4.0 

1
ウィンドウのサイズ変更/移動中にXNAが更新を一時停止しないようにするにはどうすればよいですか?
XNAは呼び出しUpdateを停止Drawし、ゲームウィンドウがサイズ変更または移動されている間。 どうして?この振る舞いを防ぐ方法はありますか? (ネットワークメッセージがポンプされていないため、ネットワークコードの同期が取れなくなります。)
15 xna  c#  xna-4.0  win32 

3
2D空間ゲームでの等尺性グラフィックスの偽造
最初に、描画の問題が何であるかを正確に知っており、それを解決する方法についてさまざまなアイデアを持っています。等尺性の「錯視」が維持されるように、どのフレームを描画するかを調整する方法を見つけ出します。 私は宇宙で行われる2D鳥瞰図ゲームを書いています。Up is Northの世界でアイソメグラフィックを使用しようとしています。従来のアイソメゲームのようなゲーム世界の回転はありません(ゲームは空間で行われ、地形はありません)。ここでは例のスプライトは、私が使用しようとしていますされていますhttp://cell.stat-life.com/images/stories/AsteroidOutpost/Spaceship64.pngそれは別名(35度の視野角と自身の垂直軸を中心に回転だ64回、 iso)。画像が生成されたため、これを変更できます。 わかりやすくするために、北(上)が0度、東(右)が90度になるように指示しました。 私の問題は、使用する3Dプレーンの違いが原因で、スプライトが常に、ゲームが考えるところに直面しているように見えないことです。用語を正しく使用しているかどうかはわかりませんが、私の宇宙船は1つの平面上で回転しており、ビュー平面は物がそれ自身の平面上で回転することを期待しています。問題の描写は次のとおりです。 http://cell.stat-life.com/images/stories/AsteroidOutpost/ProjectionIssue.png 左側にはサイドビューがあり、右側にはトップダウンビューがあります。上部には、世界の宇宙船/スプライトシートビューがあります。一番下には、画面に描画されたときのスプライトの外観があります。 右上には、宇宙船がどのように回転したかを簡略化したバージョンがあります(各フレーム間が均等に分離されています)。右下には、特定の角度が画面に描かれたときにスプライトが向いているように見える角度です。問題は約45度で最も顕著です。これは、船が向いているはずの方向に向けられた「スクリーンプレーン」ラインでオーバーレイされた画像です。http : //cell.stat-life.com/images/stories/AsteroidOutpost/Spaceship64RedLine.png赤い線は常に船とまったく同じ方向に向ける必要がありますが、ご覧のとおり、投影の問題が問題を引き起こしています。この問題を十分に説明していることを願っています。 編集: 赤い線はスクリーン平面上で回転しますが、宇宙船は「船平面」上で回転します。したがって、船の角度と描かれたときのスクリーン角度の大きな違いがあります。 編集を終了 この船が一方向に外れたターゲットにレーザービームを発射しているとき、それがまっすぐ前方に発射されるべきであるとき、それはかなり奇妙に見えます。 だから...私が思いついた解決策は次のとおりです: 等角図を偽造するのをやめる、大きくなる、または家に帰る。すでに私の世界を回転させます。(PS:これで問題が解決しますよね?) スプライトシートを(なんとかして)変更して、モデルが表示される「スクリーンアングル」を表すフレームを作成します。したがって、45度の画像を要求すると、実際には画面上で45度の方向を向いているように見えます。 スプライトレンダリングシステムを変更して、スプライトシートとは異なるフレームを(なんとかして)取得します。「通常の」フレームを取得すると面白いように見えることを知っています。そのため、45度のフレームを取得する代わりに... 33度のフレーム(推測のみ)を取得して、ユーザーに正しく見えるようにします。 3Dを使用するだけです!とても簡単です 1つ:どのソリューションをお勧めしますか?私はそれが間違っていることを知っているにもかかわらず、2に傾いています。私はスプライト生成ツールに完全にアクセスできることを忘れないでください。方法3は2番目の選択肢です。どちらの方法でも、目的の結果を得るには、角度に数学を適用するだけです。ところで、私はそこに#4を冗談として追加しました。3Dに移行したくありません。 2つの場合:方法2または3を使用して、入力または出力角度を調整するにはどうすればよいですか?3Dプロジェクション、3Dマトリックス(2Dマトリックスは言うまでもありません)、および他の数学を使用して望みの結果を得るには、それほど得意ではありません。 ここで大声で考えてみましょう:船が見たい方向に向いている単位ベクトルを(スクリーンプレーンで)取得し、それを船のプレーンに投影し、その投影されたラインと飛行機の角度北は、表示したい船のグラフィックの角度が必要です。正しい?(#3の解決策?)男...私はそれを解決できません。 編集: 私は問題を静的な画像で視覚化するのが難しいことを知っているので、Sprite Library Visual Testerをコンパイルして問題を表示しました:http : //cell.stat-life.com/downloads/SpriteLibVisualTest.zip XNA 4.0が必要ですこのアプリケーションは単純にスプライトを回転させ、その中心点から船が向いているとゲームが考える角度で外側に線を引きます。 9月8日編集 「大声で考える」パラグラフの続き:プロジェクションを使用する代わりに(ハードに見えるため)北向きの単位ベクトル(0x、1y、0z)を取り、マトリックスを使用して角度に回転できると考えていますスプライトは実際に向いているので、X軸を中心に「ビューイングプレーン」から「スプライトプレーン」まで外側に回転させてから、...平らにしますか?XおよびYのみを使用して(Zを無視して)ベクトルを(本質的に投影して)表示面に戻します。次に、その新しい平坦化されたベクトルを使用して、その角度を決定し、それを使用して...何かをすることができました。後でもっと考えます。 9月8日編集(2) 私はいくつかの成功を収めて上から私のアイデアをフォローしようとしました!だから...赤い線を宇宙船からまっすぐに出ているように見せるために(テスト目的のみ)、私は次のことをしました: Vector3 vect = new Vector3(0, 1, 0); vect = Vector3.Transform(vect, Matrix.CreateRotationZ(rotation)); vect …

2
2D XNAゲームで電気/照明/テスラコイル効果を作成しますか?
:私はこのビデオに非常に似て2点間の電気のビームを作成したいhttp://www.youtube.com/watch?v=eMJ8-56L3Lcを。効果は非常に動的で、ポイント間の可変長と擬似ランダムな動きにより、そのようなことをどのように達成するか想像できません。私を正しい方向に導く可能性のある有用な情報はありますか? XNA 4.0 Reachプロファイルを使用していることに注意する必要がありますが、Windows Phoneを対象にしていないため、カスタムシェーダーでも大丈夫です。

1
グラデーションフォグオブウォーを作成するにはどうすればよいですか?
教育目的でトップダウンの2D RTSゲームを作成しています。現在、私は本当にStarcraftのデザイン/アイデアをコピーしています。Fog Of Warも実装する必要があると判断しました。 私の期待: 現在探索されているエリア(ユニットがあります)を点灯する必要があります。 事前に探索されたエリア(ユニットがあった)はより暗くなりますが、ユニットがそこにあったときに何があったかを示します。 探索されていないエリア(ユニットが行ったことのないエリア)は完全に黒である必要があります。 各タイプから勾配の変化があるはずです(たとえば、以前に探索されたものから探索されたもの)。下の図を参照してください。 大まかな詳細:どうすればいいですか?
14 2d  xna-4.0  rts  fog-of-war 

3
タイルの間に線があるのはなぜですか?
トップダウンXNAゲームを作成しています。マップはタイルによって作成されます。私が最近気づいた問題は、タイル間の線の「グリッド」です。カメラの位置に応じてのみ表示されることがあります。XNAにポジショニングを処理させますが、これらの行が表示されるのはなぜですか? 以下に線のある画像を示します。 ただし、カメラを少し動かした後、魔法のように表示されるはずの状態に戻ります。 助けてくれてありがとう! 編集: これは私がソースコードに対してできる最善の方法です。これは非常に大きなプロジェクトであり、レンダリングは複数の領域で行われます。 メインレンダリングループ タイルなどの動的要素の場合: spriteBatch.Begin(SpriteSortMode.Deferred, Nothing, SamplerState.LinearClamp, Nothing, Nothing, Nothing, Matrix.CreateTranslation(CameraX, CameraY, 0)) Mode.Render(spriteBatch, False) For Each j As [Delegate] In DynamicInjectionList j.DynamicInvoke(spriteBatch) Next DynamicInjectionList.Clear() spriteBatch.End() Mode.Render: For x As Integer = 0 To GRIDMAX - 1 For y As Integer = 0 To GRIDMAX - …

1
XNA / Blenderを使用して3Dキャラクターモデルに機器を追加するにはどうすればよいですか?
私はかなりの数のBlenderチュートリアルを見てきましたが、サブモデルを交換する方法の例をまだ見ていません。私の質問は、キャラクターモデルの装備をどのように交換するのですか?具体的には、XNAのキャラクターモデルが保持している衣服やアイテムを動的に追加/交換できるようにしたいと考えています。理想的には、アイテムはキャラクターモデルの骨構造に沿っているでしょう。 例えば; XNAの裸のキャラクターから始めて、キャラクターにaを持たせ、キャラクターのアニメーションに続くチェーンメールを身に付けさせたいと思います。また、ゲーム中いつでもこの装備を剣とプレートメールに切り替えられるようになりたいです。機器の組み合わせごとにモデルを作成するのは避けたいです。骨(剣の骨など)と1つのモデルのメッシュを別のモデルの骨(右手の骨など)に追加する方法はありますか? ありがとう…
14 xna-4.0  blender 

2
WP7が電話でクラッシュする原因となる曲を再生するが、エミュレーターではクラッシュしない
XNA 4.0を介してWindows Phone 7で再生を開始し、継続的にループするゲームに曲を実装しようとしています。エミュレーターでは、これは正常に機能しますが、電話に展開すると、ホーム画面に戻る前に黒い画面が表示されるだけです。問題の不正なコードは次のとおりです。このコードをコメント化すると、電話でアプリが正常に実行されます。 // in the constructor fields private Song song; // in the LoadContent() method song = Content.Load<Song>("song"); // in the Update() method if (MediaPlayer.GameHasControl && MediaPlayer.State != MediaState.Playing) { MediaPlayer.Play(song); } 曲ファイル自体は、長さが2:53の2.28mb .wmaファイルで、ビットレートは106kbpsです。 繰り返しますが、これはエミュレーターでは完全に機能しますが、電話ではまったく動作しません。あなたが提供できる助けをありがとう!

1
XNAで特定のリソースのみを破棄しますか?
XNA 4.0のContentManagerには、すべてのアセットをアンロードするUnload()メソッドが1つしかありません。 常にロードされるいくつかの「グローバル」アセットが必要ですが、レベルが変更されたときにアンロードされるレベルごとのアセットが必要です。 Level.csクラスの一部としてContentManagerの2番目のインスタンスを作成する必要がありますか?または、Game.Contentを使用してから、読み込むアセットで.Disposeを呼び出す必要がありますか?または、ここで概説したように、ReadAsset関数の上に独自のContentManagerを作成する必要がありますか?
13 xna  xna-4.0 

5
タイルベースの2Dプラットフォーマーでの45°の傾斜
タイルベースのプラットフォーマーに単純な45°の傾斜を持たせたいのですが、アルゴリズムをダウンさせることはできません。コードとビデオを見てください、多分私は明らかを見逃していますか? //collisionRectangle is the collision rectangle of the player with //origin at the top left and width and height //wantedPosition is the new position the player will be set to. //this is determined elsewhere by checking the bottom center point of the players rect if(_leftSlope || _rightSlope) { //Test bottom …
12 xna  c#  xna-4.0  platformer 

2
XNAを使用したゲームアーキテクチャに関する質問
だから私はついにXNAで遊んで、2Dゲームを作ることをいじっていました(iOSで開発した友人からたくさんのアート資産があります) 多くのことは簡単に実行できるように見えますが、ほとんどの文学(たとえば、私が買った本)は2Dにあまり注意を払っていないので、私はたくさんのものに困惑しています。 私は、以下の質問についての明確化またはより多くの情報を指摘されていることを本当に感謝します: ゲームサービスのポイントは何ですか?他のGameComponentがオブジェクトを取得できるようにオブジェクトをサービスとして登録するイディオム全体を理解していますが、これを単純に公開または静的にするだけではどうでしょうか?たとえば、私の本では、Game.csクラスにSpriteBatchオブジェクトを登録することを推奨しています。とにかくGameのインスタンスは1つだけ(シングルトン)でなければならないので、これを単純にパブリック/静的にするのがどのように好ましいのかわかりません。 GameComponentまたはRenderableGameComponentから継承する必要がある場合、私は混乱しています。私はすべてのエンティティが単一のマネージャーによって作成/所有され、他の事柄についても同じになるように、マネージャー/コントローラーの設計に従うことを試みています。現在、各Manager / ControllerにGameComponentを継承させていますが、GameオブジェクトがすべてのManagerを所有し、それらの更新を手動で呼び出して描画することで、これをどのように解決できますか? ContentLoad()の前に Initializeが呼び出されることに気付きました。Initializeでエンティティ(スプライト、プレーヤーなど)の一部を作成したいので、この迷惑を見つけましたが、それらをロードすることはできません。読み込むための呼び出しがまだ行われていないため、SpriteSheetsまたはTextures。私はおそらく間違って初期化していますか、または人々はContentLoadのさらに下のテクスチャを割り当てるだけですか? それらは本当に理解していないという私の最大の「WTF」のようです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.