SDLスレ ver.2.0

■ このスレッドは過去ログ倉庫に格納されています
2006/02/28(火) 20:40:12ID:MvXDyxzs
マルチプラットホームな汎用ゲームライブラリの
SDLについてのスレッドです。
最新情報、参考になるソース、質問等なんでもどうぞ

本家
ttp://www.libsdl.org/

SDL_mixer ttp://www.libsdl.org/projects/SDL_mixer/
SDL_image ttp://www.libsdl.org/projects/SDL_image/

SDLdoc-jp ttp://www.tacoworks.jp/software/SDLdoc-jp/
GamDev ttp://gamdev.org/w/?%5B%5BSDL%5D%5D
初心者の初心者による初心者の為のSDL ttp://tokyo.cool.ne.jp/sdl/

前スレ
http://pc8.2ch.net/test/read.cgi/gamedev/1005469181/
2007/08/14(火) 15:35:48ID:GyW+IVPX
窓に出力するのは結構面倒だぜ
173名前は開発中のものです。
垢版 |
2007/08/14(火) 15:57:26ID:aAQZrqPS
>>169ヘッダファイルよみこんでました

>>170すいません、意味がわかりませんでした。ほんと、すみません。

>>171stdout.txtありました。ちゃんとかいてありました。
画面に出力する場合は fprintf( stdout, "maimai" ); でいけるかなと思ったんですが、
うまくいきませんでした。
もしかしてSDLの標準ライブラリには、そのような関数はないんですか?
174名前は開発中のものです。
垢版 |
2007/08/14(火) 15:59:38ID:aAQZrqPS
>>172そうですかやっぱりSDL_kanjiなどをつかうべきですか?
2007/08/14(火) 19:56:31ID:8W3CWuxg
だからコンソール出せばいいじゃん
2007/08/14(火) 20:44:53ID:TVRq227C
>>168
そのサンプルで同じようにしたいなら
どのような手段を利用したいのか教えて欲しい
もしくはそのサイトへリンクを張るのも手だ

不足している情報は「どこに」「どういった目的で」文字を出力したいか
そして、現在は「どのような手段」を使ってそれを達成しようとしているかだ

間違いを修正して欲しいなら正解だと思っている方法を提示すべきだし
新たな方法を示して欲しいなら目的や条件をはっきりさせて欲しい


デバッグ目的であればコンソールやファイルに出す方法があるし
もしくは(Windows限定になるが)OutputDebugStringを使うのも便利だ


ただ、現象からみてコンソール出してないだけだよなぁ……
出し方わかる?たぶん色んなソースをチャンポンしたせいで
mainとWinMainのソースが混ざってるだけだと思うんだが
2007/08/14(火) 22:35:44ID:Hyt9tt6Y
Windows版のSDLでprintfをコンソールに表示したかったら、
SDLmain.libをコンソールアプリで作り直さないと無理だよ
178168
垢版 |
2007/08/14(火) 23:20:35ID:aAQZrqPS
レスありがとうございます。

>>175本当にごめんなさい、意味がわからないです。

>>176>>不足している情報は「どこに」「どういった目的で」文字を出力したいか
そして、現在は「どのような手段」を使ってそれを達成しようとしているかだ。
「どこに」は、ウィンドウです。「どういった目的で」は、いまはとくに目的はありませんが、
サンプルどうりの結果が得られないのは、自分の環境に問題があるように思えて、心配です。
「どのような手段」は、今は、見つかっていません。どうしようもなければSDL_kanjiを使おう思っています。

間違いを修正して欲しいなら正解だと思っている方法を提示すべきだし>>printf("maimai");をメイン関数の中に入れてウィンドウにmaimaiと表示させたいです 。

デバッグ目的であればコンソールやファイルに出す方法があるし >>デバックが目的ではないです。
もしくは(Windows限定になるが)OutputDebugStringを使うのも便利だ>>調べてみます。

