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

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

1
OpenGLのどのc / c ++モデルアニメーションライブラリ[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 6年前休業。 私はゲーム開発にかなり慣れていないので、以前xnaをいじって、OpenGLとcを今すぐ学習しています。どのc / c ++ベースのモデルアニメーションライブラリがあり、どれをお勧めしますか?私はまだ特定のモデル形式を考えていませんが、おそらくBlenderのような無料のモデリングツールでサポートされている形式でしょう。
10 opengl  c++  models  c 

2
C ++でのボクセルエンジンのボクセルの保存
楽しいボクセルエンジンを少し書こうとしていますが、実際のボクセルを保存する最善の方法を見つけるのに苦労しています。私はある種のチャンクが必要になるので、全世界をメモリに入れる必要がないことを承知しており、合理的なパフォーマンスでそれらをレンダリングする必要があることを承知しています。 私はoctreesについて読んで、それが1つのキューブで始まることを理解しています。そのキューブには8つのキューブがあり、それらすべての8つのキューブは別の8つのキューブになる可能性があります。しかし、ボクセルエンジンに適合しないと思いますボクセルキューブ/アイテムはすべてまったく同じサイズになります。 したがって、別のオプションは、16 * 16 * 16サイズの配列を作成し、それを1つのチャンクにして、項目で埋めることです。また、アイテムがないパーツの値は0になります(0 =空気)。しかし、これは多くのメモリを浪費することになり、非常に速くはありません。 次に、別のオプションは、各チャンクのベクトルであり、キューブでそれを埋めます。そして、立方体はチャンク内でその位置を保持します。これにより、メモリは節約されますが(エアブロックはありません)、特定の場所にあるキューブの検索が大幅に遅くなります。 だから私は本当に良い解決策を見つけることができません、そして誰かがそれを手伝ってくれることを望んでいます。それであなたは何を使いますか、そしてその理由は? しかし、別の問題はレンダリングです。OpenGLを使用して各チャンクを読み取り、それをGPUに送信することは簡単ですが、非常に遅くなります。チャンクごとに1つのメッシュを生成する方が適切ですが、これは、1つのブロックを分割するたびに、チャンク全体を再構築する必要があることを意味します。だからそれは難しいでしょう。では、どうすればキューブをレンダリングできますか?チャンクごとに1つの頂点バッファーにすべてのキューブを作成し、それをレンダリングして、別のスレッドに配置しようとするか、別の方法がありますか? ありがとう!
9 c++  voxels 

5
Vector3で演算子 '> ='を使用できないのはなぜですか?
私は私がように参照する2つの位置の間を移動するための四角形を取得しようとしている_positionAとします_positionB。どちらもタイプVector3です。長方形はうまく動きます。ただし、到達_positionBしても、本来のように反対方向に移動することはありません。 コードをもう一度見てみました。オブジェクトが移動ifすると、コード内のステートメントは、rectsの位置がに等しいフレームを逃したという結論に達しました_positionB。rectsの位置がより大きいか等しい 場合は、コードを変更して方向を逆にすることにしました_positionB。私のコードは長すぎないので、以下に表示します。 using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = false; public Vector2 speed = new Vector2(1f, 0f); private …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

2
コンポーネント間通信を安全かつキャッシュフレンドリーなコンポーネントストレージでサポートするにはどうすればよいですか?
コンポーネントベースのゲームオブジェクトを使用するゲームを作成していますが、各コンポーネントがゲームオブジェクトと通信する方法を実装するのに苦労しています。すべてを一度に説明するのではなく、関連するサンプルコードの各部分について説明します。 class GameObjectManager { public: //Updates all the game objects void update(Time dt); //Sends a message to all game objects void sendMessage(Message m); private: //Vector of all the game objects std::vector<GameObject> gameObjects; //vectors of the different types of components std::vector<InputComponent> input; std::vector<PhysicsComponent> ai; ... std::vector<RenderComponent> render; } GameObjectManagerすべてのゲームオブジェクトとそのコンポーネントを保持しています。また、ゲームオブジェクトの更新も行います。これは、コンポーネントベクトルを特定の順序で更新することによって行われます。配列の代わりにベクトルを使用するので、一度に存在できるゲームオブジェクトの数に実質的に制限はありません。 class GameObject …

2
GLFWのキーボード入力を別のオブジェクトに転送するにはどうすればよいですか?
GLFW3を使用して別のクラスでキーボードイベントを実行しようとすると問題が発生します。私が抱えている問題は、GLFW3が次のように入力に静的関数を使用することです。 static UI u; ... ... static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) { u.controls(window, key, action); } uまた、静的であり、コントロールはWSADキーの入力を保持します(キーイベントを取得できる唯一の方法)。ここから、キーを押すと、コンソールウィンドウでどのキーが押されたかが表示されます。私が抱えている問題は、押されたキーを使用して別のクラスの変数を操作しようとすることです。 この関数を持つMainMenuという別のクラスupdate().があります。この関数内でUIクラスを使用する方法はありますか?
9 opengl  c++  keyboard  glfw 

3
多くの小さなポリモーフィッククラス(プロパティ、メッセージ、イベントとして使用)の柔軟な代替手段C ++
私のゲームには本当に役立つ2つのクラスがありますが、徐々に面倒になっていきます。メッセージとプロパティ(プロパティは基本的にコンポーネントです)。 どちらも基本クラスから派生しており、静的IDが含まれているため、システムは必要なものにのみ注意を払うことができます。それは非常にうまく機能しています...を除いて... ゲームを拡張するにつれて、常に新しいメッセージタイプとプロパティタイプを作成しています。2つのファイル(hppとcpp)と大量のボイラープレートを作成する必要があるたびに、本質的にclassIDと1つまたは2つの標準データ型またはポインターを取得します。 新しいアイデアを試したり試したりすることが実際の雑用になり始めています。新しいメッセージまたはプロパティタイプを作成したいときは、次のように入力できるようにしたい ShootableProperty: int gunType, float shotspeed; ItemCollectedMessage: int itemType; ヘッダーとcppファイルを作成する代わりに、親クラスなどを含むコンストラクターを作成します。 私の心の中で論理的に1行か2行ということを行うには、20行から40行(ガードやその他すべてを含む)程度です。 これを回避するためのプログラミングパターンはありますか? (私は何も知らない)スクリプトについてはどうですか?ほとんど同じである一連のクラスを定義する方法はありますか? 以下は、1つのクラスの外観です。 // Velocity.h #ifndef VELOCITY_H_ #define VELOCITY_H_ #include "Properties.h" #include <SFML/System/Vector2.hpp> namespace LaB { namespace P { class Velocity: public LaB::Property { public: static const PropertyID id; Velocity(float vx = 0.0, float vy = …

2
企業がVisual Studioの本当に古いバージョンをまだ使用しているのはなぜですか?
C ++が使用されている理由を理解しています。それはこの質問についてではありません。 ゲームをインストールすると、一般的にSteam(最近はSteamのみを使用します)は、配布可能なC ++ 2005ランタイムをインストールします。 私の質問は、なぜこれが当てはまるのですか?8年以上前にリリースされたランタイムが依然として普及している理由は何ですか?私が最近インストールしたゲームのいくつかは少し古いので、2、3年の開発時間を想定すれば、それがその時点で実証済みのテストされた標準であると言えるでしょう。 ゲーム会社がVC ++ランタイムの新しいバージョンを使用しないのはなぜですか?
9 c++ 

5
再起動せずにオプション画面からディスプレイ設定を更新するにはどうすればよいですか?
私は現在、Allegro 5とboostを使用してC ++ 11で2D RPGを作成しています。 私の目標は、オプションメニューでオプションが変更されたときにゲームの設定を更新することです。ユーザーに強制的にゲームを再開させたくありません。他のゲームでは、解像度を変更したり、フルスクリーンからウィンドウ表示にしたりするときに再起動を必要としないため、私のゲームもそうではありません。以下のシステムの簡略図をご覧ください。 OptionsScreenからゲームオブジェクトを直接呼び出す必要がないことに注意してください。破線は、私が達成しようとしている効果を示すためのものです。システムの別の部分でオプションが変更されたときに、どういうわけかゲームを更新します。 詳細説明 ScreenManagerには、GameScreen現在存在するすべてのオブジェクトのリストが含まれています。これらは、ポップアップを含むゲーム内のさまざまな画面になります。この設計は、多かれ少なかれC#/ XNAのゲーム状態管理サンプルに準拠しています。 にScreenManagerは、私のGameオブジェクトへの参照が含まれています。Gameオブジェクトは、ゲームの設定を初期化し、変更します。解像度を変更したい場合は、フルスクリーンにするか、Gameクラスで行うボリュームをミュートにします。 ただし、現在、OptionsScreenはGameクラスにアクセスできません。以下の図を参照してください。 GameScreenはonFinished、onTransitionStartおよびの3つのイベントを通知できonTransitionEndます。onOptionsChanged1つの画面だけがそれを行うため、ありません。ScreenManagerはすべての画面をGameScreens として処理するため、そのためのイベント処理を設定できません。 私の質問は、OptionsMenuの変更が再起動を必要とせずにすぐに変更されるように、どのようにデザインを変更できるかです。Game適用ボタンがクリックされたら、オブジェクトの更新をリクエストするのが望ましいでしょう。

2
Editlineをゲーム内コンソールに使用するにはどうすればよいですか?
作成中のC ++ゲームにゲーム内コンソールを追加したいのですが。コンソールをレンダリングして、問題のないコマンドを解析しますが、テキスト入力と編集の側面(たとえば、左/右キー、バックスペースなどの処理)は、もっと興味深いことに費やすよりも多くの努力のようです。 私はなんとかして、履歴と自動補完を備えたコンソールスタイルのテキスト入力の核心を処理するEditline と呼ばれるライブラリを見つけることができました。私が見つけたのは、標準の入力および出力ハンドルを使用し、readline()それ自体がブロッキング呼び出しです。自分の入力を提供し、コンソールを自分の出力にレンダリングできるようにする必要があります。また、ゲームループが継続して実行されることを確認する必要もあります。 これを行うにはどうすればよいですか?
9 c++  text-based 

2
D3D / DXGIは全画面遷移を処理します
D3D11アプリケーションがあり、適切なフルスクリーンサポートを追加したい。これで、DXGIでウィンドウを全画面表示に切り替えることができます。スワップチェーンをブリットする代わりに、フロントチェーンとバックバッファーをフリップするために必要なすべてをDXGIが処理するという印象を受けました。 ただし、DXGIにスイッチを実行させると、マルチモニターセットアップでは信頼性が低いようです。切り替え後のセカンダリ画面は、明確な理由やパターンがないため、長時間にわたって完全に真っ黒のままです。 フルスクリーンウィンドウと残りのデスクトップが他の画面に表示されるまで、数回切り替えて切り替える必要があります。 どうやら私はこれだけではないようですが、Battlefield 3とWoWには多くの人にとって同様の問題があるようです。 さて、実際の質問:これらのAAAゲーム開発会社でさえこれを機能させることができないので、私の最大の望みは、どういうわけか自分でフルスクリーンに切り替えることです。 ウィンドウ/スワップチェーンを適切なバッファフリッピングフルスクリーンモードに上げるためにできることはありますか?

3
Windows 8は引き続きDirectX 9をサポートしていますか?
Windows 8はDirectX 9をサポートしていますか?私は、Windows 8のために作られたC ++とDirectX 9で書かれたいくつかのサンプルを見ていたのでそれは私がここに(一見それを知っていたようではない、ということhttp://directxtutorial.com/Lesson.aspx?lessonid=111-4-2)。たとえば、COMでのDirectXの初期化: ComPtr<ID3D11Device1> dev; ComPtr<ID3D11DeviceContext1> devcon; 私は古い方法でそれを知っているので、それはただ奇妙です。 ID3D11Device *dev; ID3D11DeviceContext *devcon; (私が伝えたいことをご理解いただければ幸いです) 彼らがリリースした新しいOSのために、それが完全に変わっていないことを願っています。
9 c++  directx  windows 

1
gluLookAtはどのように機能しますか?
私の理解から、 gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); 以下と同等です。 glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); しかし、ModelViewマトリックスを出力すると、への呼び出しがglTranslatef()正しく機能していないようです。コードスニペットは次のとおりです。 #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int Ry …

