タグ付けされた質問 「c#」

C#は、Microsoftが.NETプラットフォームと組み合わせて作成した、マルチパラダイムで管理され、強く型付けされ、ガベージコレクションされたプログラミング言語です。

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 

3
カードゲームフレームワークはありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 ゲームフレームワークの作成/使用に関する議論は避けましょう。 カードゲーム用の小さなフレームワークを作成するか、それが存在する場合はそれを使用したいと思います。誰か知っていますか? できればJavaまたはC#で記述します。 前もって感謝します、
8 c#  java  card-game 

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オブジェクトを直接操作する方法はありますか、またはラッパーが必要ですか?

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

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

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
XNAの別のクラスからGame1クラスの変数にアクセスするにはどうすればよいですか?
SpriteManagerXNAでクラスを記述しようとしていますが、Game変数にアクセスする必要があります。たとえば、Game.Contentプロパティはテクスチャのロードに非常に役立ちGame.GraphicsDevice.Viewport、ウィンドウサイズを取得するのに役立ちます。 今のところ、私は次のクラスを持っています: public MainGame : DrawableGameComponent { public SpriteManager<Enemy> EnemyManager { get; get; } public SpriteManager<Powerup> PowerupManager { get; set; } ... } SpriteManagerクラスでこれらの変数にアクセスするには、3つの方法が考えられます。 私のスプライトマネージャークラスをから派生させGameComponentます。これは私のスプライトマネージャがで使用されていることを除いて、理想的ですMainGame、GameComponent。 ((Game) Game1)変数にアクセスするために使用します。ただし、この種のキャストを行うことは醜く、カプセル化を壊します。 からすべてを渡しますMainGame。たとえば、EnemyManagerは敵をスポーンするたびにランダムな敵タイプをロードする必要があるため、でテクスチャをロードする代わりに、プロパティをMainGame渡しEnemyManagerてGame.Contentテクスチャのロードを処理させます。しかし、これが状況を処理する最良の方法であるかどうかはわかりません。指を置くことはできませんが、ある意味「間違っている」ように見えます。 これを達成するための最良の方法についていくつかのアドバイスを使用できます。

1
XNA-SpriteFontで受け入れられるさらに数文字
XNAにはSpriteFontがあり、使用可能な標準の126文字があります。 ただし、ゲームで「ಠ」記号を使用したいと思います。 とにかく、スプライトフォントが受け入れるいくつかの記号を追加する方法はありますか? 乾杯、ランダムマン159
8 xna  c#  fonts 

