問題タブ [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 Keypress イベントが検出されない
このコードが SDL キー押下イベントを取得しない理由について、私は完全に困惑しています。他の SDL イベント (わかりやすくするために削除されています) は正常に機能します。私の XP または Vista マシンでは動作しません。コンパイル/リンク エラーは発生せず、キーダウン イベントを受け取ることはありません。
c - SDL ウィンドウを最大化
アプリケーション ウィンドウを最大化するには、SDL にどのように指示すればよいですか?
これらのフラグでウィンドウを作成しています: SDL_OPENGL | SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE。
c++ - SDL_eventKEYDOWNの動作の問題
ここに問題があります。キーダウンイベントとキーアップイベントを検出するためのイベントループを作成しました。私が遭遇している問題は、キーが押されたままになっているときに、キーダウンイベントがキーダウンイベントとキーアップイベントを生成していることです。矢印キーを使用してオブジェクトを移動し、キーを離すと移動を停止します(keyup)。どんな助けでも助けになるでしょう。ありがとう。=)
ジャスティン
PSコードを投稿しますが、正しく表示されません。
コードを投稿する方法を理解しようとしているときに、2つのケースでデフォルトが省略されていることに気付きました。これでコードが機能します。ケースを調べ、キューにあるものと一致するコードを実行し続けました。愚かな私。すべての助けをありがとう。=)
opengl - クリッピングせずにSDLサーフェスをスケーリングする適切な方法は?
SDL サーフェスをスケーリングする適切な方法は何ですか? オンラインで 1 つの説明を見つけましたが、Surface をピクセルごとに再描画する必要がありました。そのように画像を再描画するのではなく、SDL を介してネイティブにこれを行う方法があるはずです。これをカバーするSDLドキュメントには何も見つかりませんでした。サーフェスの幅と高さを変更することで問題なくサーフェスのサイズを変更できますが、結果のサーフェスはクリップされます。
c++ - クライアント側のインタラクティブな 2D 世界地図: 最高の地図パッケージが必要ですか? または、作成するのに最適な C++ グラフィックス/キャンバス ライブラリはありますか?
世界の 2D 政治地図が必要で、その上にアイコン、テキスト、動き回る線を描きます。ユーザーはマップを操作してアイコンを配置および移動し、マップをズームインおよびズームアウトします。
Google マップのインターフェースは、私が必要としているものからそれほど離れていませんが、これは Web 関連ではありません。これは Windows MFC アプリケーションであり、Web インターフェイスではなく、アプリケーション内に存在するマップについて C++ API と対話したいと考えています。理想的には、別のサーバーも必要ありません。サーバーはローカルで (インターネット上ではなく) 実行する必要があります。これを行うには、どの定型マップ パッケージまたはグラフィック ライブラリを使用すればよいですか? グラフィックプログラミングの経験はありません。
これは厳密には 2D であるため、Google Earth や WorldWind のようなものは適切ではないと思います。優れたベクター グラフィックスのサポートはクールであり、ビットマップの簡単な描画は重要です。
すべての缶詰オプションは Web 指向のようです。柔軟なキャンバス プログラミングについて私が知っているのは SDL だけですが、おそらく一般的な問題であるために、独自のマップを作成するのは大変な作業になるようです。もっとレベルの高いものはありますか?Adobe Flash オブジェクトを操作する方法はあるのでしょうか? 私はかなり無知です。
c++ - C ++でSDLを使用し、画像をブリットしようとしているセグメンテーション違反
OK-ここに面白いものがあります。私はテトリスクローンに取り組んでいます(基本的に私のスキルを「レベルアップ」するため)。コードをリファクタリングして、希望どおりに抽象化しようとしていました。以前は問題なく機能していましたが、画像がブリットされる前にセグメンテーション違反が発生しました。私はそれを無駄にデバッグしようとしました。
プロジェクトのSVN作業コピーをここに投稿しました。
これは単なる小さなプロジェクトであり、私よりも知識が豊富で優れたデバッガーがあれば、すぐに理解できるでしょう。唯一の依存関係はSDLです。私が間違っていることを教えてくれる人への称賛。
編集:私が知る限り、私が今持っているものと以前持っていたものは論理的に同じなので、私が今持っているものがセグメンテーション違反を引き起こすとは思わないでしょう。作業中のコピーでsvnrevertを実行し、再コンパイルするだけで、機能していることがわかります...
c++ - SDL_DisplayFormatAlpha の問題 (c++)
この質問で述べたように、開発中の小さなゲームに SDL を使用しています。現在、SDL_DisplayFormatAlpha に問題があります。PNG 画像からアルファ チャネルを使用してサーフェスを作成しようとしています。以前は機能していましたが、少しリファクタリングを行ったところ、何かが壊れました。このコンストラクターに絞り込みました。
これは問題なくコンパイルされますが、実行するとセグメンテーション エラーが発生します。gdb によって報告されたエラー:
スタック トレースは次のとおりです。
コメントアウトしてsurface = SDL_DisplayFormatAlpha( tempSurface );
コメントSDL_FreeSurface( tempSurface );
を外すと、surface = tempSurface;
次のようになります。
それからそれはうまくいくようです。誰が何が起こっているのか教えてもらえますか? 実際、SDL_DisplayFormatAlpha をコメントアウトすると、透明度も機能するようです。その関数は、アルファ チャネルをまだ持っていない画像でのみ使用することを意図していますか?
events - SDLイベントのデバッグの問題
現在、SDLイベントを機能させようとしていますが、プログラムが機能していないという問題があります。
プログラムを実行したとき。非常にすばやく開閉し、デバッグで次のエラーが発生しました。
Visual Studio C ++ Express Edition 2008を使用していますが、含まれているファイルは次のとおりです。
私が動作させようとしているコードは、http: //lazyfoo.net/SDL_tutorials/lesson04/index.phpにあります。
window - 「X」を押すか、ウィンドウアプリケーションの右上の下部を閉じることができません
SDLイベントを実験していますが、問題が発生しました。何らかの理由で、ウィンドウアプリケーションの右上にある「X」を押すか、下部を閉じることができません。現在、それがSDLコーディングに関連しているのか、それともウィンドウブラウザの問題なのかはわかりません。
それがSDLの問題なのかウィンドウの問題なのか誰かが知っていますか?
c++ - OpenCV IplImage を SDL_Surface に変換するには?
SDL_Surface
を取り、それを に変換しIplImage
、cvBlobsLib を使用してブロブを見つけ、ブロブを画像上のスポットとしてペイントし、出力IplImage
を に戻すプログラムを作成しようとしていSDL_Surface
ます。
私はほぼ完了しています: IplImage
back を anに変換することだけSDL_Surface
がまだ行われていません。この IplImage には 3 つの画像チャネルがあり、ピクセルあたり 8 ビットです。使用できる呼び出しが 2 つあると思います。
私は現在試していSDL_CreateRGBsurfaceFrom
ます。しかし、ピッチ、Rmask、Gmask、および Bmask の正しい値が何であるかはわかりません。(アルファ チャネルがないため、Amask は 0 です。)
これを行う方法を説明して、誰かが私を助けてくれますか?
ありがとう!
編集:たとえば、これは私が使用しようとしたコードです:
(SDL ドキュメンテーションには、「ピッチは、サーフェスのスキャンラインのサイズ (バイト単位)、つまり widthInPixels*bytesPerPixel です。」と書かれています)。これは、「深さ 8、nChannels 3、ピッチ 1920」を出力し、完全に赤い画像を表示します。8 ビット イメージを 24 ビット (チャネルあたり 1 バイト) に変換することで解決できると思いますが、その方法がわかりません。何か案は?