SDL=Simple DirectMedia Layerでゲームだ

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
DirectXなんて捨てちまえ。
これからはSDL。

本家
http://www.libsdl.org/index.php

ゲームとか
http://adas.lolipop.jp/digit/index.php?SDL

サンプル
http://saka.moo.jp/Linux/SDL.html
460デフォルトの名無しさん
垢版 |
2010/11/16(火) 16:11:45
情報を出し渋ったところで得なんて無いしねw
情報を出せば尊敬が得られるから気分が良いけど、無くす物なんて何も無いもんね。
2010/11/16(火) 16:24:01
自分からおいこら呼ばわりしておきながら、質問者のマナーがわるいと文句と罵倒だけ書き込んでいく自称上級者。
2010/11/16(火) 17:24:41
このスレは一体いつから初心者質問スレになったんだ
463デフォルトの名無しさん
垢版 |
2010/11/16(火) 17:29:12
>>462
初心者は質問するなとも書いてないな
2010/11/16(火) 17:31:20
どうせ過疎スレなんだし質問ぐらいいいだろ。
答えられないバカの僻みか?
2010/11/16(火) 19:32:13
ぶははは、だからオープンソースだって逝ってるだろwww
2010/11/16(火) 22:33:16
オープンソースだから、何だって?
日本語が不自由な方がいらっしゃるようだが。
いや、不自由なのは頭か。
2010/11/17(水) 00:37:23
> 結局のところ、検索って奴はいろんなサイトを見て回って
> ゴチャゴチャと大量の広告を見せられた挙句、
> ネット上に散りばめられた情報を一個一個拾い集める糞つまらなくて脳の無駄遣いな作業なんだよ。
> だから掲示板で質問して一発でほしい情報を得ようとするわけ。
> お分かり?
> ここで質問してる子は賢いわw

ソース見れば答えが書いてあるじゃん。しかも一箇所に纏まってて便利だよね。
勿論、広告も無いし、過疎スレで指くわえて待つ必要もないし。
ソース読めば一発で欲しい情報は自分の都合で得られるよね。

オープンソースって便利だね。
468デフォルトの名無しさん
垢版 |
2010/11/17(水) 00:51:32
>>467
お前、そんなことばっかり言ってるからプログラマはなめられるんだよw
2010/11/17(水) 00:52:56
いくら煽っても何も出ませんよ。
470デフォルトの名無しさん
垢版 |
2010/11/17(水) 00:58:51
俺は質問者じゃねーもん
別にお前に答えてもらおうなんて思っちゃいねーよw
ただ単に、質問に答えられないで僻んでるザコがいるなぁwと笑って見てるだけ
2010/11/17(水) 01:06:57
ああ、人間の屑の方でしたか。
おだいじに。
2010/11/17(水) 02:13:46
>>442
473デフォルトの名無しさん
垢版 |
2010/11/17(水) 02:31:23
俺は教えるなんてめんどくさいことはしないから質問者はスルーだよw
2010/11/17(水) 08:27:15
このスレのひとは難しい質問には答えられません
2010/11/20(土) 03:04:49
最近、ほんと無駄に煽って答えを得ようとする奴がいるよね。
同一人物かな?不愉快だわ。
2010/11/20(土) 05:24:46
高圧的な態度で掲示板に「自分で調べろ」としか書けない自称上級者様のお言葉でした^^
2010/11/20(土) 10:41:55
>>476
そういう人がいるから質問者のマナーも悪くなるんだよね。
お互いに謙虚にならないといけないと思う。
2010/11/20(土) 12:01:54
【レス抽出】
キーワード:自称上級者