ただ、現象からみてコンソール出してないだけだよなぁ……
出し方わかる?たぶん色んなソースをチャンポンしたせいで
mainとWinMainのソースが混ざってるだけだと思うんだが>>ごめんなさい、いみがわかりません。




2007/08/14(火) 23:30:33ID:v4Co7u1c
SDLより前に基礎的なことが分かってなさ過ぎる。
printfは基本的に標準出力(コンソールやファイルやプリンタ)への文字表示命令であって、
SDLみたいなグラフィック画面への出力とは全く別物なんだよ。

そもそも、どこのサンプルでどう上手く行かないかも明示せずに
曖昧で焦点がぼやけた質問で人様を煩わせるのはちょっとどうかと思うんだわ。
そんな調子では超能力でもなければ君の問題を把握することができんよ。
2007/08/14(火) 23:33:31ID:Hyt9tt6Y
もーっ、そのものズバリ書いたってのにー

printf() は Windows 以外だったら標準出力(コンソール)に出るが、
公式で配っているWindows版のSDLはコンソールアプリじゃなくてWindowアプリとして作られてるので
そのままではprintf()を使ってもコンソールには何も出ない
その代わりに標準ではstdout.txtに出力されるようになってる
これはfreopen()を使って別のファイルにすることは可能

あと、Windows版SDLでは、自分で書いたmain()は #define 使ってSDL_mainに書き換えられてる
本当のエントリポイントはSDLmain.libの中にあるWinMain()
だから、コンソールにprintfを出力させたかったらSDLmain.libを作り直す必要があるってこと
2007/08/14(火) 23:37:06ID:GyW+IVPX
SDL_kanjiは知らないけど、日本語使わない漏れはSDL_ttfのTTF_RenderUTF8_Solid()で作ってSDL_BiltSurface()で貼り付けるのを関数化して文字列渡して使ってる
しかしstdout.txtあるのは便利だよな
2007/08/15(水) 00:05:55ID:QwtLL8/g
お前ら凄い親切なw
伝わってないのが端から見てて歯痒い。

>>179-180以上にかみ砕くのは俺には無理と思うが、補足。
・printfでstdout.txtに出力されるのはとりあえずWindows環境では普通の動作なんで別に心配しなくていい。
とりあえず出力した文字の確認もできるだろうし、ウィンドウに出力されなくても問題ないよね?

・普段printfで出力してるコンソール画面は、SDL使ってる限り出せないと思っていい。
ウィンドウに文字を出したいなら、文字列を画像(サーフェス)として生成して、それを表示する必要がある。
それをやってくれるのがSDL_ttfとかSDL_kanji。使えるフォントの種類に違いがあるんだが、Windowsなら何も考えずSDL_ttfを使っていい。

