問題タブ [sdl-image]
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.
sdl - SDL2 でのテクスチャのフェード - SDL_image の使用
SDL_imageを使用して問題なく(png)に画像をロードし、完全に表示することもできます。私がやりたいことは、画像を完全に透明から完全に不透明に徐々にフェードインすることです。いくつかのチュートリアルで言及されているのを見たことがありますが、これはハードウェア アクセラレーションと同様に SDL_image がロードされる場所でSDL_SetAlpha
使用するためのものです。SDL_Surface
SDL_Texture
優れたパフォーマンスを維持しながら、これを行う方法について誰か助けてもらえますか?
c++ - C++ - SDL/OpenGL を読み込んだ画像の色が反転する
ゲームに画像をロードしようとしています。SDL と OpenGL、および SDL_Image フレームワークを使用して、C++ で記述されています。画像を取得し、必要に応じて回転/反転しましたが、主な問題が 2 つあります。
まず、画像の色が完全に反転しています。(つまり、青 -> 赤) ピクセルあたりのバイト数に応じて、「GL_RGB」または「GL_RGBA」のいずれかの形式があります。PNG、JPEG、および BMP を試してみましたが、すべて同じです。道に迷いました!
-- 私のばかげた間違いを訂正してくれた datenwolf に感謝します!
次に、画像は 1 回描画されます。それだけです。他のバッファで再描画されることはありません。一度表示されるだけで、次のフレームが描画されるとすぐに消えます。
c++ - 他のグラフィックスを使用しながら SDL_ttf でテキストを描画する
私は SDL を使用してこのゲームを作成していますが、変数や情報などのテキストを表示できるようにする必要があります。問題は、SDL_OPENGL が SDL_SetVideoMode() のパラメーターである場合、テキストをレンダリングできないことです。
なくても完全に機能しますが、グラフィックをレンダリングできません。明らかに、両方が必要であり、テキスト用の画像を描画するつもりはありません。
TL;DR SDL_SetVideoMode(SCREEN_WIDTH,SCREEN_HEIGHT,32,SDL_SWSURFACE | SDL_OPENGL); から SDL_OPENGL を削除せずにテキストを描画する必要があります。
役立つ場合は、C++ と code::blocks を使用しています。他に必要な情報はありますか?
c++ - SDL : 画面ではなく背景にブリッティングしますか?
こんにちは、私は SDL/C ゲームに取り組んでいます。大きな背景 (6000*1024) と (1024*768) の画面でスクロールするカメラを作成しました。
したがって、画面上の何かを目的地としてブリットしたい場合:
移動するときはカメラに従いますが、敵は画面ではなく背景で移動する必要があります。
したがって、目的地としてバックグラウンドで何かをブリットすると、次の問題が発生します。
次の写真のように移動すると、古い画像が背景に残ります。
c++ - Xcode SDL リソース フォルダー
Xcode で SDL プロジェクトを作成しており、画像が保存されている resources というフォルダーがあります。SDL アプリケーションで SDL_LoadBMP を使用してこれらの画像にアクセスするには、リソース フォルダーを実行可能ファイルと同じフォルダーに配置する必要があります。アプリケーションを実行するたびに、リソースを「/Users/admin/Library/Developer/Xcode/DerivedData/SDL_app-awvygturnguyeqgwpjowmouadbjf/Build/Products/Debug」フォルダーにコピー アンド ペーストする必要はありません (すべてのランダムな文字がフォルダー リンクにある理由がわからない)。私は Lazy Foo の最初の SDL チュートリアルに従っています: http://lazyfoo.net/SDL_tutorials/lesson01/index2.php画面に画像を表示しようとしています。SDL_LoadBMP("hello.bmp") の代わりに SDL_LoadBMP("resources/images/hello.bmp") であることを除いて、リンク先のチュートリアルとまったく同じであるため、ここにコードを表示する必要はありません。リソース フォルダを製品ディレクトリにコピーすると、すぐにアプリケーションが動作します。フォルダの画像などを見せるつもりだったのですが、「評判」が足りませんでした。
opengl - テクスチャが表示されず、メッシュが黒く表示される
OpenGL アプリでテクスチャリングを機能させようとするたびに、明らかな何かを見逃しているようで、デバッグに何時間も費やしてしまいます。それは再び起こりました。かなり長い間、コードを古い動作中のアプリと比較しようとしてきましたが、テクスチャがまったく表示されないため、まだ何かが欠けています. メッシュが黒く見えます。OpenGL エラーは発生しません。
問題を絞り込むための助けに非常に感謝しています。
これが私のコードの一部です。間違いはコードのこれらの領域にあると確信しています。
OpenGL.cpp:
シンプルな.vsh:
simple.fsh:
image - 「'IMG_Load' への未定義の参照」CodeBlocks および SDL_Image エラー
Lazy Foo のチュートリアルで SDL を学習していますが、IMG_Load が機能していないようで、これ以上先に進むことができません。彼が言うように設定してみましたが、うまくいきません。すべてのインクルード ファイルを include フォルダーに入れ、すべての lib ファイルを lib フォルダーに入れます。私が見つけたのは、libフォルダーにx86およびx64フォルダーがあったことです。x64 を試したところ (64 ビット システムを使用していたため)、すべて正常に動作し、CodeBlocks は提案を教えてくれました (「img」と書いたときのように、「IMG_Load」という提案が表示されました (これは、ライブラリが初期化されたことを意味します))。 、しかし、コードをコンパイルすると、http://puu.sh/3Eqa5.pngが発生します。x86 バージョンで試してみると、まったく同じエラーが発生します。
インターネットで少し検索したところ、いくつかのスレッドしか見つかりませんでしたが、それらのほとんどは放棄されていました. 私の問題に最も近い答えはこれでした: http://www.dreamincode.net/forums/topic/118299-sdl-image-error-sdl/しかし、男は Linux が使用できる問題をダウンロードすることで問題を解決しました。 Windows ではありません。}
Windows 7 64 ビット、CodeBlocks 12.11、SDL 1.2.15、および SDL_Image 1.2.12 を実行しています。
何が問題なのかさっぱりわかりません!
c++ - SDL C++ プログラムが約 12 秒後に一貫してクラッシュする
現在、C++ で SDL を使用して簡単なゲームを作成しています。コマンドラインを使用して Ubuntu でゲームをコンパイルして実行すると、ゲームは問題なく完全に実行されます。しかし、Windows 7 で Codeblocks を使用して同じコードをコンパイルしようとすると、毎回約 12 秒後にプログラムがクラッシュします。GDB を使用してメモリ関連の問題を検索し、すべてのアセット (画像、音楽など) が正しいディレクトリにあることを確認しましたが、問題の解決に役立つものは何も見つかりませんでした。Windows で SDL または C++ コードをコンパイルする際に、Linux では不要な何かが不足していますか?
どんな助けでも大歓迎です。
ここに私のコードへのリンクがあります: https://www.dropbox.com/s/gebuas2xc9esq82/src.zip
次の行を使用して main.cpp ファイルのみをコンパイルします: g++ -o main main.cpp -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf
このコードをコンパイルするには、SDL、SDL_image、SDL_mixer、および SDL_ttf がインストールされている必要があります。