抽出レス数:3
2011/01/27(木) 14:37:26
しばらく見ないうちにすっかり寂れてもうて・・・
hp webOSは標準でSDL搭載。SDLがメジャーで陽の目を見たな。
ttp://developer.palm.com/index.php?option=com_content&view=article&id=1989&Itemid=331#CoreTechnologies
2011/01/27(木) 14:42:57
iPhoneやDS向けにも開発できるようになってる
ttp://www.galaxygameworks.com/
2011/02/12(土) 21:07:20
なんかSDL 1.3色々変わってるね。
個人的にはSDL rendering APIの変更が結構影響大きかった。
482デフォルトの名無しさん
垢版 |
2011/02/13(日) 00:36:42
SDL 1.2 だけど、
Mac で SDL Application テンプレートで作った時、
メニューを作ってくれる割に Command+Q(終了)とかが効かないんだけど、
自分で実装しないといけないの?
Command+Q はともかく Command+H(隠す)とか Command+M(最小化)とか
Cocoaよく知らないからめどいし
Macかどうかで処理の分岐が必要になるのが嫌なんだけど仕方ないのかね
2011/02/13(日) 03:24:12
>>482
SDL が使われる主要な目的を考えると、Command+H 等が勝手にメニュー処理に
取られちゃったら困るんじゃない?

それらの処理を自分で実装するのはそれほど難しくないと思われ。
mac.m みたいなファイルを作って Mac OS X 専用のルーチンをまとめておけば
ソースコード上もスッキリするんじゃないかな。
2011/02/13(日) 03:43:48
>>479
そのソフトウェアスタックを見ると、Zen of Palm はまだ生きてるんだなあ
2011/02/13(日) 04:56:51
>>483
確かにフルスクリーンでも効いちゃったら困るとかありそうなので自前で実装した
なるべく#ifdef使いたくなかったけどこれは仕方ないね・・・
2011/02/13(日) 13:54:25
Command+Qで終了するのを自前で実装したけど、
終了直前にビープ音らしき音が鳴るのが気になる。
SDLのイベントでキー判定しているのがまずいのだろうか…
2011/02/13(日) 15:05:57
音楽鳴らしながらそのまま終了してるとか?
488486
垢版 |
2011/02/13(日) 18:01:19
>>487
無効なキー入力をしたときに鳴る音と同じ音が鳴るんだよね。
たとえばアプリ実行中にCommand+Aなどの無効なキーを入力するとビープ音(うちだとFunk)が鳴るんだけど、
その音が鳴りながらアプリが終了する(のでビープ音も途中までしか鳴らない)。
具体的には以下のコードみたいに終了イベントやキーを受け取ってメインループを終わらせてる。
もっとちゃんとショートカットキーを実装する方法があるのかな。

SDL_Event event;
while (SDL_PollEvent(&event)) {
 if (event.type == SDL_QUIT ||
  event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE ||
  event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_q && (event.key.keysym.mod == KMOD_LGUI || event.key.keysym.mod == KMOD_RGUI)) {
  done_ = true; // メインループを抜けさせる
 }
}
2011/02/13(日) 18:40:33
俺はCommand+Qで終わる時は
SDL_QuitEvent event = { SDL_QUIT };
SDL_PushEvent((SDL_Event*)&event);
って終了イベント投げてるけど
そもそも無効なキー入力で音が鳴るという現象がうちは無いんだよな・・・
どんなキーでも押せば全部SDL_KEYDOWNに流れてくるので
有効無効とかがそもそもない気がする
2011/02/13(日) 21:09:11
>>489
短いテストコードを書いてSDL 1.3、SDL 1.2のそれぞれhg先端を使ってコンパイルしてみた。
Command(RMATAまたはLMETA)+Q を押すと0.5秒待った後アプリ終了。
0.5秒待つのは音が鳴るのを確認するため。
http://ideone.com/TiLg8
SDL 1.2 … Command+Qなどを押しても音が鳴らない。
SDL 1.3 … Command+Qなどを押すとビープ音が鳴る。
ということで今のところ「SDL 1.3を使う」が原因っぽい。
対応は考え中だけど、深追いするとハマリそう…
2011/03/13(日) 20:22:53.65
>>453
SDLのビルド手順が掲載されているサイトはありませんか?
教えていただければ幸いです。
2011/03/13(日) 22:32:56.41
環境によるだろ
ソース落としてREADME.fooとINSTALL読め
http://www.libsdl.org/download-1.2.php

特殊な環境でない限りソースからは入れないけどな
1.2.14をLinuxに試しに入れてみた、それ以外は知らん
2011/03/20(日) 16:51:40.03
SDL_image を使ってpng画像を使えるようにしようと思って
gccを使ってコンパイルまでできたのですが、
実効しようとしたら以下のようなメッセージが表示されて実行できません。

