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

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

1
画面の読み込み中にガベージコレクターを呼び出す必要がありますか?
だから、私は最近、好奇心からガベージコレクションを少し読みましたが、かなり頻繁に繰り返されることがあります。ガベージコレクションは、コレクションの「深さ」によっては、プログラムの突然のスローダウンにつながる可能性があります。 しかし、ビデオゲームでは、ユーザーが実際に小さなラグに気付かない瞬間があります。それは、ロード画面です。したがって、読み込みフェーズ中に(Collect()を介して)完全なガベージコレクションに進むことが役立つと思いました。ユーザーに実際に影響を与えないように、1〜2秒待つ必要があります。 私の質問は、それは本当に便利ですか、またはこれを行うことには本当に利点がないのですか?
9 c# 

3
たくさんの小さなBMPファイルなどのゲームグラフィックを出荷する際の最新技術は何ですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 昨年休業。 小さなBMPファイルがたくさんあるので、大きなTAR / ZIP /その他にまとめるとコピーが簡単になると思います。 ゲームグラフィックスの出荷時の最新技術とは何ですか? 私たちはC#を使用しており、zlibを認識しています。zlibよりも優れた他の解決策があるかどうかを確認するためにブレインストーミングを行います。

2
XNA / C#プラットフォームのスクリプト言語としてのLuaとPythonの長所と短所は何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 私はゲームの私の古代のアイデアの1つに挑戦することを考えています。このゲームの中核となるのは、ゲーム環境とオブジェクトの機能的なカスタマイズのレベル(宇宙船の武器の動作の変更など)です。このため、ゲームはスクリプト対応である必要があります。また、私はそれを商業化することを目指していません、それは私にとって興味深いプログラミングの挑戦にすぎません。 私は主に.NETの人なので、ゲーム自体にはXNA / C#を使用します。スクリプトについては、PythonまたはLuaを使用することを考えています。私は以前にPythonの経験があり、言語としてそれに対して何もしていません。一方、Luaは私にとってはほぼ完全に新しいものですが、World of Warcraftのアドオンのマイナーな変更がいくつかありますが、それは期待できるようです。だからここに私の質問です: XNA / C#プラットフォームのスクリプト言語としてのLuaとPythonの長所と短所は何ですか? それらの1つはXNA / C#で使用する方がはるかに簡単ですか?XNA / C#と一緒に使用すると、そのうちの1つに特定の利点または欠点がありますか?XNA / C#を他のどれよりも推奨するのはなぜですか?
9 xna  c#  scripting 

