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

C ++は、静的に型付けされた自由形式のマルチパラダイムでコンパイルされた汎用プログラミング言語です。

1
状態機械:状態オブジェクトと順次チェック:賛否両論は何ですか?
AIの有限状態機械やゲームの他のゲーム動作については、オブジェクト指向のMinerを使用したこの簡単なチュートリアルを除いて、あまり知りません。http://www.ai-junkie.com/architecture/state_driven/tut_state1.html このチュートリアルが状態パターンを記述するかどうかは本当にわかりませんが、どう思いますか? 私は、ステアリング、物理、経路探索、衝突など、他のより算術志向のものについてではなく、ゲームロジック、状態駆動型AI、および多くの同時状態やifsやswitches を含むものについて話しています。 次のような状態パターンまたはプレーンな状態構造の順次チェックを使用することの賛否両論は何ですか。 struct States { bool is_walking, is_running, holds_a_weapon, is_crouch; int weapon_id, int id_team; }; void HandleStates (States state) { //etc }
8 c++  ai  c  state 

1
時間ベースの動き対フレームレートベースの動き?
私はゲームプログラミングとSDLが初めてで、LazyfooのSDLチュートリアルに従っています。私の質問は基本的にされて、時間ベースのモーションやフレームレートベースの動きに関連して、より良いか、適切な状況に応じて、?。これらの各メソッドが使用される例を教えていただけますか? 私が持っているもう1つの質問は、lazyfooの2つのモーションチュートリアル(FPSベースと時間ベース)で、時間ベースの方法がはるかにスムーズなアニメーションを示していたのに対し、フレームレートベースの方法は少し問題があったということです。 2つのプログラムを比較したときのドットとその現在の位置。 初心者の場合、どの方法に固執する必要がありますか?(必要なのはスムーズなアニメーションだけです)。

5
Windowsで経過時間をミリ秒単位で取得する最良の方法
2つのFILETIMEを使用して、それらをULONGLONGにキャストし、ULONGLONGを減算して、結果を10000で除算しようとしています。ビジュアルスタジオ2008エクスプレスエディション。これは私が使っているものです: FILETIME filetime,filetime2; GetSystemTimeAsFileTime(&filetime); Sleep(100); GetSystemTimeAsFileTime(&filetime2); ULONGLONG time1,time2; time1 = (((ULONGLONG) filetime.dwHighDateTime) << 32) + filetime.dwLowDateTime; time2 = (((ULONGLONG) filetime2.dwHighDateTime) << 32) + filetime2.dwLowDateTime; printf("ELAPSED TIME IN MS:%d",(int)((time2-time1)/10000));
8 c++  windows 

1
ゲームクラスと主な機能
メインのゲーム機能と画面などのゲームオブジェクトのインスタンスを含むGameクラスがあります。私のゲームはC ++とSDLを使用して作成されています。 しかし、私はクラスの関数をメインにするべきだと思いましたか?それとも「ゲームゲーム」をやればいいの?「int main();」から そして、メインの中にループがありますか? 私の疑問は-外部メインからそれを行う場合、私のもののほとんどはパブリックでなければならないでしょう、そしてそれはちょっと悪いですよね? 何か案は?ありがとうございました!
8 c++  sdl 

