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/
439 名前:名前は開発中のものです。 mailto:sage [2009/08/17(月) 09:02:39 ID:cbNmXUcC.net] お前がな
440 名前:名前は開発中のものです。 mailto:sage [2009/08/17(月) 12:30:53 ID:GuHWIeqL.net] いいや、俺が夏だ
441 名前:名前は開発中のものです。 mailto:sage [2009/08/17(月) 20:33:30 ID:ONtV7RcR.net] あたしの夏を取らないでよ!
442 名前:名前は開発中のものです。 mailto:sage [2009/08/21(金) 12:19:45 ID:adQjjuHo.net] 夏の荒らしさん乙です
443 名前:名前は開発中のものです。 mailto:sage [2009/08/28(金) 02:25:31 ID:bI1GjPiJ.net BE:732248093-2BP(2)] sssp://img.2ch.sc/ico/anime_monar03.gif あーめんどくせー 衝突検知用の画像作りたいんだけど、pngから透明部分以外を一定値として抜き出す楽な方法ない? ってふと戻り値boolな関数でreturnさせたら0,1でちょうどいい具合だったのでそういう事にするチラシの裏
444 名前:名前は開発中のものです。 mailto:sage [2009/09/04(金) 15:39:01 ID:yGl/RyVV.net] >> 443 一般的に言えばゲームとかだと画像通りの当たり判定を用意したりしないと思うが… # まぁゲームとはかぎらないけど…
445 名前:名前は開発中のものです。 [2009/09/04(金) 18:38:35 ID:VrgUM9IL.net] >>443 Photoshop使用 またはlibpngを使用して自作、とか
446 名前:名前は開発中のものです。 mailto:sage [2009/09/04(金) 19:38:17 ID:AW5ZeIiJ.net] 陰影などで実際よりも大きくなってる絵の場合、 見た目より当たり判定が大きくなるのは嫌だな。
447 名前:名前は開発中のものです。 mailto:sage [2009/09/04(金) 21:01:11 ID:3y2blY+c.net] C++でゲーム作るならツール作成用にサブ言語覚えるのは必須だよな
448 名前:名前は開発中のものです。 [2009/09/04(金) 21:47:42 ID:VrgUM9IL.net] 自分はツール作成にVB 2005使ってた
449 名前:名前は開発中のものです。 mailto:sage [2009/09/05(土) 01:06:11 ID:BLuHc9Vl.net] C++/CLI
450 名前:名前は開発中のものです。 mailto:sage [2009/09/05(土) 11:39:35 ID:5TqflyB5.net] 悪いこと言わないから.NETならC#かVB使いなさい
451 名前:名前は開発中のものです。 [2009/09/05(土) 14:06:19 ID:6JitDinv.net] やっぱり VB 2005 + C++/CLI + アンマネージコード(SSE使用) C++/CLIではアンマネージコードを含むことができるので、速度がきわめて重要な部分に使う。
452 名前:名前は開発中のものです。 mailto:sage [2009/09/05(土) 14:20:26 ID:BLuHc9Vl.net] まぁ、小物はスクリプト系(そのときの気分で言語色々、場合によっては秀丸マクロも) GUIが必要ならDelphiを使ってる 本格的なツールって大抵は既存のフリーでまかなえるし、データ整形がメインだから 秀丸とUWSCで間に合うよな
453 名前:名前は開発中のものです。 [2009/09/05(土) 14:47:07 ID:6JitDinv.net] そしてさらに小物の場合はbashのシェルスクリプト さらにさらに小物ならシェルスクリプトにせずbashシェルに長い1行で打ち込む
454 名前:名前は開発中のものです。 mailto:sage [2009/09/05(土) 15:26:27 ID:H9l9Obux.net] SDLの話題ないんだな
455 名前:名前は開発中のものです。 [2009/09/05(土) 16:13:51 ID:6JitDinv.net] SDL使いながら自前でソフトウェアレンダリングしてる人ってどれぐらいいるんだろ。
456 名前:名前は開発中のものです。 mailto:sage [2009/09/05(土) 18:50:24 ID:BLuHc9Vl.net] 3Dのレンダリングのこと?ワイヤーフレームなら自前処理したことあるけど結構楽しいな SDL/OpenGLは環境構築ややこしくて諦めたorz 今はいい解説サイト増えたからまたやってみようかな
457 名前:名前は開発中のものです。 mailto:sage [2009/09/10(木) 23:41:48 ID:ouJOE5Kg.net] 3D目的でSDL使うメリットって何かある?
458 名前:名前は開発中のものです。 mailto:sage [2009/09/11(金) 02:16:55 ID:V5iYPA+I.net] >>456 OpenGL つかえる環境作って SDL 使える環境を作ったら終わりだろ… どこがややこしいんだ??
459 名前:名前は開発中のものです。 mailto:sage [2009/09/12(土) 16:14:02 ID:AVCa/v68.net] >>457 インタラクティブなことをしようとするならオーディオレイヤと入力レイヤを備えているのはメリットだと思うが。 OpenGLを表示に使いたいだけならglutなりgluxなり使えばいいわな。
460 名前:名前は開発中のものです。 [2009/09/12(土) 17:31:48 ID:0lmv1+mo.net] [GLUTを使用すべき場合] 瞬間的にウィンドウサイズを変更できるようにする場合。 簡単なプログラムをすばやく作成する場合。 [SDL+GLを使用する場合} ウィンドウサイズを変更させたくない場合。 (ブルームエフェクトなどを使用する場合、ウィンドウサイズ変更時にエフェクト用の バッファを割り当て直す必要がある) 音も鳴らす場合
461 名前:名前は開発中のものです。 mailto:sage [2009/09/12(土) 17:44:22 ID:Su1dcMt0.net] GLFWというものもあるね gamedev.orgのスレではこれがプッシュされてたみたい www.gamedev.net/community/forums/topic.asp?topic_id=444230 GLUTは長い間メンテされてないからあまりお勧めしないとかなんとか
462 名前:名前は開発中のものです。 mailto:sage [2009/09/12(土) 18:37:25 ID:nubInKl1.net] gl系は画像読み込みがものすごく不親切だった記憶がある
463 名前:名前は開発中のものです。 mailto:sage [2009/09/12(土) 19:39:29 ID:MwUmjNb/.net] 前にビットマップファイル作ってヘッダ消して読み込むってやらせてたけど 流石にこれは俺が悪いよな
464 名前:名前は開発中のものです。 mailto:sage [2009/09/14(月) 00:47:35 ID:/xnNUQM4.net] オッス、おらニート サマージャンボで3億円当たっちまってボーっと遊びまくってらこのスレ見つけたわけだ。 おまいらどうやって生活費まかなってんの。後学のためにおしえてくんろだぺ。 あ、俺もう寝るから、明日でもえぇよ。じゃーねぃ。?x2665;
465 名前:名前は開発中のものです。 mailto:sage [2009/09/16(水) 09:33:51 ID:k4ZJL2/r.net] GLFWは前に試してみたけどlinux環境ではスタティックリンクできなくて フォーラム見たら作者が仕様だと開き直ってたので捨てた Win前提なら問題ないみたいだけどそれじゃGLFW使う意味半減だからなあ 最近は改良されてるのかもしれないが…
466 名前:名前は開発中のものです。 mailto:sage [2009/09/16(水) 11:00:02 ID:StlQ+yhL.net] そこでgleeですよ
467 名前:名前は開発中のものです。 mailto:sage [2009/09/20(日) 01:42:21 ID:/lXUq7jB.net] HSPでSDL_BlitSurface呼ぶとエラーになる もうねるし
468 名前:名前は開発中のものです。 mailto:sage [2009/09/20(日) 05:27:05 ID:zX6iAyXm.net] HSPからSDL呼んで何か嬉しいことってあるのか・・・?
469 名前:名前は開発中のものです。 mailto:sage [2009/11/03(火) 19:03:32 ID:dUOYzCVS.net] >>467 そろそろ起きろよ池田ァ!!
470 名前:名前は開発中のものです。 mailto:sage [2009/11/04(水) 00:49:30 ID:txEubNfN.net] ドンだけ寝てんだよw
471 名前:名前は開発中のものです。 mailto:sage [2009/11/08(日) 23:03:17 ID:5mg8aONh.net] OpenGLメンドくせーだのDirect3Dメンドくせーだの言うが 出来て損なことは何一つねえ のだよ 偉い人にはそれがわからんのです。
472 名前:名前は開発中のものです。 mailto:sage [2009/11/10(火) 23:41:21 ID:iS3PwIuY.net] もう諦めたし
473 名前:名前は開発中のものです。 mailto:sage [2009/11/13(金) 21:50:34 ID:Q4b/jXV7.net] WindowsにおけるSDLはDirectXを利用しているんだけどな。
474 名前:名前は開発中のものです。 mailto:sage [2009/11/13(金) 22:11:37 ID:XT+fnpy7.net] DirectX5だっけか?
475 名前:名前は開発中のものです。 mailto:sage [2009/11/13(金) 22:38:40 ID:FHBMJcaz.net] win32apiのラッピングライブラリじゃねえの
476 名前:名前は開発中のものです。 mailto:sage [2009/11/14(土) 12:27:52 ID:0S0r62R2.net] SDL+OpenGLでゲーム作ってます ゲームの流れは 動作処理→描画→Swap→Delay と 動作処理→Swap→描画→Delay のどちらがよいのでしょうか?垂直同期待ちについてもよくわからないのでそこと包めて教えてください
477 名前:名前は開発中のものです。 mailto:sage [2009/11/14(土) 12:29:23 ID:0S0r62R2.net] 二個目は動作処理→描画→Delay→Swapでした 連投申し訳ありません
478 名前:名前は開発中のものです。 mailto:sage [2009/11/15(日) 23:04:16 ID:zpJnzLrg.net] 映像信号は左から右へ1ドットずつ、それを上から下へ1ラインずつ送っているんだ 下まで送りきった後、また上から送りなおすまでに若干の準備期間があって その期間が来るのを待つのが垂直同期待ち 描画が終わったからと言ってすぐSwapしてしまうと、 送信前と送信後の境目で映像を切り替えてしまうことがあり ちらついたように見えてしまう これを俗にティアリングと呼んでいる 垂直同期待ちをする場合はSwapの前に必ずDelayが入る
479 名前:名前は開発中のものです。 mailto:sage [2009/11/15(日) 23:29:35 ID:C19h/pYA.net] 言いたいことは分かるけど476が勘違いしそうだな SDL_Delayとティアリングが起こるかどうかは直接関係ない。 垂直同期待ちを有効にしてある場合はティアリングが起きないように Swap時に自動的に内部で待機が行われる(>>478 のいうDelay)ので 描画とSwapの間にSDL_Delayを入れる必要はない。むしろ入れたら遅れすぎてしまうかも。
480 名前:名前は開発中のものです。 mailto:sage [2009/11/15(日) 23:41:54 ID:zpJnzLrg.net] あぁそうだ。478で言うDelayはSDL_Delayのことじゃなくて、単なる待ち時間と捉えてくれ。 補足サンクス。
481 名前:名前は開発中のものです。 [2009/11/16(月) 17:42:23 ID:+8XK/sK6.net] >>476 Swap ってことはダブルバッファ使ってるって前提で言うと 1) 垂直同期待ち ON(SDL_GL_SetAttribute() で SDL_GL_SWAP_CONTROL に 1 を設定している)なら SDL_GL_SwapBuffers() で自動的に垂直同期待ちするので SDL_Delay() などは必要ない。 処理→描画→SDL_GL_SwapBuffers()[自動でVBLANK待ち] 2) 垂直同期待ち OFF なら SDL_Delay() で適当な時間待って SDL_GL_SwapBuffers() を呼べばいいんじゃないだろうか。 処理→描画→SDL_Delay(適当)->SDL_GL_SwapBuffers() 1) はモニタのリフレッシュレート依存のフレームレートになる。 2) はティアリングするけど、自分でフレームレートの調整ができる。 ってとこじゃないだろうか。 ちなみに俺の環境(Debian) だと環境変数 __GL_SYNC_TO_VBLANK に 0 以外の値が入ってないと SDL_GL_SWAP_CONTROL に 1 を設定しても 垂直同期待ちしない。
482 名前:名前は開発中のものです。 mailto:sage [2009/11/26(木) 19:03:17 ID:CidvYtOP.net] 質問ですが、 FR・LGのROMの0xF00000〜0xFDFFFFを 使っても大丈夫なのでしょうか 既出だったら申し訳ありません
483 名前:名前は開発中のものです。 mailto:sage [2009/11/30(月) 14:53:20 ID:zYRTMWSr.net] SDL_FULLSCREEN で真ん中に寂しく表示される場合があ るけど、同じ SDL 使ってて mplayer とかはどんな解像 度でもちゃんと画面一杯に出るのは mplayer が頑張っ てるってこと?
484 名前:名前は開発中のものです。 mailto:sage [2009/11/30(月) 17:17:02 ID:KrKp2mDg.net] >どういう理由であれ、ハードウェアによる解像度変更ができない場合は >一段階解像度の高いモードが使われ、黒い背景の中央に表示ウインドウが置かれます。 だから、例えば最低解像度が640*480の環境で320*240を指定するとそういう状態になる。 確実に画面いっぱいに表示したければ、SDL_ListModesで作成可能な解像度を調べて 適切な拡大処理をすれ。
485 名前:名前は開発中のものです。 mailto:sage [2009/12/01(火) 00:26:20 ID:k3liZ+0u.net] mplayerがどうしてるかは知らんけど、たぶんオーバーレイってやつだと 思うよ。SDL_CreateYUVOverlayで作れるけど、対応してればハード ウェアで拡大してくれる。前にためしで使ってみたけど、色指定が面倒 だから使うのやめた。画面一杯に拡大しても、CPU使用率ほとんど 変わらないのは魅力的だったけど。
486 名前:名前は開発中のものです。 mailto:sage [2009/12/01(火) 05:20:13 ID:q115eOhs.net] mplayer のログに YUV planner がどうの、と出るから 多分それだと思う。使ったことないや… en.wikipedia.org/wiki/YUV
487 名前:名前は開発中のものです。 mailto:sage [2009/12/01(火) 07:29:30 ID:q115eOhs.net] ffmpegのチュートリアルが詳しかった。 www.dranger.com/ffmpeg/tutorial02.html
488 名前:名前は開発中のものです。 mailto:sage [2009/12/01(火) 19:43:38 ID:JC6VUAq8.net] 一番いいのは、ユーザーに選択させること。 こっちは800x600前提で作ってりゃいい
489 名前:名前は開発中のものです。 mailto:sage [2009/12/01(火) 21:18:45 ID:q115eOhs.net] 描画部をアダプタパターン的にリファクタリングしてス ケーラを挟むようにした。とりあえず RGB のままでソ フト的にスケールさせて、アプリ側に問題ないようなら オーバレイを試してみるよ。 ffmpeg のライブラリ使うと変換も楽そうだし。 www.dranger.com/ffmpeg/tutorial08.html >>485 ヒントサンクス。
490 名前:名前は開発中のものです。 [2009/12/05(土) 09:27:44 ID:maU44PH4.net] ttp://cefiro.homelinux.org/topics/SDL/printable/setup-win32-mingw-1.1-20030402.html を参考にMinGW5.1.6にsmpeg 0.4.4を入れようとしているのですがmakeに失敗します。 いくつかのサイトで-lstdc++が必要とのことで cd smpeg-0.4.4 env LIBS="-lstdc++" sh configure --prefix=/mingw make エラーの内容は undefined reference to 'SDL_XXX' undefined reference to '__cxa_pure_virtual' などです。SDLはインストール済みで/mingw/lib/libSDL.aはあります。 どなたか解決策をご存知ないでしょうか。
491 名前:名前は開発中のものです。 [2009/12/05(土) 13:04:40 ID:xcDdDp0c.net] >>490 make CC=g++ CXX=g++ LD=g++ と打つと成功する可能性があります。
492 名前:名前は開発中のものです。 mailto:sage [2009/12/05(土) 21:38:18 ID:maU44PH4.net] >>491 アドバイスありがとうございます。 コンパイルやリンクにc++の代わりにg++を使うようになったのですがエラーメッセージは変わらずです・・・ エラーを出力して調べてみたところ Warning: This library needs some functionality provided by -lSDLmain. I have the capability to make that library automatically link in when you link to this library. But I can only do this if you have a shared version of the library, which you do not appear to have. と出ていました。SDLがリンクできていないのがエラーの原因のようですが上記メッセージと関係あるでしょうか? ちなみにPATHを通したC:/MinGW/binにはSDL.dllというshared libraryがあります。 もし何かわかる方がいたらアドバイスください。
493 名前:名前は開発中のものです。 mailto:sage [2009/12/05(土) 22:13:58 ID:7PVQwHSV.net] >>492 SDL のダイナミックライブラリが見つからないと言っている。 libSDL.a はスタティックライブラリ。
494 名前:名前は開発中のものです。 mailto:sage [2009/12/05(土) 22:14:41 ID:7PVQwHSV.net] ああ、dll はあるのか。 >>490 に書いてあるパスとよく見比べてみろ。
495 名前:名前は開発中のものです。 mailto:sage [2009/12/06(日) 00:58:57 ID:J5Ambf4a.net] >>494 dllは/usr/local/binじゃなくて/mingw/binにインストールしたんですが、MSYSでecho $PATHとやると .:/usr/local/bin:/mingw/bin:/bin:... となっていてSDL.dllがおいてある/mingw/binはパスに入ってます・・・もうお手上げ よく見たら ttp://cefiro.homelinux.org/topics/SDL/printable/setup-win32-mingw-1.1-20030402.html のサイトにMinGWでコンパイルしたsmpeg-0.4.4のバイナリがおいてあるのでそれを/mingwに展開したらとりあえず使えるようになりました。
496 名前:名前は開発中のものです。 mailto:sage [2009/12/06(日) 08:18:47 ID:tD3g+RMw.net] …
497 名前:名前は開発中のものです。 [2009/12/27(日) 21:37:15 ID:E6vqQ5Mm.net] 同じプログラムでSDLをダイナミックリンクしたものと、スタティックリンクしたものを作成したのですが、 ダイナミックリンク版ではコンソールへ標準出力されていたものが スタティックリンクでは出ないような現象が発生しています。 SDLのリンク方法によってこういう現象は発生するものなのでしょうか。 また、リンク方法が原因である場合、スタティックリンクで標準出力へ出力する方法は あるでしょうか。
498 名前:名前は開発中のものです。 [2009/12/28(月) 02:47:12 ID:Fq5F3Q16.net] >>497 標準出力に表示されない設定でコンパイルされたライブラリをリンクしてるだけでしょ
499 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 02:50:41 ID:ueppcxNQ.net] なんだこのデジャブは
500 名前:名前は開発中のものです。 mailto:sage [2009/12/28(月) 16:18:04 ID:v3DIc8rS.net] >>498 1ライブラリが本体のソースの動作まで変えてしまうものなんですね。 勘弁してほしいものですが... --enable-stdio-redirect ですかね。試してみます。 でも現状ではファイルにリダイレクトされてるわけでも無いようですが...
501 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 20:53:13 ID:K2AtahHI.net] makeしたら負けだと思う
502 名前:名前は開発中のものです。 mailto:sage [2010/01/02(土) 22:20:06 ID:WElBVpUZ.net] 正月早々審議中ですがな
503 名前:名前は開発中のものです。 mailto:sage [2010/01/03(日) 22:45:29 ID:v00n4e/G.net] floatに頼子だ割ったプログラムソースを目指す人のためのブランド「float志向」
504 名前:名前は開発中のものです。 mailto:sage [2010/02/10(水) 06:01:03 ID:42Ej3nDs.net] SDL_MixerでBGMを任意の位置でループさせる方法はないものか・・・。 やっぱりSDL_Audioで作るしかないのかな
505 名前:名前は開発中のものです。 mailto:sage [2010/02/10(水) 14:20:15 ID:Epllauxu.net] どうしてもSDL_Mixerでやりたきゃオーディオソースを切っちゃえばいいじゃん どうせならOpenAL使おうぜ
506 名前:名前は開発中のものです。 mailto:sage [2010/02/11(木) 20:04:23 ID:eol/wS6u.net] SDL_WM_SetCaptionで日本語を表示したいのですがどうすれば良いですか?
507 名前:名前は開発中のものです。 mailto:sage [2010/02/11(木) 22:32:07 ID:TYw/tKcb.net] 最新バージョンだと文字コードがUTF-8だったと思うんで変換して渡せばいいはず。 変換の仕方はググって下さい。
508 名前:名前は開発中のものです。 mailto:sage [2010/02/12(金) 05:23:48 ID:50DkRwmT.net] >>505 ありがとうございます
509 名前:名前は開発中のものです。 mailto:sage [2010/02/20(土) 00:52:58 ID:P6PcOv95.net] 変換の仕方がわかりませんでした。
510 名前:名前は開発中のものです。 mailto:sage [2010/02/21(日) 10:34:00 ID:w53qIXyc.net] こんなんあったよー。 Shift-JIS -> UTF8 ttp://www.atmark.gr.jp/~s2000/r/rtl/encode.html ttp://www2s.biglobe.ne.jp/~satosi/soft/sjis2utf8.h
511 名前:名前は開発中のものです。 mailto:sage [2010/02/21(日) 16:56:39 ID:3J1UUm0O.net] IBMのICUを使おうぜ
512 名前:名前は開発中のものです。 [2010/02/21(日) 19:59:42 ID:ufBia+CD.net] 変換できました。 UTF-8は可変長なのが糞。
513 名前:名前は開発中のものです。 mailto:sage [2010/02/21(日) 23:58:24 ID:EauoWI/j.net] SDLdoc-jp を置いている tacoworks.jp の管理人です。 サーバの移転を行うため、3/15 のあたりに DNS 情報の切り替えを予定しています。 ドメイン名自体の変更はないので移転後も ttp://www.tacoworks.jp/software/SDLdoc-jp/ のURL は そのままアクセスできますが、 切り替えの時期に一時的に見えなくなるかも知れません。 もしそうなったら申し訳ありません。
514 名前:名前は開発中のものです。 mailto:sage [2010/02/27(土) 21:52:04 ID:EEwTwLby.net] openglを使う時に最初の画面が真っ白になるのを回避できませんか? できれば画像を読み込んで、いきなりそれを表示したいのですが。
515 名前:名前は開発中のものです。 [2010/03/04(木) 02:20:13 ID:UchClD6H.net] >514 もしかしてSDL_SetVideoModeしてから最初のSDL_GL_SwapBuffersを呼ぶまでの時間が長いんじゃないのか? ファイルの読み込みとか
516 名前:名前は開発中のものです。 mailto:sage [2010/03/05(金) 22:08:24 ID:hwXnLLqk.net] いえ、別に何もしていませんが、最初の一瞬だけ真っ白になります。 それが嫌なのです。
517 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 13:08:12 ID:CzYN7Tsj.net] >>514 うちではならない。 再現する最小のソース書いてうpするか他のPCで試しても同じになるか試してみるか。
518 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 18:55:21 ID:Bw1LtACR.net] #include <SDL.h> #include <SDL_opengl.h> #include <windows.h> #pragma comment(lib, "SDL.lib") #pragma comment(lib, "SDLmain.lib") #pragma comment(lib, "opengl32.lib") void End(); // 終了処理 bool PollEvent(); // イベント処理 bool Init(); SDL_Surface *gScreenSurface; int main(int argc, char* argv[]) { // 初期化 if( !Init() ){ printf( "初期化に失敗しました" ); return 0; } // メインループ while( 1 ){ glClearColor(1.0f, 1.0f, 1.0f, 0.0f); glClear(GL_COLOR_BUFFER_BIT); // 四角形を描く glBegin(GL_QUADS); // 描画色を白に設定 glColor3f(1.0, 0.0f, 0.0);
519 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 18:59:11 ID:Bw1LtACR.net] // 4つの頂点を指定 glVertex3f(100.0f, 100.0f, 0); glVertex3f(540.0f, 100.0f, 0); glVertex3f(540.0f, 380.0f, 0); glVertex3f(100.0f, 380.0f, 0); glEnd(); // 更新を画面に反映する SDL_GL_SwapBuffers(); // イベント処理 if( !PollEvent() )break; } // 終了処理 End(); return 0; } // 初期化処理 bool Init() { // SDLの初期化 if( SDL_Init( SDL_INIT_VIDEO ) < 0 )return false; SDL_WM_SetCaption("test", NULL); SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); // ウィンドウの初期化 gScreenSurface = SDL_SetVideoMode(640,480,32,SDL_OPENGL | SDL_HWSURFACE); glOrtho(0.0, 640, 480, 0.0, -1.0, 1.0); glClearColor(255.0f, 255.0f, 255.0f, 255.0f);
520 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 19:03:11 ID:Bw1LtACR.net] glClear(GL_COLOR_BUFFER_BIT); return true; } // 終了処理 void End() { // SDLの終了 SDL_Quit(); } // イベント処理 bool PollEvent() { SDL_Event ev; SDLKey *key; while(SDL_PollEvent(&ev) ) { switch(ev.type){ case SDL_QUIT:// ウィンドウの×ボタンが押された時など return false; break; case SDL_KEYDOWN:// キーボードからの入力があった時 { key=&(ev.key.keysym.sym); // どのキーが押されたかを取得 if(*key==27){// ESCキー return false; } } } } return true; }
521 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 19:07:50 ID:Bw1LtACR.net] 上のコードを試してみて下さい。 真っ白なウインドウが出てからちょっとしたら赤い四角形が出てくる のですが、最初からいきなり赤い四角を表示したいのです。
522 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 20:31:19 ID:Kg6b0q6C.net] >>521 OS: windowsXP sp3 コンパイラ: gcc version 3.4.5 (mingw-vista special r3) コンパイルコマンド: g++ hogehoge.cpp `sdl-config --cflags --libs` -lglu32 -lglut32 -lopengl32 私の環境では初回起動時に一瞬、背景が透明なウィンドウが生成されてから、中身が表示されました。 二回目以降は最初から白の背景に赤い四角が表示されます。
523 名前:名前は開発中のものです。 mailto:sage [2010/03/08(月) 23:00:18 ID:vwTt08PI.net] 通りすがり OS : Linux 2.6.18-164.11.1.el5.centos.plus i686 i386 コンパイラ : cc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46) コマンド : cc piyo.cxx `sdl-config --cflags --libs` -lglut 背景が黒のウィンドウができてから白の背景に赤の矩形が表示された
524 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 01:09:04 ID:Vf4aRsZC.net] SDLがウィンドウ関連の処理にてこずってるようにも見える。 苦肉の策として サイズ(1 x 1) でウィンドウを作っておいてから 初期化が終わったあとでサイズ変更(or 作り直す)すると まだマシかもしれない。
525 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 20:29:54 ID:cbWSj+ct.net] 関係ないけど >glClearColor(255.0f, 255.0f, 255.0f, 255.0f); これ変じゃない?
526 名前:名前は開発中のものです。 mailto:sage [2010/03/09(火) 22:19:00 ID:SrDy9O7H.net] 画面上をクリックするゲームを作ってるんですが、 画面上でマウスカーソルを動かしまくるとイベントを受け付けないフレームが出てきます。 どうすればいいですか。
527 名前:526 mailto:sage [2010/03/09(火) 23:01:04 ID:SrDy9O7H.net] すいません。自己解決しました。 イベントキューからイベントを取り出してないだけみたいでした。
528 名前:名前は開発中のものです。 mailto:sage [2010/05/16(日) 18:10:10 ID:06+3luLg.net] 下のコード動かすと画像表示しないで画面が真っ黒になります。 イベントハンドラのセット(SDL_SetEventFilter(&filterEventsHandler);) を画像転送の後に配置すると画像表示されるんですけど そういうものなんですか?何かルールありますのですか? 以下ソース(D言語) ----------- void main() { SDL_Init(SDL_INIT_VIDEO); SDL_Surface *screen = SDL_SetVideoMode(640, 480, 0, SDL_SWSURFACE); SDL_SetEventFilter(&filterEventsHandler); // イベントハンドラ // ビットマップ読込 SDL_Surface *image = SDL_LoadBMP("hell.bmp"); // 転送 SDL_BlitSurface(image, cast(SDL_Rect*)0, screen, cast(SDL_Rect*)0); // イベントループ bool done = false; SDL_Event e; while ( !done ) { while ( SDL_PollEvent(&e) ) { done = e.type == SDL_QUIT; } SDL_Delay(1000/30); } SDL_Quit(); }
529 名前:528 mailto:sage [2010/05/16(日) 18:22:50 ID:06+3luLg.net] SDL_Flip( screen ); したら表示されました。イベントハンドラ設定したら プライマリサーフェイスがクリアされるとか・・・? わからねえ
530 名前:名前は開発中のものです。 [2010/05/16(日) 18:29:59 ID:liwIcFmL.net] SDL_SetVideoModeのことろで、 SDL_DOUBLEBUFも指定しない場合、 SDL_Flip以外でも「誤って」画面表示される場合があります。
531 名前:528 mailto:sage [2010/05/16(日) 18:48:17 ID:06+3luLg.net] >>530 ありがとうございます。 逆に偶然表示されたって感じなんですね。
532 名前:名前は開発中のものです。 mailto:sage [2010/05/26(水) 23:52:18 ID:vxXpWbeN.net] ウィンドウを最大化状態から、「元の大きさに戻す」をした場合に、 SDL_ResizeEvent が発生しないのは仕様なのでしょうか。 WindowsXP です。
533 名前:名前は開発中のものです。 mailto:sage [2010/06/15(火) 06:08:43 ID:uiRYjjiv.net] openalで音出せなくて泣きそうになってたけど、 sdlでやってみたら何の苦労もなく音鳴らせた。 難しいものだな。
534 名前:名前は開発中のものです。 mailto:sage [2010/06/16(水) 02:46:18 ID:6fxhLOX2.net] ttp://www.kekkai.org/roger/sdl/index.html ここがすごく良かったです。
535 名前:名前は開発中のものです。 mailto:sage [2010/06/17(木) 03:30:58 ID:/dRDvNuV.net] keysymの"sym"ってどういう意味ですか? 何かの略語でしょうか?
536 名前:名前は開発中のものです。 mailto:sage [2010/06/17(木) 12:00:01 ID:98v+kB9R.net] symbol
537 名前:535 mailto:sage [2010/06/17(木) 20:05:49 ID:/dRDvNuV.net] >>536 ありがとうございました。
538 名前:名前は開発中のものです。 mailto:sage [2010/08/01(日) 10:17:44 ID:mluWnsAb.net] GUI(ボタンとか)で使いやすいLIBってどれでしょうか? 軽めのやつで
539 名前:名前は開発中のものです。 mailto:sage [2010/08/15(日) 22:37:48 ID:67G99BX9.net] WindowsでSDL使っています ウィンドウのタイトルバーをドラッグしてるときに 処理がとまらないようにするにはどうすればいいんでしょうか