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

XNAはMicrosoftによるゲームフレームワークで、Windows、Windows Phone、Xbox 360への展開を可能にします。

1
「ステンシル化された」スプライトを描画してそれらを光らせる
現在、私のゲームでは、XNAのSpriteBatchを使用して何もレンダリングしていません(Farseer Physicのデバッグビューを使用しています)。 XNAのみを使用します。私の2番目の質問は、これらのステンシルスプライトを描画したら、「ステンシル」ラインに次のようなグロー効果をどのように与えるのでしょうか。 私はこれまでにこのようなことをしたことがないので、それは私にとって非常に混乱する経験です。ポインタはありますか?
8 xna  c#  rendering  lighting 

2
ベクトルを回転させる
一人称視点のカメラで、視線方向をd1からd2にスムーズに変更したい。後者の方向は、目標位置t2によって示される。 これまでのところ、正常に機能する回転を実装しましたが、回転の速度は、現在の方向が目的の方向に近づくほど遅くなります。これは避けたいものです。 これまでに作成した2つの非常に単純なメソッドを次に示します。 // this method initiates the direction change and sets the parameter public void LookAt(Vector3 target) { _desiredDirection = target - _cameraPosition; _desiredDirection.Normalize(); _rotation = new Matrix(); _rotationAxis = Vector3.Cross(Direction, _desiredDirection); _isLooking = true; } // this method gets execute by the Update()-method if _isLooking flag is up. …
8 xna  c#  camera  rotation  vector 

2
曲のセクションを正しくループするには?
私は私のゲーム用に小さなミュージックエンジンをC#とXNAでプログラミングしています。その1つの側面は、曲からセクションをループする可能性です。たとえば、私の曲にはイントロパートがあり、曲が最後(または他の特定のポイント)に達すると、イントロパートが終わったところにジャンプして戻ります。(A-B-B-B ...) 今私はIrrKlankを使用していますが、これは隙間なく完璧に機能していますが、問題があります。 どこに戻るかという点は少し不正確です。ここにいくつかのサンプルコードがあります: public bool Passed(float time) { if ( PlayPosition >= time ) return true; return false; } //somewhere else if( song.Passed( 10.0f ) ) song.JumpTo( 5.0f ); ここで問題は、曲が10秒経過しても、10.1fまで数ミリ秒再生され、その後5秒にジャンプすることです。それはそれほど劇的ではありませんが、私のニーズには非常に不正確です。私はそれをそのように修正しようとしました: public bool Passed( float time ) { if( PlayPosition + 3 * dt >= time && PlayPosition <= time …
8 xna  music 

3
パスの最後で移動オブジェクトをスムーズに停止させるにはどうすればよいですか?
この質問の言い方は十数通りありますが、私の考えを一致させるために、私は目の前の問題に合わせてそれを表現しています。 そこで、指定されたポイントから別のポイントに移動し、最初のポイントに戻って、2つの間を直線で通過できるようにするフローティングプラットフォームを作成しています。ただし、少し面白くするために、プラットフォームにいくつかのルールを追加したいと思います。 ワールドデータのタイル値全体の複数を移動するようにコーディングしています。したがって、プラットフォームが静止していない場合、少なくとも1つのタイル幅全体またはタイル高さを移動します。 1つのタイルの長さ内で、停止から指定された最大速度まで加速させたいと思います。 1つのタイルの長さの距離に達したら、特定のタイル座標で停止するまで減速し、逆のプロセスを繰り返します。 最初の2つの部分はそれほど難しくありません。基本的に、3番目の部分では問題があります。プラットフォームがタイル座標で正確に停止するようにしたいのですが、加速度で作業しているので、1つのタイルの長さに達したら、プラットフォームの現在の速度を格納する値に反対方向の加速度を適用し始めるのは簡単に思えます。距離(タイルが複数のタイル長を移動していると仮定しますが、単純にするために、それがそうであると仮定しましょう)-しかし、問題は、この効果を生み出すために増加する加速の正しい値は何でしょうか?どうすればその値を見つけることができますか?
8 xna  2d  xna-4.0  physics 