3
コンポーネントベースの設計:オブジェクトの相互作用の処理
コンポーネントベースのデザインで、オブジェクトが他のオブジェクトに対してどのように正確に機能するかはわかりません。 Objクラスがあるとしましょう。私がやります: Obj obj; obj.add(new Position()); obj.add(new Physics()); 次に、ボールを動かすだけでなく、物理を適用する別のオブジェクトを作成するにはどうすればよいでしょうか。実装の詳細ではなく、オブジェクトの通信方法を抽象的に探しています。エンティティベースのデザインでは、次のようになります。 obj1.emitForceOn(obj2,5.0,0.0,0.0); コンポーネント駆動の設計と基本的なことを行う方法をよりよく理解するための記事や説明は、非常に役に立ちます。

3
アニメーションライブラリ(IK&FK)を作成するために必要なノウハウは何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 アニメーションに適したライブラリを見つけることができません。見つけたライブラリは本当に古く、廃止されていますが、ライブラリが比較的小さいことに気付いたので、自分でコーディングすることを考えています。どこから始めればよいですか?これの基本は何ですか?これに関する本はありますか? アニメーションに適したファイル形式についてのいくつかの追加のメモも高く評価されています。 C ++を使用しています。

3
Minecraftのようなブロックワールドを処理する方法
Minecraftのようなブロックの世界で簡単なゲームを書きたいです。私の理論的な質問は、再生中にこのブロック情報を処理する最良の方法は何ですか。私の最初のアイデアは巨大な配列でしたが、これはメモリ不足を引き起こすと思います。多分私はプレーヤーの近くのブロックをロードする必要があるだけです。 ファイルから必要なブロック情報をロードし、必要なものだけをメモリに保持するにはどうすればよいですか?

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