3
多くの正方形のタイルベースの効率的な衝突検出?
現在私はタイルベースのゲームの独自のテイクに取り組んでいます(Terrariaを考えてくださいが、空想的ではありません(それは言葉だと思いますか?そうでない場合は申し訳ありません))。 とにかく、私は現在、衝突検出が機能しています(コーナーケースの場合でも!)。これは私にとって大きな一歩でした。スプライトがブロックを通過しないのを見るのは非常にうれしいことです。しかし、それから私はベンチマークするという考えを持っていました。悪いアイデア。 1,000平方、問題ありません。10,000の正方形、3つの文字は少し遅れました。3文字で100,000の正方形(本当に巨大な地図)はプレイできませんでした。 プレイヤー、キャラクター、アイテムなどから遠すぎるブロックも考慮したくないという問題がありますが、それらを常にメモリからロードしたくありません。 ここまでが私のアルゴリズムです。自由に非難してください。 foreach (Block in level) { if (distance from block to player > a specified amount) ignore this block; else { get the intersection depth between the two bounding boxes if (depth of intersection != Zero-vector) { check y size vs x size resolve on smallest …

4
XNA GameComponents間(またはゲーム内の任意のタイプのコンポーネント間)の通信を容易にするためにどのテクニックを使用する必要がありますか?
私は最初の「適切な」ゲームプロジェクトから始めています。必然的に、XNAのゲームコンポーネントがどのように通信するかを決定しようとするブロックにぶつかりました。 以前の(Java)GUIプログラミングイベントから、ハンドラーとリスナーは前に進んだように見えました。ですから、イベントの登録とそれらのイベントにサブスクライブしたクラスを受け入れ、それらを処理するハンドラーを備えた、ある種のイベントバスがあります。例(疑似コード): class SpriteManager Update(){ if(player.collidesWith(enemy) // create new 'PlayerCollisionEvent' } class HUDManager onPlayerCollisionEvent(){ // Update the HUD (reduce lives etc) } ただし、これを完全に達成するために必要なコード設定(C#で)はわかりません。イベントを追跡しているもの(ある種のバス?)とその構造は? ゲームサービスについても多く言及されているようです。これにより、メインのGame.csクラスにGameComponentを登録し、メインの 'Game'オブジェクトへの参照を持つコードの任意の場所からフェッチできます。SpriteBatchオブジェクトでこれを試しましたが、非常に簡単に見えます。しかし、これがイベントモデルほど柔軟ではないことがわかります。 たとえば、敵が死亡した場合を考えてみましょう。ゲームのスコアを更新したい。サービスを使用して、Game1で作成され、サービスとして追加されたStateManagerオブジェクトへの参照を取得し、 'score'を新しい値に設定できます。「onEnemyDeath」イベントはさまざまなクラスで別々に処理できますが、関連する「敵の死の検出」セクションの1行のコードで開始され、必要な各GameComponentを個別にキャストしてから何でも呼び出すよりも良いと思いますメソッドが必要です。 それとも、これらは他の戦略よりも劣っていますか? これは、ゲーム通信のパラダイムと同じくらい、私のC#知識が不十分であることの一部だと思いますが、この基本的なことを正しくしたいのですが。 更新 サービスを確認したことの方が詳細であると私は確信していません。これは、基本的に(私が理解しているところから)グローバル変数を渡すことです。 アップデート2 イベントの処理とサンプルコードのテストに関するこの基本的なチュートリアルを見てきたので、私が議論しているのはイベントが論理的な選択になると思われます。しかし、私が見たサンプルでそれを使用することはあまりできません。すべきでない明白な理由はありますか?

1
波紋効果?
タワーディフェンスゲームに取り組んでいますが、これまでのところ、結果に本当に満足しています。ただし、追加したいことが1つあります。 Windows Phone 7のGeoDefenseのビデオをここで見ました:http : //www.youtube.com/watch? v=YhPr4A4LRPQ (ユニットが殺されるか、発射体がユニットに当たったとき)背景がなんらかの波効果で波打つ様子に注目してください。 どうすれば同等のものを作ることができますか?多くの頂点で構成されるクワッドを使用して、頂点シェーダーで何とかする必要があると思います。 あなたの電話は何ですか? 編集 XNAゲームはWindows Phone用ではなく、Windows PC用に作成されていることに注意してください。
9 xna  c#  hlsl 

2
AABBの衝突によるプラットフォームジャンプの問題
最初に図を参照してください。 私のAABB物理エンジンが交差を解決するとき、ペネトレーションが小さい方の軸を見つけてそれを行い、その軸上のエンティティを「押し出し」ます。 「左に移動」の例を考えてみましょう: VelocityXがVelocityYよりも大きい場合、AABBはエンティティをY軸上に押し出し、ジャンプを効果的に停止します(結果:プレイヤーは空中で停止します)。 velocityXがvelocitY(図には示されていません)よりも小さい場合、AABBがエンティティをX軸上に押し出すため、プログラムは意図したとおりに機能します。 この問題を解決するにはどうすればよいですか? ソースコード: public void Update() { Position += Velocity; Velocity += World.Gravity; List<SSSPBody> toCheck = World.SpatialHash.GetNearbyItems(this); for (int i = 0; i < toCheck.Count; i++) { SSSPBody body = toCheck[i]; body.Test.Color = Color.White; if (body != this && body.Static) { float left = (body.CornerMin.X - …

2
ピクセルアートファイルをデザインするとき、またはレンダリングするときにスケーリングしますか?
後で画面上で拡大する必要があるピクセルアートファイルを作成すると、1つのピクセルが4ピクセルのボックスになります。XNAで2x2ピクセルに1:2にスケーリングできるように、2x2ピクセルでピクセルアートを作成する必要がありますか、それとも1x1ピクセルで作成する必要がありますか? 1:1はピクセルアート効果ではなく詳細になりすぎると思う傾向があるので、最終的な結果として、目的のスプライトの1x1ピクセルが画面上で2x2ピクセルを占める2:1スタイルが必要です。
9 xna  c#  sprites 

3
移動する円で掃引される2Dグリッドセルを見つける方法は?
私は2Dグリッドに基づいてゲームを作成しています。一部のセルは通過可能で、一部は通過できません。動的オブジェクトは、グリッドに関係なく連続的に移動できますが、通行できないセルと衝突する必要があります。 グリッドに対してレイをトレースするアルゴリズムを作成しました。これにより、レイが交差するすべてのセルが得られます。ただし、実際のオブジェクトはポイントサイズではありません。私は現在、それらを円で表しています。しかし、動いている円をトレースするための効果的なアルゴリズムを理解できません。ここに私が必要なものの写真があります: 数字は、円がグリッドセルと衝突する順序を示します。誰かがこれらの衝突を見つけるアルゴリズムを知っていますか?できればC#で。 更新円は単一のグリッドセルよりも大きい場合があります。

2
オンラインマルチプレイヤーゲームの基本[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 6年前休業。 現在、c#オンラインマルチプレーヤーゲームにリアルタイムで取り組んでいます。目的は、UDPプロトコルを使用してクライアント/サーバーベースの接続を確立することです。これまでのところ、サーバーに接続されているすべてのプレーヤーにデータが届くようにする必要があるため、プレーヤーの動きにはUDPを使用し、イベント(プレーヤーの射撃、プレーヤーの命を失う)にはTCPを使用しました。UDPは「信頼できない」と言われ、一部のパケットが失われる可能性があることを知っています。しかし、接続に影響を与える可能性があるので、TCPとUDPを混在させないようにあらゆる場所を読んでいます。 主な質問は、ネットワークをどのように整理すればよいかということです。 UDPはコネクションレスですが、誰が誰であるかをどのように保存すればよいですか?クライアントのIPアドレスをリストに保存する必要がありますか? 重要なイベントにTCPを使用するか、UDPを使用する必要がありますか?UDPを使用する必要がある場合、データが失われないようにするにはどうすればよいですか? TCPとUDPの両方を使用することで、各プレーヤーのIPをリスト(UDPの場合)と別のリスト(UDPの場合)に接続されているTcpClientに保存する必要があります。どうすればより効果的に変更できますか?

2
水に浮かぶオブジェクトのシミュレーション
トップダウンの釣りゲームに取り組んでいます。湖を動き回るボートに関して、いくつかの物理演算と衝突検出を実装したいと思います。メインモーターまたはトローリングモーターのいずれかからの推力、オブジェクトへの風の影響、およびオブジェクトへの水の抗力を実装できるようになりたいと思います。 私は遠い物理エンジンを見てきましたが、物理エンジンを使用した経験がなく、遠いものがこのタイプのものに適しているかどうかはよくわかりません(ほとんどのデモは垂直方向への重力の適用であるようですトップ/ダウンタイプモデル)。 farseerエンジンは適切でしょうか?または別のエンジンの方が適していますか?

2
ベクトルを使用してXNA / C#でスプライトを移動する
現在、C#言語を使用したXNAゲーム開発を検討しています。 メインのゲームハンドラーと「スプライト」クラスの2つのクラスがあります。以下は、いくつかの基本的な疑似コードで、問題を適切に説明していると思います。 Game.cs class game { sprite the_sprite; void update(time) { var mouse = mouse.state if(mouse.clicked) { this.the_sprite.moveTo(mouse.x, mouse.y) } this.the_sprite.update(time) base.update(time) } } Sprite.cs class sprite { vector2 location; vector2 move_to; void moveTo(x, y) { this.move_to = new vector2(x, y) } void update(time) { if(this.location.x > this.move_to.x /* (or …
9 xna  c#  vector  movement 

7
ウィキペディアA *パスファインディングアルゴリズムには時間がかかる
C#でA *パ​​スファインディングを正常に実装しましたが、速度が非常に遅く、理由がわかりません。私はopenNodesリストをソートしないように試みましたが、それでも同じです。 マップは80x80で、ノードは10〜11です。 ここからウィキペディアの疑似コードを取り出しました そして、これは私の実装です: public static List<PGNode> Pathfind(PGMap mMap, PGNode mStart, PGNode mEnd) { mMap.ClearNodes(); mMap.GetTile(mStart.X, mStart.Y).Value = 0; mMap.GetTile(mEnd.X, mEnd.Y).Value = 0; List<PGNode> openNodes = new List<PGNode>(); List<PGNode> closedNodes = new List<PGNode>(); List<PGNode> solutionNodes = new List<PGNode>(); mStart.G = 0; mStart.H = GetManhattanHeuristic(mStart, mEnd); solutionNodes.Add(mStart); solutionNodes.Add(mEnd); openNodes.Add(mStart); // …

1
ボードゲームAIの作成
私はOkeyという名前で、主にトルコで人気のあるボードゲームをコーディングしたいと思っています。http://en.wikipedia.org/wiki/Okey しかし、私はAIについていくつかの問題を抱えています。 最初にゲームについて説明させてください。 ゲームは4人のプレーヤーでプレイされます。 このゲームには106のタイルがあり、そのうちの2つは偽のジョーカーです。他の104のタイルは、一般的に緑、黒、青、赤の4色に分かれています。すべての色には2セットのタイルがあります。セットiseには、1から13まで順番に番号が付けられた13のタイルが含まれています。 各プレーヤーは14タイルを開始し(1つは開始15で最初に開始)、最も不要なタイルの1つを次のプレーヤーに投げます。次のプレーヤーは、このタイルを取得するか、テーブルの中央にあるスタックから別のタイルを取得できます。ゲームは反時計回りに再生されました。 このゲームの目的は、14タイルの有効なシーケンスをできるだけ早く見つけることです。プレーヤーは、タイルを13まで同じ色で連番で並べることができます。たとえば、緑1、緑2、緑3の場合は例外です。ここでは例外があり、1は13に続くことができます。たとえば、赤12、赤13、赤1は有効なセット。ただし、赤13、赤1、赤2は無効です。 または、プレーヤーは同じ数の色でタイルを揃えることができます。たとえば、緑1、黒1、赤1、青1などです。 各セットを有効にするには、3つ以上のタイルである必要があり、このセットのそれぞれに「Per」という名前を付けます。仕上げには3タイル未満は無効です。有効な仕上げセットは次のようになります。G:緑、B:青、R:赤、BL:黒G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13 最後に、ゲームを開始するときに、ジョーカー(オーケー)を決定するために選択されたタイル。たとえば、Blue 3を選択した場合。青4はジョーカー(オーケー)となり、プレーヤーは、セットを獲得または完了するために必要なタイルの代わりに、このタイルを使用できます。 もちろん、これらの規則は一般的な規則であり、質問を説明するために要約されています。英語が読める場合は、このリンクで詳細を確認できますhttp://tr.wikipedia.org/wiki/OkeyまたはGoogle Translateによる翻訳ページhttp://translate.google.com/translate?js=n&prev=_t&hl= en&ie = UTF-8&layout = 2&eotf = 1&sl = tr&tl = en&u = http://tr.wikipedia.org/wiki/Okey では、どのAIアルゴリズムを使用できますか?ミニマックス理論とアルファベータ剪定を探しました。しかし、これらの理論は通常、チェスや三目並べのような2人のプレーヤーによるゲームです。 元の質問は、stackoverflowにあります。https://stackoverflow.com/questions/4419628/creating-a-board-game-ai

1
Windows APIを使用してXNAで任意のテキストをレンダリングしますか?
Andrewの他の質問に対するコメントで、彼は、SpriteBatchで直接テキストを描画する代わりに、Windows APIを使用してテキストをTexture2Dにレンダリングすることが可能であると述べました。これはどのように行われますか?画像データをTexture2Dに書き込む前に、中間ステップがあると思います。 これにより、SpriteFontを使用して必要なすべてのグリフを事前にレンダリングする必要がなく、オンザフライでUnicode文字をレンダリングできるようになるので(韓国語と日本語のグリフが多すぎて、このルートを実行できないようにするのは悲しいことです)。ありがとう!
9 xna  c#  windows 

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