libpng warning: Application was compiled with png.h from libpng-1.4.2
libpng warning: Application is running with png.c from libpng-1.2.43
libpng error: Incompatible libpng version in application and library

どういう意味なのでしょうか?
解決策を教えてください。お願いします
2011/03/20(日) 16:52:47.41
libpng error: Incompatible libpng version in application and library
2011/03/20(日) 16:57:29.14
>>494
アプリケーションとライブラリのlibpngのバージョンに互換性がない
と言うことですか?
2011/03/20(日) 20:01:21.80
SDL_imageをコンパイルした時に使ったlibpngのバージョンと
実行するときに使おうとしてるlibpngのバージョンが違う
2011/03/20(日) 21:20:15.34
>>496
ありがとうございました
498デフォルトの名無しさん
垢版 |
2011/05/06(金) 02:01:30.70
短い音だとやっぱMix_PlayChannelが終了する前に
Mix_ChannelFinishedで登録した関数がコールバックされる事とか、
もっと言えば終了とコールバックが同時実行されるとか、
何も対策しなければスレッドアンセーフな状況になるの?
2011/06/26(日) 00:04:41.93
2バイト文字と1バイト文字が混載しているテキストデーターから文字を1文字ずつ切りだして
SDL_ttfのTTF_GlyphMetrics()関数の第2引数に送って第7引数のトータルの文字幅を求めるコードが必要になったんだが
Unidodeに変換するためにiconvを使うとしたらどういう実装にすればいいかな?
2011/09/21(水) 07:47:59.30
SDL.dllだけ1.3に差し替えたら
SDL_imageがセグメンテーションエラー起こしやがった・・・
imageも作りなおさないといけないのか・・・
2011/09/21(水) 09:55:48.90
>>500
逆になぜそのまま動くと思ったのか知りたい。
2011/09/21(水) 16:09:02.53
たぶん、全然別物だって知らなかったんでしょ。
1.2.14→1.3って番号だけ見ると互換性ありげだし。2.0とかにしちゃえばいいのにね。
2011/09/22(木) 23:53:21.86
英語ブログでオッサンが
1.3とsdl-imgeでvery fineみたいなこと言ってたから
とりあえずぶち込んでみたんだ
なんかjpegがビルド失敗するしあきらめるか
2011/09/25(日) 06:23:03.25
SDL1.3期待したがmacの日本語入力ができないなぁ
自分で作るか・・・
2011/10/31(月) 13:09:22.07
SDL1.3もLGPLですか?
なんか商用ライセンスとか書いてあるような……
2011/10/31(月) 13:22:04.20
>>505
新しい方のページにzlibライセンスって書いてあるし、パッケージ本体にもそう書いてある。
1.2時代のページには1.3もLGPLとか書いてあって紛らわしいな。

とはいえ、sdl_imageとかsdl_mixerなんかzlibライセンスにならない限り、あんまり意味無いかも。
2011/10/31(月) 18:12:26.94
SDL 1.3は今年の4月頃にzlibライセンスへ移行したけど、
ウェブサイトの更新はちょうどライセンス切り替え直前あたりで止まってる模様(hgのsdlwebのログで確認)。
指摘すれば更新してくれるんじゃないかな。
2011/11/02(水) 16:23:02.75
なるほどありがとう
509デフォルトの名無しさん
垢版 |
2011/11/20(日) 14:24:20.08
いえいえ
2011/12/28(水) 22:57:52.19
SDLで簡単なアニメーション(とキー受付)をしたいのですが、そのプログラムで使う変数の値をどうやって入力しようか思案中です。
最悪の場合設定ファイルをテキスト形式で用意する案も考えていますが、もうすこしユーザーフレンドリーな入力方法としてwxWidgetsを使えないかと考えています。
wxWidgetsからSDLプログラムを走らせると速度が遅くなったりしますか?(というか、そんなことは可能ですか?)
他にもなにかお勧めの方法があったら教えてください。

