- 1 名前:名前は開発中のものです。 mailto:sage [2006/02/28(火) 20:40:12 ID:MvXDyxzs.net]
- マルチプラットホームな汎用ゲームライブラリの
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/ 前スレ pc8.2ch.net/test/read.cgi/gamedev/1005469181/
- 129 名前:名前は開発中のものです。 mailto:sage [2007/07/05(木) 00:01:34 ID:IairqX8P.net]
- よくわからないけど、これも似たような話?
ttp://star-engine.sourceforge.jp/wiki/index.php?%E3%82%B5%E3%82%A6%E3%83%B3%E3%83%89
- 130 名前:名前は開発中のものです。 mailto:sage [2007/07/05(木) 00:12:18 ID:H/kOXyqx.net]
- SDL_mixer は mixer って名前の割に mixer 機能と音声デコーダとしての機能が
ひっついてたりと微妙な設計の上に mixer としての機能はいろいろ制限付きだから 凝ったことしたいなら mixer を自作するか他のライブラリを使った方がいいと思う
- 131 名前:128 mailto:sage [2007/07/05(木) 00:35:58 ID:qePQoFxZ.net]
- >>129,130
回答ありがとうございました。 SDLは音関係はまだ弱いみたいですね。今後に期待します。
- 132 名前:名前は開発中のものです。 mailto:sage [2007/07/05(木) 00:47:05 ID:NCulV6fv.net]
- 今後強くなることはほぼ無いよ
どうしても欲しけりゃ自分で作れ マジで
- 133 名前:名前は開発中のものです。 [2007/07/14(土) 15:40:35 ID:MplrYQ6S.net]
- SDL使ってないんだが、
SDL製のゲームってなんで、フルスクリーンから戻ると、 ウインドウがくっちゃくちゃになるんだ? WindowsXPになってからから、最近はあまりならなくなったが、 デュアルディスプレイ環境にしたとたん、今度は、フルスクリーンから戻ると サブディスプレイ側にウインドウが全部持ってかれるwwww SDL製ゲーム、妙に腹立つんだが…… SDLって、フルスクリーンに、どんなAPI使ってる?
- 134 名前:名前は開発中のものです。 mailto:sage [2007/07/14(土) 17:44:45 ID:NCjcxLUp.net]
- ソース読めば
- 135 名前:名前は開発中のものです。 mailto:sage [2007/07/14(土) 19:33:37 ID:HaWpR1FD.net]
- >133
SDL-1.2.10のリリースノートに対策したと書いてあった気がするので それ以前のバージョンだとダメとかありそう とりあえずSDLのDLL群だけ公式サイトの1.2.10のものに入れ替えてみたらどうよ? まーそれでもデュアルディスプレイ時は問題がある、とかだったらアウトだが
- 136 名前:名前は開発中のものです。 [2007/07/15(日) 03:58:00 ID:tjJzXNfv.net]
- >>135
OK試してみる
- 137 名前:名前は開発中のものです。 [2007/07/15(日) 16:34:16 ID:/Vt2f/ht.net]
- QuickTime を最新版にしたら
ld: Undefined symbols: _HIPointConvert referenced from QuickTime expected to be defined in Carbon ってのが出てコンパイルできなくなった これは俺だけ?
- 138 名前:名前は開発中のものです。 mailto:sage [2007/07/22(日) 09:03:58 ID:MzGO1BEd.net]
- 環境を(ry
- 139 名前:名前は開発中のものです。 mailto:sage [2007/07/22(日) 10:06:10 ID:RJaocio8.net]
- エラーメッセージから多分OSXだろうな、ということぐらいは推測出来るけども
それが分かったところでそんな環境でやってる人が少なすぎて誰も答えられない予感
- 140 名前:名前は開発中のものです。 mailto:sage [2007/07/22(日) 21:10:37 ID:SuhJ+niG.net]
- OS Xなんだけど、むしろ137を見て、
iTunesとQuickTimeのパッチを宛ててない俺がいる。 真相が明らかになるまで宛てない。
- 141 名前:名前は開発中のものです。 mailto:sage [2007/07/22(日) 21:20:50 ID:utuuL8ub.net]
- >>137
もしかして Panther ですか? うちも 6 月 26 日に SDL をコンパイルした時は何の問題もなくて mplayer をビルドできたんだけど、QuickTime の更新後他にも ライブラリを追加して mplayer をリビルドしようと ./configure したら SDL を認識しなくて configure.log に >>137 と同じログが残っていました。 --enable-sdl、--with-extraincdir、--with-extralibdir、--with-sdl-config 等を オプションに加えてみたけどダメだった。
- 142 名前:名前は開発中のものです。 mailto:sage [2007/07/22(日) 21:23:28 ID:QFFk2TvQ.net]
- ム板のQtスレで似たような症状を見かけたな。
紛らわしいがQuicktimeじゃなくてQtのスレな。 そのときはQuickTimeのバージョンを落とせと言う結論が出てた。
- 143 名前:名前は開発中のものです。 mailto:sage [2007/07/23(月) 21:10:59 ID:igyFwa8R.net]
- QuickTime ProにしてたらQuickTImeのバージョンをあげずにシステムだけソフトウェアアップデートできる
- 144 名前:名前は開発中のものです。 mailto:sage [2007/08/03(金) 21:45:03 ID:paSzUBbH.net]
- すいません初心者なんですが
SDLで描画する際に描画処理をもっと高速化したい場合 どんな方法があるでしょうか? もしくは気を付けるべき点とかありますでしょうか? 主にわりと広い領域を1フレームごとに単一色で塗りつぶしたいです
- 145 名前:名前は開発中のものです。 mailto:sage [2007/08/03(金) 23:08:52 ID:3nV6unKF.net]
- >>144
ビデオカードによってはGL併用で板ポリで塗りつぶしたほうが早いことがあるかもね
- 146 名前:名前は開発中のものです。 mailto:sage [2007/08/04(土) 00:05:39 ID:I+4koGEX.net]
- >>145
レスありがとうございます 試してみます
- 147 名前:名前は開発中のものです。 mailto:sage [2007/08/07(火) 21:44:08 ID:3+/Ng0d2.net]
- 今日始めたんだがもうなにがなにやら
導入できないしなんとか出来たと思ったらビルドできないし… 解説が少し古いから最新バージョンを使わないで説明に使われてるバージョンにしたほうがいいんだろうか 泣きそうだ
- 148 名前:名前は開発中のものです。 mailto:sage [2007/08/07(火) 22:04:51 ID:TQ7ub0JP.net]
- 俺も始めたばかりだけど、windowsでのバイナリ作成はイマイチよくわからん
unixならmakefileかいてmakeすればいいだけだったからなぁ
- 149 名前:名前は開発中のものです。 mailto:sage [2007/08/07(火) 22:22:53 ID:OhYk8zQ1.net]
- WindowsならVC++用のDLLやらlibやらひと通りバイナリで公式に置いてあるじゃないか
- 150 名前:名前は開発中のものです。 mailto:sage [2007/08/07(火) 22:40:35 ID:3+/Ng0d2.net]
- SDL-devel-1.2.12-VC8.zipでいいの?
- 151 名前:名前は開発中のものです。 mailto:sage [2007/08/07(火) 22:42:37 ID:OhYk8zQ1.net]
- VC++2005ならそれでいいと思う
- 152 名前:名前は開発中のものです。 mailto:sage [2007/08/07(火) 22:47:05 ID:3+/Ng0d2.net]
- だよね…
設定からincludeとlibにパス通してから ttp://www.tacoworks.jp/software/SDLdoc-jp/html/guidebasicsinit.html の一番下のコードをコンパイルしようとしたらエラーが… 1>------ ビルド開始: プロジェクト: SDL_test, 構成: Debug Win32 ------ 1>コンパイルしています... 1>main.c 1>c:\documents and settings\*****\my documents\visual studio 2005\projects\sdl_test\sdl_test\main.c(4) : warning C4026: 関数はパラメータ リストを使って宣言されています。 1>リンクしています... 1>main.obj : error LNK2019: 未解決の外部シンボル _SDL_Quit が関数 _SDL_main で参照されました。 1>main.obj : error LNK2019: 未解決の外部シンボル _SDL_GetError が関数 _SDL_main で参照されました。 1>main.obj : error LNK2019: 未解決の外部シンボル _SDL_Init が関数 _SDL_main で参照されました。 1>MSVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。 1>C:\Documents and Settings\Anpan\My Documents\Visual Studio 2005\Projects\SDL_test\Debug\SDL_test.exe : fatal error LNK1120: 外部参照 4 が未解決です。 1>ビルドログは "file://c:\Documents and Settings\Anpan\My Documents\Visual Studio 2005\Projects\SDL_test\SDL_test\Debug\BuildLog.htm" に保存されました。 1>SDL_test - エラー 5、警告 1 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
- 153 名前:名前は開発中のものです。 mailto:sage [2007/08/07(火) 22:48:37 ID:3+/Ng0d2.net]
- ユーザー名全然消せてないし('A`)
- 154 名前:名前は開発中のものです。 mailto:sage [2007/08/07(火) 22:54:11 ID:OhYk8zQ1.net]
- >>152
リンクするライブラリに SDL.lib SDLmain.lib を追加してないだけじゃないか、それ
- 155 名前:名前は開発中のものです。 mailto:sage [2007/08/07(火) 23:04:49 ID:3+/Ng0d2.net]
- >>154
できた。できました。 ttp://www.geocities.jp/jq2hpl2000/SDL/environment.html の一番下に書いてあることをやってみたらついにできた パス通せば勝手にやってくれるわけじゃないんだね できる人から見たらくだらないミスかもしれないが、完全に詰まってたから助かった しかもこんな過疎スレでタイミング良く… 本当にありがとう
- 156 名前:名前は開発中のものです。 mailto:sage [2007/08/07(火) 23:14:46 ID:OhYk8zQ1.net]
- >>155
動いてよかったすな あとこのスレ特に話題にすること無いから過疎ってるけど ROMは結構いるんじゃないかと思う
- 157 名前:名前は開発中のものです。 mailto:sage [2007/08/07(火) 23:21:56 ID:3+/Ng0d2.net]
- そうなのか
一年半で150レスだと知って絶望したが安心した これからよろしく
- 158 名前:名前は開発中のものです。 mailto:sage [2007/08/08(水) 01:31:54 ID:sbyXI/dQ.net]
- >>155
SDL ってか VisualStudio の使い方の問題だから一度は ツールの使い方の勉強をするといいと思うよ.他にも応用が効くし.
- 159 名前:名前は開発中のものです。 mailto:sage [2007/08/08(水) 11:30:39 ID:do3ZrWrt.net]
- 自分も、見てはいるけど、書き込んではいない人ですね。
- 160 名前:名前は開発中のものです。 mailto:sage [2007/08/08(水) 20:09:52 ID:ZvrungyE.net]
- つられて書き込みに来ました><
- 161 名前:名前は開発中のものです。 mailto:sage [2007/08/08(水) 21:44:30 ID:ePAndGqH.net]
- SDLで同人ゲーム作って3年後には成金の予定です><
- 162 名前:名前は開発中のものです。 mailto:sage [2007/08/08(水) 21:53:54 ID:Pqw332Fd.net]
- いくつかかサンプルプログラム組んでみたんだが、
やたらCPU使用率が高いのは仕様なのだろうか
- 163 名前:名前は開発中のものです。 mailto:sage [2007/08/08(水) 21:58:12 ID:na+UbHPh.net]
- >>162
適当にSDL_Delayでも入れたら?
- 164 名前:名前は開発中のものです。 mailto:sage [2007/08/08(水) 23:33:58 ID:XsIa1hkW.net]
- ほぼCPUによる描画だからCPUの使用率が高いというオチは無いかね。
なんらかのSDL_VIDEODRIVERを指定しないとSDL_BlitSurfaceは重いよ。
- 165 名前:名前は開発中のものです。 mailto:sage [2007/08/09(木) 00:00:07 ID:aet5cj80.net]
- ありがとう
たぶんCPUだけでひたすらループをまわしているからかな… 参考にしてみる
- 166 名前:名前は開発中のものです。 mailto:sage [2007/08/09(木) 03:29:12 ID:bpKNN2nX.net]
- まったくDelay入れてなければ普通にビジーループと同じなんだから
どんなCPUでも100%近くまで食うだろうけど…
- 167 名前:名前は開発中のものです。 mailto:sage [2007/08/09(木) 09:54:44 ID:iRc0pO0m.net]
- 1.2.12って先月出てたんだな……。
Added support for UTF-8 window titles on Windows. が嬉しい。
- 168 名前:名前は開発中のものです。 [2007/08/14(火) 12:52:04 ID:aAQZrqPS.net]
-
SDL入門てきなページのサンプルにprintf使ってるのあるんですけど、 printf使ってみてもなにも表示されないんですよ。原因わかる人 教えてくれますか?
- 169 名前:名前は開発中のものです。 mailto:sage [2007/08/14(火) 13:30:20 ID:mUn2LVHE.net]
- >>168 Cヘッダファイル読み込んでないとかいうオチじゃないよな?
- 170 名前:名前は開発中のものです。 mailto:sage [2007/08/14(火) 13:36:41 ID:QpOzpnEh.net]
- コンソール表示してないとか
- 171 名前:名前は開発中のものです。 mailto:sage [2007/08/14(火) 14:06:58 ID:/iweu0SO.net]
- 実行ファイルと同じディレクトリにstdout.txtってのがないですか?
あるならそれに出力されてるはず
- 172 名前:名前は開発中のものです。 mailto:sage [2007/08/14(火) 15:35:48 ID:GyW+IVPX.net]
- 窓に出力するのは結構面倒だぜ
- 173 名前:名前は開発中のものです。 [2007/08/14(火) 15:57:26 ID:aAQZrqPS.net]
- >>169ヘッダファイルよみこんでました
>>170すいません、意味がわかりませんでした。ほんと、すみません。 >>171stdout.txtありました。ちゃんとかいてありました。 画面に出力する場合は fprintf( stdout, "maimai" ); でいけるかなと思ったんですが、 うまくいきませんでした。 もしかしてSDLの標準ライブラリには、そのような関数はないんですか?
- 174 名前:名前は開発中のものです。 [2007/08/14(火) 15:59:38 ID:aAQZrqPS.net]
- >>172そうですかやっぱりSDL_kanjiなどをつかうべきですか?
- 175 名前:名前は開発中のものです。 mailto:sage [2007/08/14(火) 19:56:31 ID:8W3CWuxg.net]
- だからコンソール出せばいいじゃん
- 176 名前:名前は開発中のものです。 mailto:sage [2007/08/14(火) 20:44:53 ID:TVRq227C.net]
- >>168
そのサンプルで同じようにしたいなら どのような手段を利用したいのか教えて欲しい もしくはそのサイトへリンクを張るのも手だ 不足している情報は「どこに」「どういった目的で」文字を出力したいか そして、現在は「どのような手段」を使ってそれを達成しようとしているかだ 間違いを修正して欲しいなら正解だと思っている方法を提示すべきだし 新たな方法を示して欲しいなら目的や条件をはっきりさせて欲しい デバッグ目的であればコンソールやファイルに出す方法があるし もしくは(Windows限定になるが)OutputDebugStringを使うのも便利だ ただ、現象からみてコンソール出してないだけだよなぁ…… 出し方わかる?たぶん色んなソースをチャンポンしたせいで mainとWinMainのソースが混ざってるだけだと思うんだが
- 177 名前:名前は開発中のものです。 mailto:sage [2007/08/14(火) 22:35:44 ID:Hyt9tt6Y.net]
- Windows版のSDLでprintfをコンソールに表示したかったら、
SDLmain.libをコンソールアプリで作り直さないと無理だよ
- 178 名前:168 [2007/08/14(火) 23:20:35 ID:aAQZrqPS.net]
- レスありがとうございます。
>>175本当にごめんなさい、意味がわからないです。 >>176>>不足している情報は「どこに」「どういった目的で」文字を出力したいか そして、現在は「どのような手段」を使ってそれを達成しようとしているかだ。 「どこに」は、ウィンドウです。「どういった目的で」は、いまはとくに目的はありませんが、 サンプルどうりの結果が得られないのは、自分の環境に問題があるように思えて、心配です。 「どのような手段」は、今は、見つかっていません。どうしようもなければSDL_kanjiを使おう思っています。 間違いを修正して欲しいなら正解だと思っている方法を提示すべきだし>>printf("maimai");をメイン関数の中に入れてウィンドウにmaimaiと表示させたいです 。 デバッグ目的であればコンソールやファイルに出す方法があるし >>デバックが目的ではないです。 もしくは(Windows限定になるが)OutputDebugStringを使うのも便利だ>>調べてみます。 ただ、現象からみてコンソール出してないだけだよなぁ…… 出し方わかる?たぶん色んなソースをチャンポンしたせいで mainとWinMainのソースが混ざってるだけだと思うんだが>>ごめんなさい、いみがわかりません。
- 179 名前:名前は開発中のものです。 mailto:sage [2007/08/14(火) 23:30:33 ID:v4Co7u1c.net]
- SDLより前に基礎的なことが分かってなさ過ぎる。
printfは基本的に標準出力(コンソールやファイルやプリンタ)への文字表示命令であって、 SDLみたいなグラフィック画面への出力とは全く別物なんだよ。 そもそも、どこのサンプルでどう上手く行かないかも明示せずに 曖昧で焦点がぼやけた質問で人様を煩わせるのはちょっとどうかと思うんだわ。 そんな調子では超能力でもなければ君の問題を把握することができんよ。
- 180 名前:名前は開発中のものです。 mailto:sage [2007/08/14(火) 23:33:31 ID:Hyt9tt6Y.net]
- もーっ、そのものズバリ書いたってのにー
printf() は Windows 以外だったら標準出力(コンソール)に出るが、 公式で配っているWindows版のSDLはコンソールアプリじゃなくてWindowアプリとして作られてるので そのままではprintf()を使ってもコンソールには何も出ない その代わりに標準ではstdout.txtに出力されるようになってる これはfreopen()を使って別のファイルにすることは可能 あと、Windows版SDLでは、自分で書いたmain()は #define 使ってSDL_mainに書き換えられてる 本当のエントリポイントはSDLmain.libの中にあるWinMain() だから、コンソールにprintfを出力させたかったらSDLmain.libを作り直す必要があるってこと
- 181 名前:名前は開発中のものです。 mailto:sage [2007/08/14(火) 23:37:06 ID:GyW+IVPX.net]
- SDL_kanjiは知らないけど、日本語使わない漏れはSDL_ttfのTTF_RenderUTF8_Solid()で作ってSDL_BiltSurface()で貼り付けるのを関数化して文字列渡して使ってる
しかしstdout.txtあるのは便利だよな
- 182 名前:名前は開発中のものです。 mailto:sage [2007/08/15(水) 00:05:55 ID:QwtLL8/g.net]
- お前ら凄い親切なw
伝わってないのが端から見てて歯痒い。 >>179-180以上にかみ砕くのは俺には無理と思うが、補足。 ・printfでstdout.txtに出力されるのはとりあえずWindows環境では普通の動作なんで別に心配しなくていい。 とりあえず出力した文字の確認もできるだろうし、ウィンドウに出力されなくても問題ないよね? ・普段printfで出力してるコンソール画面は、SDL使ってる限り出せないと思っていい。 ウィンドウに文字を出したいなら、文字列を画像(サーフェス)として生成して、それを表示する必要がある。 それをやってくれるのがSDL_ttfとかSDL_kanji。使えるフォントの種類に違いがあるんだが、Windowsなら何も考えずSDL_ttfを使っていい。 あと、なんか、上のレスを見る限り意味がわかりませんと返ってくる気が凄くするんだが、わからんのがどの部分のどの用語なのかとかを書かないと説明しようがないんじゃないかと思う。
- 183 名前:168 [2007/08/15(水) 00:10:50 ID:PDGC0i0E.net]
- >>179
ものっっっすごく申し訳ありません。 もしよければweb1.nazca.co.jp/studioh/diary015.htmlに飛んでもらって、そのページのEvent関数の if(ev.type == SDL_KEYDOWN) //キーが押されたかどうかの確認。 { printf("キーが押されました");ここについて説明してもらえれば助かります。 >>180 わかりやすい説明ありがとうございます。 mainに見えても実はWinMainとゆうことですね。WinMainでprintfが使えないのはしっています、ですが、 web1.nazca.co.jp/studioh/diary015.htmlの if(ev.type == SDL_KEYDOWN) //キーが押されたかどうかの確認。 { printf("キーが押されました"); で使われています。普通の環境で"キーが押されました"が表示されないのは当たり前でしょうか?
- 184 名前:名前は開発中のものです。 mailto:sage [2007/08/15(水) 00:32:43 ID:tPtheI7D.net]
- >>183
> 普通の環境で"キーが押されました"が表示されないのは当たり前でしょうか? 「Windowsの」普通の環境では表示されないのが当たり前 stdout.txtに出力されるのが当たり前
- 185 名前:名前は開発中のものです。 mailto:sage [2007/08/15(水) 00:34:53 ID:4BjrTEfx.net]
- 違う人だけど答えます
printfの出力先は"stdout"ってのは常識ですよね?(俺もまちがってるかも) で、windowsのSDLではこの"stdout"ってのは[stdout.txt]とイコールなわけです。 だから、printfは[stdout.txt]に出力するようになっているわけです。 だから、このプログラムはもし、何かしらのキーが押された場合に、[stdout.txt]に キーが押されました と、書き込むプログラムなわけです。 要は、SDLのイベントの処理の仕方を説明したプログラムです なんだか、いろいろ勘違いされてるみたいですが、SDLにウィンドウに文字列を描画する、WinAPIでいうところのTextOutのような関数は存在しません。 もし、ウィンドウに文字列を描画したいなら皆さんが言うようにSDL_ttfや、SDL_kanjiなどを使うか、 自分でbitmapを用意して、それを描画しなくてはなりません というより、stdoutとか理解してますか? SDL以前にCがあやふやではないですか
- 186 名前:名前は開発中のものです。 mailto:sage [2007/08/15(水) 00:43:15 ID:1oZuV42R.net]
- たぶん>>185の言っていることの一割も理解してないんじゃないかと
- 187 名前:名前は開発中のものです。 mailto:sage [2007/08/15(水) 00:59:57 ID:82FrRuTB.net]
- 多分分かってるのは「違う人」だけだと思う
- 188 名前:違う人 mailto:sage [2007/08/15(水) 01:01:08 ID:4BjrTEfx.net]
- ん
- 189 名前:違う人 mailto:sage [2007/08/15(水) 01:02:11 ID:4BjrTEfx.net]
- すまん、誤爆、、、
>>187 どこか、間違ってますか?できれば教えてもらいたいのですが、、、 こんな長文書いといてなんですが、自分もC
- 190 名前:違う人 mailto:sage [2007/08/15(水) 01:04:34 ID:4BjrTEfx.net]
- は結構微妙なんで
てか、すみません なんか、ビューワの調子が、、、
- 191 名前:168 [2007/08/15(水) 01:31:47 ID:PDGC0i0E.net]
- >>185>>要は、SDLのイベントの処理の仕方を説明したプログラムです
完璧理解しました、簡単なことでしたね。 どうもありがとうございます。 みなさん親切にどうもありがとうございました。
- 192 名前:名前は開発中のものです。 mailto:sage [2007/08/15(水) 01:41:12 ID:9feGd8Aj.net]
- 簡単なことでしたね、じゃない。捨て台詞みたいでちょっと感心しないな。
お前には難しかったんだろ。
- 193 名前:名前は開発中のものです。 mailto:sage [2007/08/15(水) 01:53:08 ID:wraMEEur.net]
- まぁまぁ。俺も同じこと書きそうになったけど。
- 194 名前:名前は開発中のものです。 mailto:sage [2007/08/15(水) 11:01:47 ID:OErOo2Dx.net]
- っていうかVC++2005EEでもbcc+devでもビルド設定でコンソールアプリケーションに指定したら普通にでるよ
処理止めないとすぐ消えるけど
- 195 名前:名前は開発中のものです。 mailto:sage [2007/08/15(水) 13:24:53 ID:4BjrTEfx.net]
- >194
いわれてみれば、確かにw 思いつきもしなかった
- 196 名前:名前は開発中のものです。 mailto:sage [2007/08/18(土) 23:57:30 ID:NM/B7TGH.net]
- if( g_WindowActive ){ // ウィンドウがアクティブかどうか
move(); draw(); } else { SDL_WaitEvent(&g_Event); } if(!PollEvent()){ // SDL_PollEventでイベント処理 break; } こんな感じでウィンドウがアクティブのときは動いて、 非アクティブのときは止まっているようにしたいんですけど、 ウィンドウが完全に見えている状態で非アクティブからアクティブになっても 止まったままなんです。 非アクティブのときにCPU使わないようにしようとWaitEvent入れたらこうなりました。 どうすれば対処できますか?
- 197 名前:名前は開発中のものです。 mailto:sage [2007/08/19(日) 01:32:06 ID:ddUge9Ur.net]
- >>196
そもそもアクティブ/非アクティブの状態の取得をどうやってる? 完全に想像だから間違ってたらすまんが、SDL_APPACTIVEは最小化されてるorされてないしか判定しない。 フォーカスの有無ならSDL_APPINPUTFOCUS
- 198 名前:196 mailto:sage [2007/08/19(日) 16:58:00 ID:87LzenFa.net]
- >>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; } } 最小化からの復帰と別ウィンドウからフォーカスが移って再描画されるときはまた動き出すのですが ウィンドウが完全に見えているときのフォーカスの変化に反応してくれないんです。
- 199 名前:名前は開発中のものです。 mailto:sage [2007/08/19(日) 17:23:23 ID:39ZqT3vu.net]
- >>196
SDL_WaitEvent() で拾ったイベントを捨ててるからだろ…
- 200 名前:196 mailto:sage [2007/08/19(日) 20:42:20 ID:87LzenFa.net]
- SDL_WaitMessage()のあとにもイベント処理をはさむようにしたらうまくいきました。
どうもありがとうございます。
- 201 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 16:14:39 ID:uj+9umUP.net]
- 先生!SDL_AddTimerが0しか返してくれやがりません><
- 202 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 16:29:18 ID:4VIN7FZV.net]
- >>201
エスパーすると SDL_Init() に SDL_INIT_TIMER を渡してないんだろう
- 203 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 16:30:04 ID:uj+9umUP.net]
- ごめんなさいSDL_InitにSDL_INIT_TIMER渡してないだけでしたごめんなさい
- 204 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 22:08:46 ID:3oMJBmXZ.net]
- 美しすぎる流れに完敗
- 205 名前:名前は開発中のものです。 mailto:sage [2007/09/01(土) 22:35:48 ID:3R+RRVDL.net]
- 久々にいいモン見れた
今日は夢に美少女が出てくるに違いない
- 206 名前:名前は開発中のものです。 [2007/09/06(木) 00:56:52 ID:4VpwTJkO.net]
- あ
- 207 名前:名前は開発中のものです。 [2007/09/06(木) 01:00:03 ID:4VpwTJkO.net]
- 質問です。SDL_VIDEORESIZEが送られてくるタイミングっていつですかね?
- 208 名前:名前は開発中のものです。 mailto:sage [2007/09/06(木) 01:52:03 ID:ernuANIp.net]
- SDL_SetVideoMode()で SDL_RESIZABLE を渡してウィンドウ作って
そのウィンドウをリサイズしたときじゃね?
- 209 名前:名前は開発中のものです。 [2007/09/06(木) 02:51:05 ID:4VpwTJkO.net]
- ごめんなさい間違えた。SDL_VIDEOEXPOSEです。
- 210 名前:名前は開発中のものです。 mailto:sage [2007/09/06(木) 04:18:37 ID:ernuANIp.net]
- >>209
Windowsとかだと普通にウィンドウが表示されたときや隠れたウィンドウが表に出たときに 飛んでくると思うけどXだと全然こなかったりするね… あとは別スレッドでデータ更新してメインスレッドで描画する場合に別スレッドから 自前で SDL_PushEvent() で送ってやるときとかに使うこともあるかな…
- 211 名前:名前は開発中のものです。 mailto:sage [2007/09/06(木) 07:44:32 ID:RdypgvEp.net]
- X の場合 GL と併用しない限り送られてこないと思う。
Windows の場合は WM_ERASEBKGND のタイミング。
- 212 名前:名前は開発中のものです。 [2007/09/06(木) 18:25:11 ID:4VpwTJkO.net]
- ありがとうございます。
SDL_PushEvent() を使えばInvalibateRect()のように SDL_VIDEOEXPOSEを送ることができますか?
- 213 名前:名前は開発中のものです。 mailto:sage [2007/09/06(木) 18:39:27 ID:1+3n0mte.net]
- >>212
あんな感じで使える。 でもSDL_ExposeEvnet には範囲がないから範囲指定はできない。
- 214 名前:名前は開発中のものです。 [2007/09/07(金) 08:53:04 ID:D9hBhXmU.net]
- ありがとうございます。
ちょっと調べてきます
- 215 名前:名前は開発中のものです。 mailto:sage [2007/09/07(金) 17:11:45 ID:I6GZEsDZ.net]
- しかしゲームだと毎フレーム描画することが多いのであまり使われる機会はないよなぁ…
ツールとかなのかな?
- 216 名前:名前は開発中のものです。 mailto:sage [2007/09/07(金) 18:42:29 ID:43uHszUC.net]
- Wizのような疑似3DRPGやADVならアリかもしれないな
- 217 名前:名前は開発中のものです。 [2007/09/08(土) 07:10:44 ID:YMaYTJnw.net]
- >>215
ですよね、毎フレーム描画するほうが自然ですよね。やっぱり舞いフレーム描画することにしました。 レスしてくれたみなさまどうもありがとうございます。
- 218 名前:名前は開発中のものです。 mailto:sage [2007/09/30(日) 17:53:37 ID:ZVvbajM8.net]
- すみません、ちょっと質問です。
C++で使うときに便利なラッパーて存在しますか? 自分で書いていたんですけど、途中まで書いたところで嫌んなってきたので……
- 219 名前:名前は開発中のものです。 mailto:sage [2007/10/01(月) 12:05:55 ID:toU5XyAB.net]
- >>218
sourceforge.net/projects/sdlmm/ sourceforge.net/projects/sdloo/ sourceforge.net/projects/sdlucid/ C++使わないから使い勝手は知らん。 というか>>218が使ってみてレポートしてくれたりするとみんなの参考になるかも?
- 220 名前:名前は開発中のものです。 [2007/10/03(水) 14:15:28 ID:Nwe20aSd.net]
- >>218
今の流行は、g3d だな
- 221 名前:名前は開発中のものです。 mailto:sage [2007/10/03(水) 14:50:10 ID:TlEYPRiW.net]
- >>220
あの辺はラッパーの域を大きく越えてもっと高レベルなゲームエンジンだろ
- 222 名前:218 mailto:sage [2007/10/03(水) 23:07:07 ID:RbqWUS1l.net]
- 見てみました。 >219
……全部死に絶えているようです。 あと、実装も古かったのであまりC++らしく無かったです。自分の実装の方がまだましだった……
- 223 名前:名前は開発中のものです。 mailto:sage [2007/10/03(水) 23:12:16 ID:UktAvpVZ.net]
- じゃ!がんばれ
- 224 名前:名前は開発中のものです。 mailto:sage [2007/10/03(水) 23:26:21 ID:RbqWUS1l.net]
- あっと、一つだけ質問。
イベント構造体って、どういう使い方するのが一般的? やっぱり設定を済ませたらとっととイベントキューに押し込む&使うときだけイベントキューから取り出す ということで、イベント構造体を保存しておくようなことはあんまり無い?
- 225 名前:名前は開発中のものです。 mailto:sage [2007/10/04(木) 15:29:28 ID:FHvE2BAs.net]
- >>222
要するに気にいらなかったんだなw ぶっちゃけるとSDLみたいな低レベルのAPIをそのままC++ラップしてもあまり嬉しくない。 余程潔癖なC++プログラマじゃない限り C の API そのまま呼ぶのは別に苦じゃないしね。 g3d まで行かなくてももう少し高レベルのゲームエンジンとか特定ジャンル向けAPIなら 使ってみるかという気になるけれど。
- 226 名前:218 mailto:sage [2007/10/06(土) 22:35:26 ID:BZgGmwuo.net]
- 遅レスすみません。
G3Dがなかなか良さそうだったので色々弄っていたのですが……初っ端のstarterサンプルも走らない……。 なんで〜〜〜〜。ドキュメント通りに設定したのに……。 >225 >余程潔癖なC++プログラマじゃない限り C の API そのまま呼ぶのは別に苦じゃないしね。 まあ、そうですけどね。リソース管理といってもboost::shared_ptr併用すれば大した手間じゃないし。 それは判っているのですが、ついゴテゴテとクラスを構築してしまって…… 普段boostの便利ツールを使っているとどうも納得行かなくて。 基本的なところを実装できたらなんかのフレームワークでっちあげてみようかな。
- 227 名前:名前は開発中のものです。 mailto:sage [2007/10/07(日) 10:26:07 ID:yJ/qUspY.net]
- そして目的がゲーム製作からライブラリ製作へ・・・w
- 228 名前:名前は開発中のものです。 mailto:sage [2007/10/07(日) 12:53:09 ID:KThUHL05.net]
- ありがちなパターンだよなw
- 229 名前:名前は開発中のものです。 mailto:sage [2007/10/07(日) 12:54:15 ID:XnDGmhDX.net]
- ゲーム作るより楽しかったり
|

|