4
2Dプラットフォーマーの衝突処理
2Dプラットフォーマー(マリオタイプ)ゲームを作成しようとしていますが、衝突の適切な処理に問題があります。私はこのゲームをC ++で書いており、入力、画像の読み込み、フォントの読み込みなどにSDLを使用しています。また、グラフィックを表示するためにSDLと組み合わせてFreeGLUTライブラリを介してOpenGLを使用しています。 私の衝突検出方法は、AABB(Axis-Aligned Bounding Box)です。必要なのは、衝突が発生した側を検出し、衝突を適切に処理する簡単な方法です。したがって、基本的に、プレーヤーがプラットフォームの上部に衝突した場合は、プレーヤーを上部に移動します。側面に衝突がある場合は、プレーヤーをオブジェクトの側面に戻します。底に衝突がある場合は、プラットフォームの下にプレーヤーを再配置してください。 私が試してみました多く、このような浸透深さを見つけようと侵入深さによって後方プレーヤーを再配置するようにこれを行うためのさまざまな方法を、。残念ながら、私が試したことは何も正しく動作していないようです。プレイヤーの動きが非常にグリッチになり、望まないときにプレイヤーの位置を変えます。その理由の1つは、おそらくこれはとても単純なものだと思っているためですが、考えすぎています。 誰かが彼らが助けることができると思っている場合は、以下のコードを見て、可能であればこれを改善するのを助けてください。これを処理するためにライブラリを使用しないでください(自分で学びたいので)、または可能であればSAT(分離軸定理)のようなものを使用しません。よろしくお願いします! void world1Level1CollisionDetection() { for(int i; i < blocks; i++) { if (de2dCheckCollision(ball,block[i],0.0f,0.0f)==true) { de2dObj ballPrev; ballPrev.coords[0] = ball.coords[0]; ballPrev.coords[1] = ball.coords[1]; ballPrev.coords[2] = ball.coords[2]; ballPrev.coords[3] = ball.coords[3]; ballPrev.coords[0] -= ball.xspeed; ballPrev.coords[1] -= ball.yspeed; ballPrev.coords[2] -= ball.xspeed; ballPrev.coords[3] -= ball.yspeed; int up = 0; …

1
ゲームエディターとエンジンを統合するにはどうすればよいですか?
私が理解しようとしているのは、エディター(レベル、エフェクト、モデルなど)を最も効果的な方法で統合する最良の方法は何ですか? 今私が最初に考えたのは、非常にモジュール化されたゲームエンジン(*)を作成することです。たとえば、ゲームの状態の例を取り上げました。複数のゲームステートがあり、すべてが独自のupdate()およびdraw()メソッドを持つことができます。各ゲーム状態クラスは、基本のGameStateクラスを継承します。これにより、よりモジュール化されたアプローチが可能になり、有用なアプローチが得られます。 最も効率的なアプローチは、モジュラーエンジンと共にエディターを実装することですか、それともゲームとエディターの両方に2つの異なるデザインを作成することですか?私はゲームの状態の例を取り上げて、ウィンドウの状態に拡張することを考えました。さらに多くのシステムで使用できます。エンジンで使用される他のシステムで使用するためのこのデザイン(ゲーム状態)のより良い実装はありますか? *:今では、ゲームエンジンという用語はあまり関係がなく、多くの状況で誤用されています。私が「ゲームエンジン」と呼んでいるのは、ゲームが略して相互作用しなければならないシステムの組み合わせです。 また、これは実装というよりも理論/設計の問題です。両方が混在しているとしても、エディターが効率的に構築され、ゲームが使用しているものと同じエンジンコードを使用する方法について、より一般的な考えが欲しいと思います。 PSさらに説明や追加のビットが必要な場合は、コメントを残してください。

5
動くシューターから動くターゲットを導く方法
私はこの質問を見ました:オブジェクトをそのターゲットに導くために敵の位置を予測しました。私の状況は少し異なりますが。 ターゲットが動き、射手が動きます。また、シューターの速度は弾丸の速度に追加されます。つまり、右にスライドしている間に発射された弾丸は、右に向かうほど大きな速度になります。 私がやろうとしていることは、敵に、プレイヤーを攻撃するために撃つ必要がある場所を決定させることです。リンクされたSOソリューションを使用すると、プレイヤーと敵が静止していない限り、速度の違いによりミスが発生します。どうすればそれを防ぐことができますか? スタックオーバーフローの回答から提示されたソリューションは次のとおりです。要約すると、次の形式の2次方程式を解くことになります。 a * sqr(x) + b * x + c == 0 sqr平方根ではなく平方を意味することに注意してください。次の値を使用します。 a := sqr(target.velocityX) + sqr(target.velocityY) - sqr(projectile_speed) b := 2 * (target.velocityX * (target.startX - cannon.X) + target.velocityY * (target.startY - cannon.Y)) c := sqr(target.startX - cannon.X) + sqr(target.startY - cannon.Y) 次に、判別式を調べて、可能な解決策があるかどうかを判断します。 disc := …
7 c++  ai  physics  aiming 

1
AABB-AABB衝突、どちらの顔に当たる?
オブジェクトが衝突したときにスライドできるようにするには、次のことを行う必要があります。 彼らが衝突するAABBのどの面を知っています。 その面の法線を計算します。 法線を返し、プレイヤーの速度に適用するインパルスを計算します。 質問 2つのAABBが衝突していることを知りながら、衝突したAABBの面を計算するにはどうすればよいですか?1つはプレーヤーで、もう1つはワールドオブジェクトです。 これは次のようになります(白で囲まれた問題の衝突)。 ご協力ありがとうございました。

2
C ++エンティティコンポーネントシステムフレームワーク[終了]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張ディスカッションを誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 ActionScriptのAshやRush、JavaやC#のArtemisなど、C ++以外の他の言語のエンティティシステムフレームワークをいくつか見つけました。 私の質問は、C ++の上記のようなフレームワークが存在するかどうかです。

2
オブジェクト指向の方法で在庫を処理するにはどうすればよいですか?
私はオブジェクト指向のアプローチに従ってプレーヤーのインベントリを処理するための最良の方法を考えています。 たとえば、剣と斧は2つの異なるクラスで、どちらも武器から継承しています。武器とポーションもアイテムから継承する異なるクラスです。 理想的には、在庫はアイテムのコンテナーとして実装されますが、それはいくつかの理由で実行できません。したがって、アイテム(スマート)ポインターのコンテナーである必要があります。newとdeleteの呼び出しでコードを制限したくないので、ctor / dtorでニュース/削除するItemWrapperクラスにラップします。 したがって、コードは次のようになります class Sword; class ItemWrapper; //Prepare the long sword. const Sword longSword(...params...); //Declare the inv vector<ItemWrapper> inv; //Add it to inventory inv.push_back(longSword); //compiles if ItemWraper(const Sword&) is defined. このアプローチは、コードの明快さと書きやすさの点で私が思いつくことができる最高のものでした。問題は、ItemWrapperがItemから継承するリーフクラスごとに1つのコンストラクターを必要とすることです(これはたくさんあります)。 これが私の初めての試みなので、知りたいのですが、正しい方向に進んでいますか?またはそれを行うためのより良い方法がある場合(おそらく、非常に多くのコンストラクタを回避する方法)?
7 c++  objects 

2
どうすればOBJモデルを頂点とインデックスの配列に変換できますか?
モデルのロード方法を学ぶためだけに、単純なモデルローダーを作成しています。.OBJファイルをカスタム形式に変換するプログラムを作成しました。(それは事実上.OBJとまったく同じです、私は学習のためだけにもう一度書いた)。すべてのデータをに読み込むことはできますstd::vectorが、頂点とインデックスの配列にデータを配置する方法がわからないため、正しくレンダリングされません。カリングなしでワイヤーフレームを有効にした場合の結果は次のとおりです(球体であることが想定されており、中央のL形はモデルの一部ではありません)。 ポイントリストをレンダリングするように指示すると、すべての頂点が適切な場所にあります。ただし、顔が正しく形成されていないようです... これはそれらをレンダリングするコードです: //========================================================= // CONVERT THE DATA INTO SOMETHING USABLE //========================================================= bool isDuplicate; for(int i = 0; i < polygonCount; i++) { for(int i2 = 0; i2 < 3; i2++) { isDuplicate = false; isCreated = false; selectedVertex = faceDefinitions[i].vertexIndexes[i2]; for(int i3 = 0; i3 < vertexCount; i3++) { …
7 c++  models  directx11 

2
即時モードからVBOに切り替えるにはどうすればよいですか?
私はOpenGLを短期間使用していますが、VBOについて説明が必要です。私が理解しているように、VBOはVRAMに格納されたオブジェクトです。即時モードでは、テクスチャを適用するために、テクスチャをバインドし、頂点座標の前にテクスチャ座標を指定するだけですが、VBOではそのようには見えません。 質問1: VBOでテクスチャデータを指定できますか?データのどの部分ですか? 通常、2Dでゲームを作成するときは、すべてのオブジェクトを異なるクラスのインスタンスに格納し、描画ルーチンが起動したら、画面上にあるオブジェクトを描画します。3D環境では、画面上にオブジェクトを描画するだけでは少し難しくなりますが、いくつかの数学ではそれが可能であると確信しています。 質問2:どのオブジェクトをレンダリングする必要があるかがわかったら、それらの対応するオブジェクトに「適用」リクエストを送信し、それらを自分自身に適用させるのは許容できるほど速くなりますか?それとももっと良い方法がありますか? 質問3:完全に動的なマップがあり、オブジェクトがそれほど頻繁に変更されない場合、とのパフォーマンスの違いに関するガイドラインは GL_STATIC_DRAWありGL_DYNAMIC_DRAWますか? 最後の質問:頂点リストの使用を検討すべきですか?または、VBOはより良いオプションですか?
7 opengl  c++  vbo 

2
フレームレートに依存しない更新を実装するにはどうすればよいですか?
編集: jumpvelocityを変更して追加するものにし、yvelocityをjumpvelocity * tに等しくすることで問題を修正しました。これは私が今持っているものです: if (GUI->Space && grounded){ jumpvelocity = -185.f * 2 / gravity; grounded = false; } if(!grounded ){ if(jumpvelocity < terminaly){ jumpvelocity += 185.f * t * 4 / gravity; yvelocity = jumpvelocity * t; } else{ jumpvelocity = terminaly; yvelocity = jumpvelocity * t / gravity; …
7 c++ 

2
LibRocketをSDLおよびOpenGLと統合する
私は現在ゲームプロジェクトに携わっており、メニューやその他のGUIを追加したいところまで到達しましたが、独自のシステムの開発に費やした時間は少し時間がかかる可能性があり、これはその一部です時間を無駄にしたくないシステムの。 したがって、GUIchan、CEGUI、最近のLibRocketなど、非常に柔軟で便利なUIライブラリについて読んでいます。私の質問は、LibrocketをC ++のSDL / OpenGLで開発されたプロジェクトと統合できるかどうかです。そのような情報を見つけることができないため、その情報がどこにあるかを知っている場合。
7 c++  opengl  sdl 

2
インターフェイスにHTMLを使用していますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 5年前休業。 私が取り組んでいるゲームでは、グラフィックにopengl / sfmlを使用しています。現在インターフェイスに取り組んでおり、適切なオフセットや配置などをすべて決定するのは面倒なことです。それを構成可能にするために、解析する一連のxmlファイルを解析して、プログラムにどの画像を使用するか、どこにstcを配置するかを指示することになるでしょう。インターフェース用。 とにかくそうする必要があるので、htmlレンダラーをアプリに埋め込み、openglで描画されたグラフィックスの上に表示できるかどうか知りたいと思いました。そうすれば、理論的にはHTMLページを使用してインターフェイスを設計できます もし可能なら、それはどれほど難しいでしょうか、それは良い考えですか?これをすでに行うプロジェクトはありますか? ありがとう
7 c++  opengl  interface 

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