2011/12/28(水) 23:01:15.63
>>510
あ・・・SDL-widgetsってのがあるのですね・・・。
2011/12/29(木) 09:29:08.69
test
2011/12/29(木) 09:29:38.92
tests
2011/12/29(木) 09:30:05.77
testtest
2011/12/31(土) 11:45:43.44
次期バージョンのSDL_mixerでFluidSynthをサポートするみたいね
516デフォルトの名無しさん
垢版 |
2012/03/16(金) 21:00:50.52
あげ
2012/03/17(土) 21:03:26.56
SDLでEAXみたいな3Dサウンドって出来ないんでしょうか
2012/03/17(土) 21:17:24.83
OpenAL使えば
2012/03/18(日) 01:40:21.90
出来ないんですね。
ありがとう
2012/03/18(日) 02:00:26.11
SDL_mixer:

Mix_SetPosition
角度と距離を指定すると音の位置が変化する

Mix_RegisterEffect
効果音単体・出力直前のバッファを弄れるフック関数を登録する
chanがMIX_CHANNEL_POSTの時、streamにBGM・効果音合成済みの出力直前バッファが渡される
もちろん3Dな音響を適用するエフェクトは全て自作していく

Mix_SetPostMix
出力直前のバッファを弄れるフック関数を登録する
streamにBGM・効果音合成済みの出力直前バッファが渡される
こちらもエフェクトは全て自作していく
Mix_RegisterEffectと共存OK
2012/03/29(木) 23:44:49.72
これ便利なライブラリーだな。
2012/03/31(土) 15:56:24.51
>>521
マジ便利だよ。それにどんなOSでも使えるから一生もんの技術だよ
2012/06/28(木) 15:27:07.64
てすと
524デフォルトの名無しさん
垢版 |
2012/07/30(月) 02:00:02.32
SDL_mixerとSDL_imageが全然動かない・・・
libogg.dll, libvorbis.dll, libvorbisfile.dllをビルドして置いても
MIX_INIT_OGG指定すると初期化に失敗するし、
libpng15.dllをビルドして置いても
IMG_INIT_PNG指定すると初期化に失敗するし、
もう訳分からん・・・
2012/07/30(月) 02:26:48.15
画像に関してはBMPにすれば何とかなるかもしれないが
音楽は流石にWAVにするのはきつい・・・
どうにかならないものか
526デフォルトの名無しさん
垢版 |
2012/07/30(月) 02:30:32.42
>>524
何かエラーメッセージは無いの?
エラー発生直後にSDL_GetError()の戻り値は確認してる?
2012/07/30(月) 02:49:57.37
おおう、要求されるDLL名が
デフォルトで作成されるものと違っていたようです
ありがとうございました
528uy
垢版 |
2012/07/30(月) 09:30:39.42
ちょっと使ったことあるけど、
このライブラリ煩雑すぎじゃね
SDLをもう一段階ラップしないと使い物にならない
529デフォルトの名無しさん
垢版 |
2012/07/30(月) 09:45:29.16
全員がそうではないけど、
そうしないと使えない人がいてもおかしくはない。
2012/08/03(金) 23:11:06.43
SDLをさらにラップしたものは沢山あるだろ
2012/08/06(月) 00:19:59.48
むしろラップして使うものだし
俺俺ライブラリ作るの楽しいです(^ρ^)
532デフォルトの名無しさん
垢版 |
2012/08/17(金) 23:55:49.35
c
2012/08/26(日) 01:28:22.16
MacのSnow LeopardでSDLをフルスクリーンにすると
画面真っ黒でOSに戻れなくなる件は治ったんだろうか…
534片山博文MZパンク ◆0lBZNi.Q7evd
垢版 |
2013/04/08(月) 21:35:19.34
あげ
2013/04/13(土) 13:04:29.50
独自の画像読み込みはどうすればいいですか?rawなんとか?
536デフォルトの名無しさん
垢版 |
2013/04/18(木) 01:15:31.10
あるピクセルが透過ピクセルかチェックする処理を作っています。
32bit(ARGB)surfaceの場合、A値が255かチェックすれば良いと思って
IMG_Loadで透過なしARGB(32bit)pngを読み込んでみたところ
surface->pixelsをみたらAが0x00になってました
透過なしなら0xffが正しいと思うんです
透過かどうかの判断材料は他にあるんでしょうか

