問題タブ [xna-4.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - XP上のXNAGameStudio4.0にコンテンツインポーターとコンテンツプロセッサがありません
Visual C#2010ExpressとXNAGame Studio 4.0をXP(32ビット)マシンにダウンロードしてインストールしました。これを行うには、ファイルを個別にダウンロードする必要がありました。これを試したときにApp Hubパッケージがインストールされなかったためです。これは、WindowsPhoneのものと関係があります。
とにかく、PNGの透過性に問題があり、今日プロジェクトを実行に移しました。コンテンツインポーターとプロセッサ(プロパティ)の透過性を変更することで、これはWindows7マシンで正常に機能することがわかりました。
ただし、自宅のXPインストールでは、これら2つのボックスのドロップダウンメニューは空です。完全なアンインストールと再インストールを試みましたが、これは役に立ちませんでした。他に試すことができるものはありますか?
コードを正常に実行できますが、画像の透明度を取得できません。
私は基本的にこのページの画像に示されているドロップダウンがありません:
http://msdn.microsoft.com/en-us/library/bb199633(v=XNAGameStudio.40).aspx
興味深い追加:インポーターとプロセッサーを動作させるように設定し、プロジェクトを保存して家に持ち帰ると、設定が表示されて動作します。そのため、ドロップダウンメニューと使用可能な設定の間のリンクが完全に欠落しているようです。
c# - 実行時にXNAのパスからテクスチャをロードするにはどうすればよいですか?
XNAでRPGエディターを実行しようとしていますが、XMALファイルに書き込まれたパスからテクスチャをロードする必要があります。
私はいくつかの調査を行いましたが、ほとんどのソリューションはコンテンツパイプラインを変更するか、単に独自のパイプラインを作成しています。
c# - C#でメモリが使い果たされている場所を見つけるにはどうすればよいですか?
WP7プロジェクトでC#XNAを実行していますが、画面の変更の間にメモリを消費し、返さないため、最終的にメモリ不足の例外が発生します。
私は見てみましたが、この記憶がどこに向かっているのかを一生見つけることができません。
メモリが使用されている場所と、メモリがデバイスに戻されていない理由を確認する方法はありますか?
助けてくれてありがとう!
xna - DrawableGameComponentを使用せずにDrawOrderを変更する方法
別のSOの質問を読むと、DrawableGameComponent
sは前進していないようです。私はこれを自分で少し調べて、XNA Creators WebサイトのParticleサンプルを使用して、sの使用を取り除くことにしました。私が利用できるものがなく、例ではこれをパーティクルに使用しているという事実を除いて、すべてが正常にコンパイルされました。DrawableGameComponent
DrawOrder
DrawOrder
を使用しているかのように変更するにはどうすればよいDrawableGameComponent
ですか?
c# - Curve3D クラスを使用した 3D でのパス - 問題
私は現在、ランダム トラックの生成を含むプロジェクトに取り組んでいます (Z 軸の固定インクリメントとランダム化された X と Y ででこぼこのトラックを作成します)。期待どおりに機能する Catmull Rom 補間を使用してトラックを実装しています。これにより、9800 個のポイントが生成され、2 次元配列に格納されます。
私の主な問題は、トラックに沿ってオブジェクトをパスしようとしているということです(カメラの使用と、後でアバターが従うため)。現在、msdn ヘルプhttp://msdn.microsoft.com/en-us/library/microsoft.xna.framework.curve.aspxに従って Curve3D クラスを使用しています 。 「testCube」ベースの位置を割り当てる関数があります。値の時間と、catmull を含む配列の結果がオフになります。
今問題に; 私の立方体は広い意味でトラックを下りますが、トラックが進行するにつれて、頻度が増加して前後にジャンプするように見えます。干渉する可能性がある他のコードを排除しました。
私は現在使用しています:
basicPoints 配列は、catmullRom 補間に使用した元の 100 ポイントを保持し、drawLocValues は補間の結果です (それぞれ 100 と 10000 の値)
testCube が正しい方向に向かっているのではなく、トラックをまっすぐ進んでいない理由についてのアドバイスをいただければ幸いです。余談ですが、両方のベクトル配列の値は、チェックしたとおり正しいです (そして、トラック自体が正しく描画されます)。また、すべての xyz ポストおよびプレループのカーブ クラス内で CurveX.postloop.CurveLoopType.Linear を使用しています。
ありがとう
編集: 要求に応じて接線コードを設定:
あなたの質問に答えるには、はい、それは本質的にラッパーです。問題は、画面に出力された testCube.position.Z にあるようです。問題なく開始されますが、時間の経過とともに、値が増加し続けて倍増し始めます。一般的に言えば、前進の勢いを維持しますが、より良いものを求めています。それが前方に吃音し、その後後方に吃音するなど。
これまでの返信ありがとうございます
c# - Xna 武器クラス内に弾丸を作成する必要があります
基本的に弾丸を含むすべてを生成するgameplay.csがあります。
ゲームプレイでは、地形や他のキャラクターでヒット検出を行うために弾丸にアクセスする必要があります。
ゲームプレイ クラスではなく、武器クラス内で弾丸をインスタンス化します。
しかし、それは弾丸を追跡してヒットテストを行うことができないことを意味します....
ここでいくつかのガイダンスが必要です。私が C# と xna の初心者であることを期待してください。
c# - ゲームアーキテクチャ
作成しているXNAゲームについて質問がありますが、これは将来のゲームの一般的な質問でもあります。私はポンゲームを作っていますが、どこで何を更新すればよいか正確にはわからないので、私が何を意味するのかをよりよく説明します。ゲーム、パドル、ボールのクラスがあり、たとえば、ボールと画面の制限またはパドルとの衝突を確認したいのですが、これを行うには2つのアプローチがあります。
より高いレベルのアプローチ-パドルとボールのプロパティを公開し、ゲーム上で公開します。衝突のチェックを更新しますか?
低レベルのアプローチ-必要なすべての情報(画面の制限とパドル情報)をボールクラス(パラメーターごと、または一般的なパブリック静的クラス)とBall.Updateに提供します。衝突をチェックしますか?
より一般的な方法での私の質問は次のとおりです。
オブジェクトは、何らかの形で提供されている上位レベルからの依存関係があっても、それ自体を更新および描画する方法を知る必要がありますか?
また
Game.UpdateまたはGame.Drawでより高いレベルで処理するか、マネージャーを使用してコードを簡略化する方がよいでしょうか。
これは、すべてのゲームに当てはまるゲームロジックモデルの質問だと思います。質問を明確にしたかどうかはわかりませんが、そうでない場合は、遠慮なく質問してください。
xna - Screen Space Ambient Occlusion XNA 3.1 の例の SSAOeffect.fx が XNA 4.0 で機能しない
Screen Space Ambient Occlusion の例を XNA 3.1 から XNA 4.0 に変換しようとしています。シェーダー ファイルのこの奇妙な問題を除いて、ソースのすべての問題を修正しました。Shawn Hargreaves のブログのガイドに従って、シェーダーに関するすべての明らかな問題を調べて修正しましたが、コンパイルすると、512 の命令スロット制限をはるかに超える 620 の命令スロットを使用します。これが XNA 3.1 では機能したのに、XNA 4.0 では機能しなかったのはなぜでしょうか?
ファイルの 3.1 コピーからの変更は非常に最小限で、いくつかの関数の名前を変更しただけです。以下は、現在の形式の完全なシェーダー ソースです。これがコンパイルされる命令スロットの数を減らすための助けに非常に感謝します.
xna - 最適化を念頭に置いてテクスチャレジスタとサンプラーを理解する
3つの異なるxna効果があり、1つは初期化、1つは反復、もう1つは最終化と呼ばれます。
Initialiseはテクスチャ入力を受け取らず、3つのターゲットにレンダリングします。Iterateは、これら3つをテクスチャ入力として受け取り、3つのターゲットにレンダリングし、iterateは複数回実行されます。Finalizeは1つのテクスチャ入力を受け取り、1つのターゲットにレンダリングします。
いくつかのヘルパークラスがありますが、以下のレンダリングループから何が起こっているのかは明らかです。
私のテクスチャ宣言は次のマクロを使用しており、出力構造体とともに次のように定義されています。
私が疑問に思っているのは、入力と出力のレンダリングターゲットを異なるテクスチャレジスタに配置し、2つの反復ピクセルシェーダーを交互に実行して、最初の3つのレジスタから読み取り、最後の3に書き込み、もう1つを最後の3つと最初の3つに書き込みますか?
レンダリングターゲットと入力テクスチャの設定には何度もコストがかかると思いますが、これはもう必要ありません。これはそれを回避しますか、そしてそれはそれだけの価値がありますか?
シェーダー内のコードを個別に最適化できることに注意してください。必要に応じて、個別の質問をします。
3d - 固定高でクォータニオン カメラを移動する
私はC#で書かれたクォータニオンカメラを持っています(恥知らずにオンラインチュートリアルから取られました)。Vector3 として表されるワールド空間でのカメラの位置を、カメラが「向いている」方向に変換しようとしています。ただし、カメラを Y 軸の固定高さにとどめたい (Y 軸を垂直に上下に見て回転することはできないという点で、カメラが「上下逆さま」になることはないと仮定します)。
簡単に言えば、Command & Conquer などの RTS ゲームのカメラと同じようにカメラを動作させたいのです。前方に押すと、マップを「上」に移動し、地形の上の一定の高さに留まります。カメラの速度は、カメラが世界を見下ろす角度によって決まるため、以下に示す私の素朴な試みでは不十分です。
上記の mPosition は、ワールド位置を表す Vector3 です。mInverseViewMatrix は、ビュー マトリックスの逆です。
私は XNA と C# を使用していますが、クォータニオンとベクトル操作に関する一般的なアドバイスはおそらく役に立ちます。