3
XNA-コンテンツパイプライン拡張の後に実行されるゲームライブラリの静的クラス、問題を回避する方法
わかりました、このように定式化されているので、はっきりしないように思えますが、問題を説明するために最善を尽くします。 まず、実際のソースコードの何が問題かを説明しましょう。 私はプラットフォーマーを作っています。これが私のゲームの現在のコンポーネントです:タイルの独自のグリッドとタイルシートを保持しているLevelと、タイルシートの名前とインデックスを保持するTileだけです。タイルシート。これらはすべて、GameLibという名前の個別のXNAゲームプロジェクト内にあります。 レベルがテキストファイルでフォーマットされる方法は次のとおりです。 x x . . . . . . . . b g r . . . . . . . . X X X X X X X ここでは.、空のタイルを表すb青色のプラットフォームを表し、Xランダムな色のブロックを表し、等 Levelクラス内でレベルをロードするすべての作業を行う代わりに、コンテンツパイプライン拡張を利用して、LevelContentPipelineExtensionを作成することにしました。 始めてすぐに、次のような20行以上をハードコーディングしたくないことにすぐに気付きました。 if (symbol == 'b') return new Tile(/*...*/); したがって、すべてのコンテンツ作成を少なくとも1つのクラスに集中させることを期待して、どのシンボルが何を作成し、この種のすべてのものを作成するかに関する情報を保持するLevelContentCreationと呼ばれる静的クラスを作成しました。また、後で読み込むために、タイルシートのすべてのアセットパスのリストを保持します。このクラスは、私のGameLibゲームライブラリプロジェクト内にあります。 問題は、このLevelContentCreation静的クラスをLevelクラス(実際のタイルシートを読み込むため)とコンテンツパイプライン拡張(どのシンボルがどのタイルを表すかを知るため)の両方で使用していることです... そして、LevelContentCreationクラスは次のようになります。 public static class LevelContentCreation { …
8 xna  c# 

1
オブジェクトを回転させてプレイヤーに向けます
これはおそらく単純なベクトルの質問ですが、どうすればよいかわかりません。 ベクターの位置にオブジェクトがあります(ox,oy)。可能性のあるすべての更新で、ユーザーは画面上を歩き回り(px,py)、いつでもその位置にいます。オブジェクトが常にプレーヤーに面するようにするにはどうすればよいですか?角度を度単位で取得する必要があります。 これは私がいじくり回してきたものですが、方向はすぐにユーザーがいる場所を指していません。代わりに、ユーザーが歩いている方向に徐々に増加します。 objVec.Normalize(); playerVec.Normalize(); obj.Rotation = MathHelper.ToDegrees((float)Math.Acos(Vector2.Dot(objVec, playerVec))); 私はそれが完全に間違っているかもしれないので、どんな助けでもありがたいです!

1
ビルボードはXBOXではなくPCでうまく描画します
月は2つの描画呼び出しで描画されますが、どちらもxboxで間違って描画されるため、簡単にするために1つの描画を表示しています。 これは、PCでの月の見え方です。 XBOXでの外観: カメラが動き回るにつれて、テクスチャはちらつき、消え、下から上へのグラデーションのように見え、線がそれを通り抜けます。たとえば、カメラを少し動かすと、次のようになります。http : //olhovsky.com/xna/xbox_moon2.png public void Draw(Camera cam) { GraphicsDevice gd = Game3.GDM.GraphicsDevice; Vector3 position = Position + cam.Position; Matrix world = Matrix.CreateScale(2.0f); world *= Matrix.CreateConstrainedBillboard( position, cam.Position, Vector3.Down, cam.Forward, null); _moonEffect2.Parameters["World"].SetValue(world); _moonEffect2.Parameters["View"].SetValue(cam.View); _moonEffect2.Parameters["Projection"].SetValue(cam.Projection); // Draw blended part of moon only. _moonEffect2.Parameters["AlphaTestDirection"].SetValue(-1); gd.BlendState = BlendState.AlphaBlend; gd.RasterizerState = RasterizerState.CullNone; …
8 xna  c# 

5
タイルベースの柔軟なエンジンの設計
宝石をちりばめた、文明、倉庫番などと同じように、あらゆる種類の非リアルタイムパズルゲームを作成するための柔軟なタイルベースのゲームエンジンを作成しようとしています。 私が最初に行ったアプローチは、Tileオブジェクトの2D配列を用意し、次にゲームオブジェクトを表すTileから継承するクラスを用意することでした。残念ながら、その方法では、3D配列がなければ、同じタイルにゲーム要素をさらに積み上げることができませんでした。 次に、別のことを行いました。Tileオブジェクトの2D配列はまだありましたが、すべてのTileオブジェクトには、配置したリストと異なるエンティティが含まれていました。これは、20分前まではうまくいきました。多くのことを行うにはコストがかかりすぎることに気付いたとき、次の例を見てください。 壁エンティティがあります。更新ごとに、隣接する8つのタイルをチェックし、次にタイルのリスト内のすべてのエンティティをチェックし、それらのエンティティのいずれかが壁であるかどうかをチェックし、最後に正しいスプライトを描画します。(これは、互いに隣接する壁をシームレスに描画するために行われます) 私が今見ている唯一の解決策は、あらゆる状況に適する可能性のある多くのレイヤーを備えた3Dアレイを持つことです。しかし、その方法では、同じタイル上の同じレイヤーを共有する2つのエンティティをスタックできません。やりたいときはいつでも、新しいレイヤーを作成する必要があります。 より良い解決策はありますか?あなたならどうしますか?
8 c#  2d  performance  tiles 

1
タイルベースの2D衝突検出の問題
このチュートリアルhttp://www.tonypa.pri.ee/tbw/tut05.htmlに従って、タイルベースの世界でリアルタイムの衝突を実装しようとしています。 これらのプロパティのおかげで、エンティティの中心座標がわかります。 public float CenterX { get { return X + Width / 2f; } set { X = value - Width / 2f; } } public float CenterY { get { return Y + Height / 2f; } set { Y = value - Height / 2f; } } …

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