問題タブ [sdl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - SDL を使用して C++ で RPG ゲームをプログラミングする方法は?
SDL を使用して C++ で 2D RPG ゲームをプログラミングする方法を知りたいです。
調べてみましたが、いいものが見つかりませんでした。記事の多くは基本的すぎて、実用的なことを掘り下げていませんでした。C++ と SDL を使用して RPG をプログラミングする方法を学べるように、記事、無料の書籍、またはその他のリソースを提供してくれる人はいますか?
編集:
SDL のドキュメントは必要ありません。SDL を使用して RPG ゲームをプログラミングしていますが、この作業に役立つ例がいくつか必要です。
c++ - SDL/C++ OpenGL プログラム、SDL が SIGINT をキャッチしないようにするにはどうすればよいですか
Linuxで実行されているOpenGLアプリケーションにSDLを使用しています。私の問題は、SDL が SIGINT をキャッチして無視していることです。私はスクリーン セッションを使って開発を行っており、実行中のプログラムを CTRL-C で強制終了することはできません (コンピューターが実行されているプログラムはプロジェクターに接続されており、入力デバイスはありません)。
SIGINTをキャプチャしないようにSDLに渡すことができるフラグまたは何かがありますか? プログラムがシグナルを受信したとき(つまり、ctrl-cを押したとき)にプログラムを停止したいだけです。
delphi - ウィンドウがオフスクリーンのときに CreateDIBSection() が失敗するのはなぜですか?
VCL フォームにSDLレンダリング サーフェスを埋め込む Delphi コンポーネントを構築しています。SDL サーフェスが作成された時点でフォームが画面上にある限り、問題なく機能します。そうしないと、レンダリング テクスチャを作成できません。
SDL コードをトレースしたところ、失敗する (NULL を返す) 次の関数呼び出しに行き着きました。
HDC は、適切に設定された独自の HWND ウィンドウ ハンドルを持つコントロールが所有する描画コンテキストへの有効なハンドルです。しかし、Delphi ではよくあることですが、コントロールがオフスクリーンで作成されると (コントロールを含むすべてのフォームは、表示されるまで非表示の状態で作成されます)、コントロールが実際に表示されるまで、CreateDIBSection 呼び出しは失敗します。
また、画面上で作成された場合は、非表示にして再表示します (たとえば、タブ シート上にあり、タブを切り替えると)、作成したテクスチャはこのプロセス中に空白になります。
これは私を夢中にさせています。何が起こっているのか、どうすれば回避できるのか知っている人はいますか?
c++ - シンプルなクロスプラットフォームの C++ GUI コンソール -- 方法は?
ゲームを作成していて、単純なテキスト入力用のコンソールが必要になりました。ファイル名と単純な値。
SDL を使用すると、私のコンソールは次のようになります。
これは、アプリケーションのメイン イベント ループから呼び出されます。コンソールがアクティブで、最後のイベントがキー押下であった場合、入力の結果は必要な状態で処理されます。
もちろん、それは信じられないほどぎこちなく見えます... ゲームのウィンドウで簡単にレンダリングできる単純なコンソールを実装するためのより良い方法は何ですか? (std::cout の再ルーティングや、UNIX コンソールを起動するためのコードの作成など、非常に移植性の低いソリューションには近づかないでください。)
c++ - pthread を使用して複数のコアを利用する際の問題
SDL と Pthread を使用して C++ でレイ トレーサーを開発しています。プログラムで 2 つのコアを使用する際に問題が発生しています。スレッドは機能しますが、両方のコアを 100% 使用していません。SDL とのインターフェイスとして、SDL_Surface.pixels のメモリに直接書き込むので、SDL によってロックされることはないと思います。
私のスレッド関数は次のようになります。
注: scene->renderPixel は const であるため、両方のスレッドが同じメモリから読み取ることができると想定しています。これを行う2つのワーカースレッドがあり、メインループでこれらを使用して動作させます:
注:スレッドを同期する代わりに、スレッドを作成して参加することも試みました。これを「-lpthread -D_POSIX_PTHREAD_SEMANTICS -pthread」でコンパイルすると、gcc は文句を言いません。
私の問題は、実行中の CPU 使用率のグラフを使用して最もよく説明されています:
(ソース: jopsen.dk )
グラフからわかるように、私のプログラムは一度に 1 つのコアしか使用せず、時々 2 つのコアを切り替えますが、両方を 100% 駆動することはありません。私はいったい何を間違えたのでしょうか?シーンでミューテックスやセマフォを使用していません。バグを見つけるにはどうすればよいですか?
また、scene->renderPixel() の周りに while(true) を配置すると、両方のコアを 100% にプッシュできます。したがって、これはオーバーヘッドが原因ではないかと疑っていますが、複雑なシーンを考えると、0.5 秒ごと (たとえば FPS: 0.5) だけ同期します。私のバグが何であるかを伝えるのは簡単ではないかもしれませんが、これをデバッグするアプローチも素晴らしいでしょう...私は以前にpthreadsで遊んだことがありません...
また、これはハードウェアまたはカーネルの問題である可能性があります。私のカーネルは次のとおりです。
ノート:
sdl - SDL_Surface での Extern コンパイル エラー
変数のコンパイル エラーが発生しCode::Block
ました。SDL_Surface
奇妙なことに、この種のエラーを受け取ったのはこれが初めてです。以前にこのコード行を使用したことがあり、正常に機能していたためです。
この問題の原因となるコードのサンプル行の 1 つ (同じ問題を伴ういくつかの行) は次のとおりです。
結果のエラーは次のとおりです。
エラーを理解しようとしましたが、それが何であるかわかりません。誰が何が間違っているのか知っていますか?
multithreading - SDl_Threads を正しく使用するにはどうすればよいですか?
私はスレッド、SDL、およびグラフィックが一般的にどのように機能するかについては初めてです。私は LazyFoo の SDL チュートリアルをすべて見てきましたが、非常に役に立ちました。しかし、マルチスレッドに関する彼のチュートリアルでは、別のスレッドでビデオ関数を使用しないでください。そうしないと、問題が発生する可能性があるとコメントしています。グラフィックスとスレッドについてはまだ漠然としか理解していないので、どのように行うべきか興味があります。
私のプロジェクトの 1 つがシューティング ゲームであるため、すべてのグラフィックを表示する 1 つのスレッドを作成し、1 つのスレッドが船のすべてのプレイヤー入力を受け取り、別のスレッドが敵の AI を受け取るかどうかを考えていました。
これがどうあるべきかではない場合(間違っていると思います)、ユーザー入力と敵AIをスレッドでグラフィックスを実装する方法について誰かアドバイスがありますか?
Lazyfoo のチュートリアルについては、次のリンクを参照してください: http://lazyfoo.net/SDL_tutorials/
c++ - OpenGL/SDL を使用して、マウスで FPS のようにカメラを制御するにはどうすればよいですか?
OpenGL/SDL を使用して、この基本的な 3D デモを作成しました。「a」と「s」を使用して左右に「機銃掃射」し、「s」と「w」を使用して前後に移動できるように、キーボードのコールバックを処理しました。
ただし、マウスの動きに基づいてカメラが「見ている」方向を制御できるようにしたいと思います。FPS シューターのように、マウスを動かすと、カメラがさまざまな方向を見回します。
マウスを動かしたときにカメラクラスを正しく「ポイント」するためにマウスコールバックを利用する方法を知っている人はいますか?
これは、私の SDL ファイルと、上で貼り付けたファイルと Camera クラスを含む tar です。 http://www.filedropper.com/fpsdemotar
カメラを向けるという観点から、マウスのコールバックを処理するときにどのアルゴリズムを使用する必要があるかについて、誰かがヒントをくれれば幸いです。
ありがとう!