SDLのバージョンはSDL 1.2.14、SDL_image 1.2.12です
2013/04/18(木) 01:44:16.98
あきらめが肝心
2013/04/18(木) 21:03:59.60
>>535
CreateSurfaceとかCreateSurfaceFromとか

>>536
SurfaceってAlpha使うかどうかのフラグ無かったっけ
2013/04/18(木) 22:38:19.63
>>535
32bit RGBAの空サーフェス作って、それのpixelsにデコードしたのぶっこむ。
当然フォーマットはきちんと(8ビットづつ)RGBAの位置を設定してからサーフェス作ること。
ここまでちゃんとできたら、後はBlitSurfaceしてやりゃ自動でフォーマット変換やってくれるから、マシンやターゲットの色表示ビット数は考慮しないでいい。
2013/04/18(木) 22:40:03.43
>>536
とりあえず、png読んだ側のサーフェスのフォーマット見れ。
特にamaskとashift。
2013/04/27(土) 15:06:27.56
sdl.dllを自前で作りたいんだけどVisual C++ 2010 ExpressでSDLのビルドって出来ない?
2013/04/30(火) 20:36:05.95
>>541
できると思う。
何かエラーが出た?
2013/06/03(月) 03:38:44.57
SDL 2.0.0のリリース候補版が出た模様。
Windows x86/x64とMac OS X intel向けバイナリも用意されている。
2013/06/06(木) 22:11:29.90
おお、ついに来るんか
2013/07/26(金) NY:AN:NY.AN
SDLのイベント処理の使い方がいまいちわからないんだけど、どういうふうに使うものなのかな?

今までDXライブラリを使ってきたけど、プレイヤーのキー操作は
必要になったときにだけ関数で取得してた。
だから、すべてのオブジェクトを1フレームに1回更新するって時にも
オブジェクトにとって必要になったときだけキー入力を取得して更新してた。

SDLのリファレンスのイベントの例だと、
『キー入力イベントが発生してたら、それが「→」キーかどうか判断して右に数ピクセル移動する』
みたいな感じだったけど、これは上記みたいに「すべてのオブジェクトを1フレームに1回更新したい」
時にはすごく相性が悪そう。(1ループ中にいろんな種類のイベントが複数回発生するから)
2013/07/26(金) NY:AN:NY.AN
>>545
SDL_JoystickGetButton とか SDL_GetKeyState (2.0からはSDL_GetKeyboardState) とかそのへんは?
自分の処理の仕方に合わせて好きな方使えばいいんじゃね
547デフォルトの名無しさん
垢版 |
2014/02/23(日) 09:02:38.60
何これ
548デフォルトの名無しさん
垢版 |
2014/02/27(木) 08:47:31.12
DirectXのパクり
2014/02/27(木) 09:59:42.74
マルチプラットフォーム最優先でなかったらいらない
2014/02/27(木) 20:47:56.54
今だったらcocos2d-xだろ
2014/02/28(金) 14:03:16.04
枯れてるSDL使う方が良い
552デフォルトの名無しさん
垢版 |
2014/03/01(土) 07:57:38.26
DirectXも9なら枯れてるだろ。
2014/03/01(土) 13:41:15.45
OpenGL>SDL>DirectX
2014/03/01(土) 14:51:36.21
ていうか3DでSDLなんか使うの?
2014/03/01(土) 15:22:56.21
サウンドだけSDLみたいな使われ方なら
2014/03/01(土) 17:06:47.95
SDLのSurfaceにOpenGLを描画してるんでねーの?
勉強に、使うか使わないか分からないDirectXみたいな複雑なものなんて触りたくない
2014/03/02(日) 14:50:04.43
SDL2のサンプルって大体SDL_Texture使ってるけどSDL_Surfaceのほうが使いやすいな
558デフォルトの名無しさん
垢版 |
2014/03/02(日) 17:53:08.67
だな
2014/03/03(月) 01:38:31.03
子供の頃にゲームを作りたいって思っても、年取るとゲームを作ろうって気力が無くなるな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況