あと、なんか、上のレスを見る限り意味がわかりませんと返ってくる気が凄くするんだが、わからんのがどの部分のどの用語なのかとかを書かないと説明しようがないんじゃないかと思う。
183168
垢版 |
2007/08/15(水) 00:10:50ID:PDGC0i0E
>>179
ものっっっすごく申し訳ありません。
もしよければhttp://web1.nazca.co.jp/studioh/diary015.htmlに飛んでもらって、そのページのEvent関数の
if(ev.type == SDL_KEYDOWN) //キーが押されたかどうかの確認。
{
printf("キーが押されました");ここについて説明してもらえれば助かります。

>>180
わかりやすい説明ありがとうございます。
mainに見えても実はWinMainとゆうことですね。WinMainでprintfが使えないのはしっています、ですが、
http://web1.nazca.co.jp/studioh/diary015.html
if(ev.type == SDL_KEYDOWN) //キーが押されたかどうかの確認。
{
printf("キーが押されました");
で使われています。普通の環境で"キーが押されました"が表示されないのは当たり前でしょうか?
2007/08/15(水) 00:32:43ID:tPtheI7D
>>183
> 普通の環境で"キーが押されました"が表示されないのは当たり前でしょうか?
「Windowsの」普通の環境では表示されないのが当たり前
stdout.txtに出力されるのが当たり前
2007/08/15(水) 00:34:53ID:4BjrTEfx
違う人だけど答えます
printfの出力先は"stdout"ってのは常識ですよね?(俺もまちがってるかも)
で、windowsのSDLではこの"stdout"ってのは[stdout.txt]とイコールなわけです。
だから、printfは[stdout.txt]に出力するようになっているわけです。

だから、このプログラムはもし、何かしらのキーが押された場合に、[stdout.txt]に

キーが押されました

と、書き込むプログラムなわけです。
要は、SDLのイベントの処理の仕方を説明したプログラムです


なんだか、いろいろ勘違いされてるみたいですが、SDLにウィンドウに文字列を描画する、WinAPIでいうところのTextOutのような関数は存在しません。
もし、ウィンドウに文字列を描画したいなら皆さんが言うようにSDL_ttfや、SDL_kanjiなどを使うか、
自分でbitmapを用意して、それを描画しなくてはなりません

というより、stdoutとか理解してますか?
SDL以前にCがあやふやではないですか
2007/08/15(水) 00:43:15ID:1oZuV42R
たぶん>>185の言っていることの一割も理解してないんじゃないかと
2007/08/15(水) 00:59:57ID:82FrRuTB
多分分かってるのは「違う人」だけだと思う
188違う人
垢版 |
2007/08/15(水) 01:01:08ID:4BjrTEfx
189違う人
垢版 |
2007/08/15(水) 01:02:11ID:4BjrTEfx
すまん、誤爆、、、

>>187
どこか、間違ってますか?できれば教えてもらいたいのですが、、、
こんな長文書いといてなんですが、自分もC
190違う人
垢版 |
2007/08/15(水) 01:04:34ID:4BjrTEfx
は結構微妙なんで


てか、すみません
なんか、ビューワの調子が、、、
191168
垢版 |
2007/08/15(水) 01:31:47ID:PDGC0i0E
>>185>>要は、SDLのイベントの処理の仕方を説明したプログラムです
完璧理解しました、簡単なことでしたね。
どうもありがとうございます。

みなさん親切にどうもありがとうございました。
2007/08/15(水) 01:41:12ID:9feGd8Aj
簡単なことでしたね、じゃない。捨て台詞みたいでちょっと感心しないな。
お前には難しかったんだろ。
2007/08/15(水) 01:53:08ID:wraMEEur
まぁまぁ。俺も同じこと書きそうになったけど。
2007/08/15(水) 11:01:47ID:OErOo2Dx
っていうかVC++2005EEでもbcc+devでもビルド設定でコンソールアプリケーションに指定したら普通にでるよ
処理止めないとすぐ消えるけど
2007/08/15(水) 13:24:53ID:4BjrTEfx
>194
いわれてみれば、確かにw
思いつきもしなかった
2007/08/18(土) 23:57:30ID:NM/B7TGH
if( g_WindowActive ){ // ウィンドウがアクティブかどうか
move();
  draw();
} else {
SDL_WaitEvent(&g_Event);
}
if(!PollEvent()){ // SDL_PollEventでイベント処理
break;
}
こんな感じでウィンドウがアクティブのときは動いて、
非アクティブのときは止まっているようにしたいんですけど、
ウィンドウが完全に見えている状態で非アクティブからアクティブになっても
止まったままなんです。
非アクティブのときにCPU使わないようにしようとWaitEvent入れたらこうなりました。
どうすれば対処できますか?
2007/08/19(日) 01:32:06ID:ddUge9Ur
>>196
そもそもアクティブ/非アクティブの状態の取得をどうやってる?
完全に想像だから間違ってたらすまんが、SDL_APPACTIVEは最小化されてるorされてないしか判定しない。
フォーカスの有無ならSDL_APPINPUTFOCUS
198196
垢版 |
2007/08/19(日) 16:58:00ID:87LzenFa
>>197
PollEvent()内で、このような処理をしています。(ほかのイベントは省略しています)
while(SDL_PollEvent(&g_Event)){
switch(g_Event.type){
case SDL_ACTIVEEVENT:
if( (g_Event.active.state & SDL_APPINPUTFOCUS || g_Event.active.state & SDL_APPACTIVE) && g_Event.active.gain == 0 ){
g_WindowActive = false;
}
if( (g_Event.active.state & SDL_APPINPUTFOCUS || g_Event.active.state & SDL_APPACTIVE) && g_Event.active.gain == 1 ){
g_WindowActive = true;
}
break;
}
}

最小化からの復帰と別ウィンドウからフォーカスが移って再描画されるときはまた動き出すのですが
ウィンドウが完全に見えているときのフォーカスの変化に反応してくれないんです。
2007/08/19(日) 17:23:23ID:39ZqT3vu
>>196
SDL_WaitEvent() で拾ったイベントを捨ててるからだろ…
200196
垢版 |
2007/08/19(日) 20:42:20ID:87LzenFa
SDL_WaitMessage()のあとにもイベント処理をはさむようにしたらうまくいきました。
どうもありがとうございます。
2007/09/01(土) 16:14:39ID:uj+9umUP
先生!SDL_AddTimerが0しか返してくれやがりません><
2007/09/01(土) 16:29:18ID:4VIN7FZV
>>201
エスパーすると SDL_Init() に SDL_INIT_TIMER を渡してないんだろう
2007/09/01(土) 16:30:04ID:uj+9umUP
ごめんなさいSDL_InitにSDL_INIT_TIMER渡してないだけでしたごめんなさい
2007/09/01(土) 22:08:46ID:3oMJBmXZ
美しすぎる流れに完敗
2007/09/01(土) 22:35:48ID:3R+RRVDL
久々にいいモン見れた
今日は夢に美少女が出てくるに違いない
206名前は開発中のものです。
垢版 |
2007/09/06(木) 00:56:52ID:4VpwTJkO
207名前は開発中のものです。
垢版 |
2007/09/06(木) 01:00:03ID:4VpwTJkO
質問です。SDL_VIDEORESIZEが送られてくるタイミングっていつですかね?
2007/09/06(木) 01:52:03ID:ernuANIp
SDL_SetVideoMode()で SDL_RESIZABLE を渡してウィンドウ作って
そのウィンドウをリサイズしたときじゃね?
209名前は開発中のものです。
垢版 |
2007/09/06(木) 02:51:05ID:4VpwTJkO
ごめんなさい間違えた。SDL_VIDEOEXPOSEです。
2007/09/06(木) 04:18:37ID:ernuANIp
>>209
Windowsとかだと普通にウィンドウが表示されたときや隠れたウィンドウが表に出たときに
飛んでくると思うけどXだと全然こなかったりするね…

あとは別スレッドでデータ更新してメインスレッドで描画する場合に別スレッドから
自前で SDL_PushEvent() で送ってやるときとかに使うこともあるかな…
2007/09/06(木) 07:44:32ID:RdypgvEp
X の場合 GL と併用しない限り送られてこないと思う。
Windows の場合は WM_ERASEBKGND のタイミング。
212名前は開発中のものです。
垢版 |
2007/09/06(木) 18:25:11ID:4VpwTJkO
ありがとうございます。
SDL_PushEvent() を使えばInvalibateRect()のように
SDL_VIDEOEXPOSEを送ることができますか?
2007/09/06(木) 18:39:27ID:1+3n0mte
>>212
あんな感じで使える。
でもSDL_ExposeEvnet には範囲がないから範囲指定はできない。
214名前は開発中のものです。
垢版 |
2007/09/07(金) 08:53:04ID:D9hBhXmU
ありがとうございます。
ちょっと調べてきます
2007/09/07(金) 17:11:45ID:I6GZEsDZ
しかしゲームだと毎フレーム描画することが多いのであまり使われる機会はないよなぁ…
ツールとかなのかな?
2007/09/07(金) 18:42:29ID:43uHszUC
Wizのような疑似3DRPGやADVならアリかもしれないな
217名前は開発中のものです。
垢版 |
2007/09/08(土) 07:10:44ID:YMaYTJnw
>>215
ですよね、毎フレーム描画するほうが自然ですよね。やっぱり舞いフレーム描画することにしました。
レスしてくれたみなさまどうもありがとうございます。
2007/09/30(日) 17:53:37ID:ZVvbajM8
すみません、ちょっと質問です。
C++で使うときに便利なラッパーて存在しますか?
自分で書いていたんですけど、途中まで書いたところで嫌んなってきたので……
2007/10/01(月) 12:05:55ID:toU5XyAB
>>218
http://sourceforge.net/projects/sdlmm/
http://sourceforge.net/projects/sdloo/
http://sourceforge.net/projects/sdlucid/
C++使わないから使い勝手は知らん。
というか>>218が使ってみてレポートしてくれたりするとみんなの参考になるかも?
220名前は開発中のものです。
垢版 |
2007/10/03(水) 14:15:28ID:Nwe20aSd
>>218
今の流行は、g3d だな
2007/10/03(水) 14:50:10ID:TlEYPRiW
>>220
あの辺はラッパーの域を大きく越えてもっと高レベルなゲームエンジンだろ
222218
垢版 |
2007/10/03(水) 23:07:07ID:RbqWUS1l
見てみました。 >219
……全部死に絶えているようです。
あと、実装も古かったのであまりC++らしく無かったです。自分の実装の方がまだましだった……
2007/10/03(水) 23:12:16ID:UktAvpVZ
じゃ!がんばれ
2007/10/03(水) 23:26:21ID:RbqWUS1l
あっと、一つだけ質問。
イベント構造体って、どういう使い方するのが一般的?
やっぱり設定を済ませたらとっととイベントキューに押し込む&使うときだけイベントキューから取り出す
ということで、イベント構造体を保存しておくようなことはあんまり無い?
2007/10/04(木) 15:29:28ID:FHvE2BAs
>>222
要するに気にいらなかったんだなw
ぶっちゃけるとSDLみたいな低レベルのAPIをそのままC++ラップしてもあまり嬉しくない。
余程潔癖なC++プログラマじゃない限り C の API そのまま呼ぶのは別に苦じゃないしね。
g3d まで行かなくてももう少し高レベルのゲームエンジンとか特定ジャンル向けAPIなら
使ってみるかという気になるけれど。
226218
垢版 |
2007/10/06(土) 22:35:26ID:BZgGmwuo
遅レスすみません。
G3Dがなかなか良さそうだったので色々弄っていたのですが……初っ端のstarterサンプルも走らない……。
なんで〜〜〜〜。ドキュメント通りに設定したのに……。

>225
>余程潔癖なC++プログラマじゃない限り C の API そのまま呼ぶのは別に苦じゃないしね。

まあ、そうですけどね。リソース管理といってもboost::shared_ptr併用すれば大した手間じゃないし。
それは判っているのですが、ついゴテゴテとクラスを構築してしまって……
普段boostの便利ツールを使っているとどうも納得行かなくて。

基本的なところを実装できたらなんかのフレームワークでっちあげてみようかな。
2007/10/07(日) 10:26:07ID:yJ/qUspY
そして目的がゲーム製作からライブラリ製作へ・・・w
2007/10/07(日) 12:53:09ID:KThUHL05
ありがちなパターンだよなw
2007/10/07(日) 12:54:15ID:XnDGmhDX
ゲーム作るより楽しかったり
2007/10/07(日) 13:52:42ID:JFszqkjk
あるな。すげえよくわかるw
2007/10/07(日) 16:06:08ID:gaO7ixsx
おれもだw
2007/10/07(日) 16:31:51ID:vQBEp/5X
クルマ一台一人で作るより
ネジや歯車を一人でつくる方が完成する可能性高いしな
233218
垢版 |
2007/10/08(月) 00:30:19ID:XgwvZWdN
やべえ、楽しい。SDL自体のボリュームも大きくないから、絶望的な気分になることも無いですし。
しかし、SDL側で管理しているリソースとかが所々にあって、ちょっと厄介ですね。

使い込みながらブラッシュアップしよ。
2007/10/08(月) 05:29:39ID:EqHs6Yya
>>233
ゲームを作りながらライブラリを作ることをお勧めします。
できたらある程度高レベルなライブラリ(ってかゲームエンジン)を頼む。
2007/10/08(月) 08:49:47ID:1mpmgeu/
すみません、質問です。
SDL_mixerでoggファイルを再生しようとしてるんですが、
再生中中断して次の曲を鳴らすと一瞬ノイズが入ってしまいます。
Mix_PlayMusic、Mix_HaltMusic以外に何か必要な手順等あるんでしょうか?

Mix_OpenAudioでバッファ長4096を指定していて、
これを1024とかにしたら注意しないと気づかないくらいノイズも短くなるんですが、
根本的な対策にはなってないので…。
2007/10/08(月) 10:13:08ID:eMOPHGv/
>>235
音を瞬時に切ったらプチっていうノイズになるのは当たり前
横着せずにMix_FadeOutMusic()とMix_FadingMusic()を使うべし
2007/10/08(月) 10:50:01ID:1mpmgeu/
>>236
ありがとうございます。
知りませんでしたが、ものすごく基本ぽいですね…。
2007/10/19(金) 07:12:05ID:8k+FE+fq
http://www.libsdl.org/
今繋がらない、うちだけ?orz
2007/10/19(金) 07:23:04ID:QaI7JdV7
つながらないです
2007/10/19(金) 07:30:35ID:QaI7JdV7
繋がるようになった
2007/11/18(日) 02:52:06ID:WJuqDS+Z
SDL_imをSDL 1.2.12で使ってる人います?
パッチを手動でシコシコ移してるんだがめんどくせぇ・・・
2007/12/11(火) 19:43:29ID:1+qgcfJz
g3dのstarter動かないんだが>>218の解決策ギボン
2007/12/16(日) 22:43:53ID:rnjWSpSt
サルベージ!
2007/12/24(月) 11:59:27ID:dmdr7zzq
msys+mingwでSDLを試しているんですが、bmpの読み込みはできるんですが
pngの読み込みができずに頭を抱えています。
SDL_image.hをインクルードするとあるんですが、やってみてもIMG_Loadの
ところでビルドエラーになってしまいます。

$ gcc -o myLibTest.exe myLibTest.c myLib.c -g -O2 -I/usr/include/SDL -D_GNU_SOU
RCE=1 -Dmain=SDL_main -DHAVE_OPENGL -L/usr/lib -lmingw32 -lSDLmain -lSDL -mwind
ows
C:/DOCUME~1/ほげ/LOCALS~1/Temp/cca2baaa.o: In function `SDL_main':
C:/msys/1.0/home/moregusi/SDL-1.2.12/mytest/myLibTest.c:65: undefined reference to `IMG_Load'
collect2: ld returned 1 exit status


pngを読み込もうとしない場合は無事実行できます。どなたか教えてくだされ。
2007/12/24(月) 12:19:22ID:iYByUp/W
>>244
SDL_imageが必要
http://www.libsdl.org/projects/SDL_image/
2007/12/24(月) 13:02:19ID:dmdr7zzq
SDL_imageをどのように環境に組み込むのが正しいのでしょうか。
同ディレクトリ内にSDL_image.dllを置いて、includeディレクトリ内にSDL_image.hをおいて
ビルドをしてみましたが状況に変化がありませんでした。
247246
垢版 |
2007/12/24(月) 13:06:22ID:dmdr7zzq
ttp://cefiro.homelinux.org/resources/doc/SDL_image/install-mingw32-04.html
すいません、質問をするまえに調べるべきでした。
こちらをみながらがんばって見ます。
>>245さんありがとうございます
248246
垢版 |
2007/12/24(月) 14:00:50ID:dmdr7zzq
たびたびすいません。
無事SDL_imageのインストールは済んだようなのですが、
ひとつのディレクトリ内に SDL-1.2.12 SDL_image-1.2.6 
と並べてインストールしたんですが、SDL-1.2.12内で作業している場合
どうすれば正常にpngを読み込めるようになるでしょうか?
2007/12/24(月) 14:50:34ID:iYByUp/W
標準のままだとmake installで/usr/local以下の同じディレクトリに
SDLもSDL_imageも入るはずだけど、変更したってことかな?

もし標準のままだったら/usr/local/bin/sdl-config参照
2007/12/24(月) 16:03:34ID:zzGFWe7O
オプションに-mSDL_imageと、-I -Lでインクルードファイルとライブラリ置いてあるディレクトリへのパス指定すればいいんじゃね?
漏れは全部SDLの中にぶちまけてたけど(笑
2007/12/24(月) 16:10:00ID:zzGFWe7O
ごめん-mじゃなく-lだった
252246
垢版 |
2007/12/26(水) 08:13:55ID:z7lh/EP2
-lSDL_imageオプションの指定をすることで無事ビルドがとおるようになりましたが
IMG_Load(ファイル名文字列)の返り値ポインタがNULLになってしまうようで
表示にいたりませんでした。画像自体はサンプルにあるものなので不正なファイルで
ないと思うのですが。

SDL_imageライブラリを扱う際にzlib,libpngなどSDL_image以外の拡張も
必要になるのでしょうか?

ttp://hp.vector.co.jp/authors/VA016379/cpplib/libpng.htm
2007/12/26(水) 09:06:10ID:mbvZa8qb
perrorを使ってみるとなんか出してくれるかも?
254246
垢版 |
2007/12/26(水) 09:55:52ID:z7lh/EP2
便利な関数を教えていただきありがとうございます
perror(ファイル名文字列)をためしてみましたが、No errorと出力されました。
IMG_Load関数の挙動に問題がある様子です。
どこの落とし穴にハマっているんでしょう...
2007/12/26(水) 10:29:20ID:mbvZa8qb
なにかエラーが出たら、IMG_Loadで呼び出されるSDL_RWFromFileでエラーがセットされるようなので、
IMG_Load呼び出した後にSDL_GetError();をやってみるといいかもしれないです。
2007/12/26(水) 10:32:08ID:mbvZa8qb
ごめんなさい、正しくは
printf("%s\n",SDL_GetError());
です
257246
垢版 |
2007/12/27(木) 00:09:40ID:Nhkc6jeq
さっそくためしてみました
Unsupported image format というエラーがセットされていました

念のため読み込まれるpngの透過情報をなくしてみたりと
データ側をいじってみましたが変化がありませんでした。
一度SDLの環境を見直してみます
258246
垢版 |
2007/12/27(木) 00:30:29ID:Nhkc6jeq
ttp://risky-safety.org/~zinnia/sdl/intro/intro.1.html
こちらのサイトの解説に
「SDL_imageではjpeglibやlibpngなどを使いますし、 」とありますが、
windowsXP上でmsys+mingwの環境の場合もlibpngなどの導入は必須なんでしょうか?

どなたかご存知でしょうか。

2007/12/27(木) 01:25:19ID:nu2XEQSa
>>258
そのSDL_imageはどこで手に入れたんだ?
自分でコンパイルしたのだとしたらコンパイルする前にlibpngを入れとかないとだめだよ?
で、libpngをコンパイルするには zlib を入れとく必要がある。
なんか基本的なとこがわかってない気がするな…
2007/12/27(木) 04:42:22ID:ZIMxRSVw
とりあえず、聞く前に試そうぜ?
2008/01/01(火) 02:19:54ID:TVa3tF2A
SDL1.2.13のリリース情報
SDL1.2.13はちょっとしたバグフィクスリリースです。

【一般注意事項】
インテルCompiler10と共に建てるときの固定連結路誤り。
公共のヘッダーから迷っているC++コメントを取り除きました。
【unix注意】
セキュア・オペレーティング・システムにSDL_SoftStretch()でのクラッシュを固定しました。
UTF-8サポートなしでX11実装に未定義のシンボルを固定しました。
XFree86インテルのIntegrated Graphicsドライバーの上にXVideoを使用するときのBadAlloc誤りの周りで扱われます。
取り除かれたもの時に止まることの代わりにリナックスのすべてのジョイスティックのために、スキャンします。
sdl.m4でのsdl-コンフィグ議論の固定使用
【Windows注意】
ビデオドライバーが32のbppビデオモードより高く報告するとき、クラッシュを修理しました。
24ビットのOpenGLビデオモードを設定した後にデスクトップを復旧しながら、修理されています。
Windows95/98/MEに窓のタイトルを固定しました。
拡張マウスボタンのためにSDL_BUTTON_X1とSDL_BUTTON_X2定数を加えました。
引用されたコマンドライン議論のサポートを加えました。
【Mac OS X注意】
SDLは現在、Mac OS X10.5(ヒョウ)に建てます。
速成の意味ありげなテキストが入力した高周波を固定しました。
ESCキーが押されて、ユニコード翻訳が可能にされるとき、ビープを修理しました。
サポートをスクロールするtrackpadを改良しました。
あるジョイスティックを届け出るジョイスティック帽子を修理しました。
2008/01/01(火) 02:30:38ID:gX9EjFXV
>>261 乙。
でもすげぇ機械翻訳でわらったw
2008/01/01(火) 03:53:23ID:LA4AaUBw
プログラムも専門領域だよな
その機械翻訳やばすぎるwww
2008/01/10(木) 14:26:15ID:T+hVZ1aa
>インテルCompiler10と共に建てるとき

build with ICC10かwww 「建てる」ってカコイイなw
265名前は開発中のものです。
垢版 |
2008/01/15(火) 02:09:56ID:VbpPlCwQ
拙作ながら SDL でこんなものを作ってみました
http://www.starruby.info/
2008/01/15(火) 03:29:14ID:Xfrz2IUS
なかなかお手軽そうですね。パフォーマンスはどう?
267265
垢版 |
2008/01/15(火) 03:49:23ID:VbpPlCwQ
>>266
ありがとうございます。
「スーパーファミコン風」を目指しているもので、
低解像度 (320×240) で 30FPS 程度のゲームを作るならば全く問題ないです。
解像度をあげると (640×480) ちょっと苦しくなるかも。

- Pentium M 1.6 GHz
- メモリ 512 MB
- 解像度 320×240
- 16×16 のスプライトを 200 個表示
で、最大 180 FPS ほどは出ました。
2008/01/15(火) 08:31:58ID:ZW2PtYT3
お、何か面白そう。時間取れたら見てみよう
2008/01/26(土) 17:24:42ID:cBQDlMua
>>265
↓みたいのないの?
Greenbear Laboratory - Ruby/SDLスターターキット
http://mono.kmc.gr.jp/~yhara/w/?RubySDLStarterKit


最近こういうの増えたけど今一つはやらないんだよね。。。

MyGame
http://dgames.jp/ja/projects/mygame/

Miyako メインサイト
http://www.twin.ne.jp/~cyross/Miyako/
2008/01/26(土) 20:33:07ID:bvJPEP9U
RubyでSDL使うメリットが少ないからだろう
2008/01/26(土) 20:54:14ID:Bb9G19MS
>>270
HSPみたいにRubyも裾野を広げたいって
Rubyの制作者が煽ってなかったっけ?
■ このスレッドは過去ログ倉庫に格納されています