3
XNA / C#からC ++に移行しますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 6年前休業。 しばらくの間、私はゲームの設計と開発のためにXNAと協力してきました(ただし、個人用のATMについてのみです)。全体として、私はXNA自体の主要なファンであり、全体的に「気分」です。ただし、次の事実により: XNAはサポートが不足しているようです(Metroサポートなし、2010年以降のアップデートなしなど)。 私はゲーム開発業界で就職しようと計画しています。C++が支配的であるため、それに慣れることは非常に役立ちます XNAはWindows(非メトロ)とXbox 360のみをサポートしていますが、私はMacと(それほどではありませんが)Linuxのサポートに関心があります。 私は主言語としてC ++に移行しようとしています。ただし、現時点では生のDirectX / C ++の学習に焦点を当てたくないので、より高いレベルのC ++ API(XNAとほぼ同じレベルのものを探していますが、少し低いレベルのものが良いでしょう) )XNAに似た感触。それで、C#/ XNAからC ++に切り替える誰かにとって、管理されていないC ++で実行されているにもかかわらず、XNAに類似したAPIの私の最良の選択は何でしょうか?
8 xna  c++ 

1
XNAのContentManagerがシリアル化のためにジェネリック型パラメーターに従うのはなぜですか?
ようやく問題の根底に達し、私の最善の解決策は何なのかと思っています。つまり、ReflectiveReaderシリアル化されているオブジェクトにジェネリック型のインスタンスが格納されていなくても、XNA がジェネリック型パラメーターに反映されるという問題があります。 例がこれを最もよく示しています。次のモデルクラスを検討してください。 namespace Model { using System.Collections.Generic; using Microsoft.Xna.Framework.Graphics; public abstract class Entity { } public sealed class TestEntity : Entity { public Texture2D Texture { get; set; } } public abstract class EntityData { } public abstract class EntityData<TData, TEntity> : EntityData where TData : EntityData where TEntity …

1
ゲームの経過時間がXNAの合計ゲーム時間と異なるのはなぜですか?
私が使用しての3つの異なる方法をしようとしていたElapsedGameTimeし、TotalGameTimeそれに応じて描かれた/、私は完全に一致したいので、そのすべてが更新されます。 私が試したので、私は非常に最初の更新ということを学んだ、ElapsedGameTimeとTotalGameTimeの両方0です。 2番目の更新ElapsedGameTimeは0.0166667で、これは正しい(毎秒60回の更新)です。しかしTotalGameTime、0です。理由はわかりません。 したがって、3回目の更新(time += gameTime.ElapsedTime)から追加を開始した場合、ElapsedGameTimeはに等しくなりますTotalGameTime。それ以外の場合は、常に0.0166667の差があります。 誰かが私にそれを説明できますか? 更新:コード using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Media; using System.Diagnostics; namespace TestTime { class TimeTest2 { TimeSpan totalTimeElapsed; TimeSpan frequency = TimeSpan.FromSeconds(5.5f); int times = 0; int timesCheckpoint …
8 c#  xna 

1
C#/ XNAゲームでIronPythonコンポーネントと通信するにはどうすればよいですか?
私のXNAゲームはコンポーネント指向であり、位置、物理表現、レンダリングなどのさまざまなコンポーネントがあり、すべて基本Componentクラスを拡張しています。プレーヤーと敵にも、現在C#で定義されているコントローラーがあります。それらをIronPython(Pythonの.NET実装)を介してPythonスクリプトに変換したいと思います。私の問題は、これらのスクリプトの操作方法がわからないことです。 C#アプリケーションへのIronPythonの埋め込みの例は、Pythonスクリプトをコンパイルし、Pythonを介してコントローラーのUpdateメソッドを呼び出すスクリプトコンポーネントのようなものを作成する必要があることを示唆しています。 。 研究で何かが足りないように感じます。そこなければならないスクリプトをロードするための方法であること、(いずれかのC#のPythonスクリプト内または中)Pythonオブジェクトをインスタンス化して、その後、持っている直接私のC#コードでそのPythonオブジェクトへの参照を。 IronPythonオブジェクトを直接操作する方法はありますか、またはラッパーが必要ですか?

1
XNAスプライトフラッシュ効果
私はスプライトのすべての不透明なピクセルを白でレンダリングする方法を探しています(プレーヤーがダメージを受けたときにスプライトを白に「フラッシュ」するためなど)。これはWindows Phone 7にあります。 XNA 3.1でこれを行うために非常にシンプルなカスタムシェーダーを使用していましたが、WP7はこれらをサポートしておらず、代替の証明が難しいことを発見しました。 ヘルプや提案をいただければ幸いです。ただし、ゲーム内のすべてのスプライトの真っ白なコピーを手動で作成する必要はありません。


6
レベルデータをすべて複数のファイルに分散するのではなく、1つのファイルに保存するにはどうすればよいですか?
現在、レベルデータを生成しています。レベルに加えられた変更が確実に保存されるように、ディスクに保存しています。 2048x2048ピクセルの「チャンク」をファイルに保存しています。位置に関連付けられたファイルがないセクションにプレーヤーが移動するたびに、新しいファイルが作成されます。 これはうまく機能し、非常に高速です。私の問題は、再生しているとファイル数がどんどん大きくなることです。 パフォーマンスに影響を与えることなく、ファイル数を減らすために使用できるテクニックは何でしょうか。このデータを複数のファイルではなく単一のファイルに効率的に保存/検索/更新する方法に興味があります。

3
2つ以上のスプライトをグループ化する簡単な方法はありますか?そのため、それらすべてが互いに依存しますか?
私はこの質問が非常によく似ていると思い、この 1、私は答えが普遍的なものであるかはわかりません。 だから、私の目標は: 2つのスプライトを固定位置に配置します。たとえば、プレーヤーと彼の目 プレーヤーが回転するたびに、目のスプライトも回転し、体から同じ相対位置に到達するようにしてください(目がプレーヤーの後ろにないようにします)。したがって、彼らはグループとして作業します。-このステップは自動化する必要があります。それが私の目標です! たとえば、今度はユーザーの手に銃を置きたいと思います。だから今私は、そのプレイヤーが配置されVector2(0, 0)、銃が配置されていると言いVector2(26, 16)ます。次に、それらをグループ化したいので、プレイヤーが回転するたびに銃も回転します。 現在この例では大丈夫ですが、y軸(のみ)に銃を移動する必要がある場合は、迷っています
8 xna  c#  2d  sprites 

2
XNAパフォーマンステストを自動化しますか?
XNAでのパフォーマンステストの自動化について、人々のアプローチや考えはどうなっていたのだろうと思いました。現在、私は2dでのみ作業していると考えていますが、それはさまざまな実装でパフォーマンスを改善できる多くの領域をもたらします。 例としては、空間分割の2つの異なる実装がある場合、1つは別の実装よりも高速かもしれませんが、実際のパフォーマンステストを行わないと、どれが確かにどれであるかを確実に判別できません(コードが明らかに明らかに遅い場合を除きます)。部品)。特定の時間枠で両方の実装のエンティティを追加/更新/削除し続けるユニットテストを作成し、各時間枠で作成された数を確認できます。高い方がより高速になります(この特定の例では)。 もう1つのより高いレベルの例は、60 fpsを下回ることなく、画面上に大まかにいくつのエンティティを表示できるかを確認する場合です。これの問題は、自動化することです。モックゲームを開始し、気になっている部分を純粋にテストして、他のすべてを無効にするために、隠しフォームトリックなどを使用する必要があります。 テストを自動化できたとしても、これは単純な問題ではないことを知っています。実際に結果が十分に優れているかどうかを判断するのは人間次第ですが、ビルドステップの一部として、これらのテストを実行して公開することができます。比較のためのどこかでの結果。 このようにして、バージョン1.1から1.2に移行したが、いくつかの基本的なアルゴリズムを変更した場合、一般にパフォーマンススコアが上がり、アプリケーションの全体的なパフォーマンスが向上し、1.2から1.3に気付く場合があります。その後、全体的なパフォーマンスが少し低下しました。 では、プロジェクトでこの種のことを自動化した人はいますか?そうであれば、パフォーマンス比較を高レベルでどのように測定し、どのフレームワークをテストに使用しますか?ほとんどのパーツでテスト可能/モック可能になるようにコードを記述しているので、パフォーマンス結果を得るためのメカニズムとしてテストを使用できます... ===編集=== わかりやすくするために、XNA内の自動テストを使用してパフォーマンスを追跡する最良の方法に興味を持っています。テストをプレイしたり、マシンでゲームを手動で実行して推測したりするのではありません。これは、ゲームがXハードウェアでプレイ可能かどうかを確認するのとはまったく異なります。ゲームエンジン/フレームワークが変化したときのパフォーマンスの変化を追跡することについてです。 コメントの1つで述べたように、「QuadTreeA内で2秒以内にいくつのノードを挿入/削除/更新できるか」を簡単にテストできますが、結果が変更されたかどうかを確認するために毎回これらの結果を物理的に調べる必要があります。うまく、バージョン間の違いに気づくかどうかを確認するためにそれを再生するだけに頼るよりも優れています。ただし、Assertを挿入して、2秒で5000を下回ると、失敗を通知して失敗を通知する場合は、実装だけでなくハードウェアのコンテキストでもあるため、もろいテストになります。そうは言っても、これらの種類の自動テストは、ある種のビルドパイプラインとしてテストを実行している場合にのみ実際に使用できます。 チェックアウト->ユニットテストの実行->統合テストの実行->パフォーマンステストの実行->パッケージ したがって、ある種のレポートとして、CIサーバー上のあるビルドから別のビルドへの統計を簡単に比較できます。また、継続的インテグレーションに慣れていない場合、これは誰にとってもあまり意味がないかもしれません。この質問の主な核心は、ビルド間で人々がこれをどのように管理するか、そしてどのようにレポートするのが最善かを知ることです。私が言ったようにそれは主観的である場合がありますが知識は答えから得られるのでそれは価値のある質問のようです。

1
ソースの四角形を含むGDI画像からXNAテクスチャを作成する方法
XNAのTexture2Dが保持できるのはそれほど多くありません。使用するプロファイルに応じて、その制限は2048または4096ピクセル幅です。私の調査からわかる限り(私が間違っていれば誰かが訂正してくれます)GDI画像には、ユーザーのメモリを超えないこと以外に制限はありません。 (XNAのサイズ制限内で)GDI画像とソースの四角形を取得し、実行時にそのデータから新しいTexture2Dを作成する最も効率的な方法を探しています。このプロセスでは、XNA 4.0の乗算済みアルファも考慮に入れる必要があります。 または... Texture2D.FromStreamを取得し、ソースレクタングルも取得できるようにそれを適応させる方法。 要件は次のとおりです。 コンテンツパイプラインはありません。実行時にそれらをロードできる必要があります。 可能であれば、リーチプロファイルのみを使用してください。 Windowsのみに注意してください。移植性について心配する必要はありません。 TL; DR: 私は次のような方法が必要です: Texture2D Texture2DHelper.FromStream(GraphicsDevice, Stream, SourceRectangle); または Texture2D Texture2DHelper.FromImage(Image, SourceRectangle) できれば最初。 大局: 少しの間、ソースの四角形を無視して(物事を視覚化しやすくするために)、テクスチャ全体をGDIにロードし、完全にブルートフォースアプローチを使用してデータをTexture2Dに渡してみました。 using (System.Drawing.Image image = System.Drawing.Image.FromFile(path)) { int w = image.Width; int h = image.Height; System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(image); uint[] data = new uint[w * h]; for …
8 xna  c#  textures  image 

2
どうすればスペースシムに勢いを盛り込むことができますか?
私は今、単純な2D物理エンジンの作成に取り組んでおり、勢いを宇宙船の動きに組み込む方法を理解するのにいくつかの問題に直面しています。 特定の方向に特定の速度で移動している場合、現在、船の位置を簡単に更新できます(位置+ =方向*速度)。しかし、船がまったく回転し、(船が向いている新しい角度に基づいて)方向を再計算し、その方向に加速する場合、船が移動する「線」を変更するために勢いをどのように考慮することができますか?現在、船は瞬間的に方向を変え、推力ボタンを押すと現在の速度でその新しい方向に進みます。船自体にある程度の質量があるような印象を与えるために、より緩やかな旋回動作にしたい。 このトピックに関する素晴らしい投稿がすでにある場合は申し訳ありませんが、検索で何も見つかりませんでした。さらに情報が必要な場合はお知らせください。質量*速度をゲームループの更新にスローする方法を誰かに簡単に教えてもらえれば幸いです。
8 xna  2d  physics 

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