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
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
子供の頃にゲームを作りたいって思っても、年取るとゲームを作ろうって気力が無くなるな
2014/03/03(月) 09:51:29.46
小さいものでも作ってみて、「ああ、楽しいな」って思えればいいんだけどな。
自己効力感というか。
まあ、気力のでない理由なんて人それぞれだとは思うけど、
こういうスレ覗いてるなら誰しも作りたい気持ちはあるはずだし、
やる気のでないことも誰しもあると思うんで、負けないでほしいよね。
スレチの上に長文だね。すまんね。
2014/03/03(月) 22:08:37.70
努力によって獲られるものが、あまりにも小さく需要がない
562デフォルトの名無しさん
垢版 |
2014/03/05(水) 20:33:33.37
>>559
ゲームって子供しかしないからだと思う

ゲームってプレイするために作られるけど
自分が大人になってから作っても、友達とかもみんな大人になってるからゲームなんてしてくれないじゃん

情熱云々以前にそうした環境が要因だと思われ
2014/03/06(木) 03:08:38.37
俺は連日麻雀だけど、
2014/03/07(金) 12:14:35.95
>>562
ネットのお友達がしてくれるよ(涙声)
2014/03/07(金) 12:33:43.47
自分の子供と遊べばいいんだよ・・・・・・(遠い目)
566デフォルトの名無しさん
垢版 |
2014/03/07(金) 20:47:39.13
ネット上に友達なんてできないだろ
567デフォルトの名無しさん
垢版 |
2014/03/09(日) 09:52:04.72
ネットのお友達って誰?
2014/08/03(日) 22:43:16.59ID:H3a6nHDk
Androidゲームを意識するならSDLで作っておいた方が潰しが利きますか?
2014/08/04(月) 00:24:21.64ID:nItsesnB
いいや
2014/08/04(月) 01:23:54.81ID:380FSYFH
(´・_・`)違うのかぁ
2014/08/10(日) 17:00:28.99ID:5u19o+oK
SDLは死滅しちゃうの?
572 【9.4m】
垢版 |
2014/08/13(水) 11:01:16.20ID:SU5UHha0
細々と生き残るんじゃないの。
今までと変わりなく。
2014/12/20(土) 18:14:40.98ID:uYm+2x+q
マウスホイールの情報ってmouse.hでは扱えないんですか?
2014/12/20(土) 19:35:37.86ID:14vyMO7P
SDL_mouse.hのことなら扱えるよ
2014/12/20(土) 19:50:08.22ID:uYm+2x+q
>>574
どうやって扱うんですか?
2014/12/20(土) 20:05:09.28ID:CCCAmGOw
SDL_GetMouseState(&x, &y) & SDL_BUTTON(SDL_BUTTON_WHEELUP)みたいな

でも普通にマウスイベントじゃだめなの?
2014/12/20(土) 20:10:09.81ID:uYm+2x+q
>>576
http://hg.libsdl.org/SDL/file/default/include/SDL_mouse.h
SDL_BUTTON_WHEELUPがなくなってますよ。

マウスだけならSDL_mouse.hの方が楽だと思ったんですけど、ホイールが扱えないならやっぱりEventでやるべきですね。
2014/12/20(土) 21:09:32.34ID:wsWfuPS+
それにGetMouseStateだとホイールは拾い損ねるので
2014/12/30(火) 19:14:51.28ID:RaKONNYE
現在画面に表示されてるのが透けて見えるように、半透明で塗りつぶしたいんですけど、
SDL_RenderClearやSDL_RenderFillRectでやると半透明になりませんでした。
どうやればいいんでしょうか?
2014/12/30(火) 21:08:56.16ID:4iRc2U/V
そりゃ半透明にならないのは当たり前じゃないか。
何が不思議なの?
2014/12/30(火) 21:25:36.95ID:RaKONNYE
>>580
不思議って言うか、色の設定にアルファチャンネルがあるからできるからできるかなと思ってやってみたんですけど、できなくて、
じゃあ、どういう方法でやればいいのか、という質問です。
582579
垢版 |
2014/12/31(水) 15:47:21.32ID:9chxyy/K
自己解決。
SDL_SetRenderDrawBlendModeでSDL_BLENDMODE_BLENDを設定したらできました。
2015/01/23(金) 07:04:41.06ID:Kw3Co+SP
【質問】
今までプログラミングしていたPCの中でSDLを使って作成した実行ファイル(○○○.exe)だけをUSBにコピーして別のパソコンに移して実行しようとしたら
『コンピューターにSDL.dllがないため、プログラムを開始できません。
この問題を解決するには、プログラムを再インストールしてみてください』
とエラー警告が出てしまいました

これってSDL.dllってファイルだけを探して実行ファイルと同じフォルダに入れればいいのでしょうか

それともSDLそのものを一からインストールし直さないといけないんでしょうか

インストールして環境設定したのがかなり前なのでやり方を忘れてますし
出来れば各端末にインストールする手間を掛けず
実行ファイルと少ないファイルをUSBから移すだけで実行できるようにしたいです
2015/01/23(金) 07:46:16.42ID:pqXFeAtu
SDLというかDLLの基本的な知識だが
dllはexeから動的にリンクするライブラリファイルなんでexeから見えるとこにdllがあればいい
なんでexeと同じフォルダかパスの通ったフォルダとかWindowsフォルダに配置されてれば起動出来る

多分参考にしたサイトがdllの配置までやってたんだろうが
そのエラーメッセージのインストールはアプリケーションのインストールで
開発するためにライブラリをインストールする事とは無関係なんで>>583の言うインストールをやっても無意味だと思う
2015/01/26(月) 02:51:42.03ID:ltDG8o77
すいません、実際にSDL.dllをコピーして試したのですが今度はまた別の「○○.dllがありません」とエラーが出てしまいました
そこで元のパソコンから検索かけて「○○.dll」の拡張子で終わるアプリケーションファイルを隈無く探して複製移動したのですが 
最終的に
『MSVCR100.dllはWindows上で実行できないかエラーを含んでいます。元のインストールメディアをしようして再インストールするか、システムの管理者またはソフトウェアの製造元に問い合わせてください』と別のエラーが出て、そこで袋小路に入ってます
2015/01/26(月) 08:27:57.03ID:Ts/Sr/RD
DLL 手動コピーじゃだめ
VCxx redistribution package を xx の各バージョン全部入れろ
2015/01/26(月) 09:46:56.05ID:4npxFuVq
それは、コピー元のパソコンの中に入ってる分をコピペしろということでしょうか?

コピー先のパソコンはネットと接続してないのでUSBで移すしか不足分を補えないのですが
2015/01/26(月) 09:48:30.98ID:4npxFuVq
あと、VCxxっていうのはVC++2010のことでしょうか
それもコピー先に入れてないので移した方がいいですか?
589デフォルトの名無しさん
垢版 |
2015/01/26(月) 09:56:44.28ID:Ts/Sr/RD
>それは、コピー元のパソコンの中に入ってる分をコピペしろということでしょうか?

コピペはだめ
redistribution package はインストールが必要

>コピー先のパソコンはネットと接続してないのでUSBで移すしか不足分を補えないのですが

数回に分けるか USB 数個に分ければ済むだろ

>あと、VCxxっていうのはVC++2010のことでしょうか

名前から想像するとたぶんそうだろうけど
必要に応じて他のバージョンも入れないといけないかもしれない

>それもコピー先に入れてないので移した方がいいですか?

移すっていうのが DLL だけにしたいって意味ならダメ
2015/02/05(木) 11:21:22.44ID:nFTmyO5z
最近のexeはダウソしただけで動かないとかなぁー
それってdot netやjavaと代わらんじゃねーかよ な?
2015/02/05(木) 19:09:43.48ID:kpi//JnW
Steamで早期リリースのゲーム Darkest Dungeon が SDL2 製だった。
PS4, Vita での発売も予定しているということで、移植性の高さを生かしているもよう。
ただ、文字の表示はビットマップから切り出す方式なので、
文字種の多い日本語化は難しいと思われる。

SDL本体だけで簡単にフォントのレンダリングができれば、
英語圏の製作者も、日本語化しやすい作り方をしてくれそうなんだがなぁ。
2015/02/06(金) 01:56:22.03ID:qRStvygm
ですね(´・ω・`)
2015/02/07(土) 18:53:13.49ID:Hof4fFat
>>590
最近っつっても10年くらい前からだな
2015/02/07(土) 19:37:57.87ID:TiU3gCM4
変なライブラリ使わなきゃインストーラ作って終わりじゃないの
2015/02/21(土) 19:03:33.87ID:ialkn/Yz
最近、某動画サイトてhappy wheelsっていうシュールなゲーム実況(ホラフキンとかアブとか)がツボにはまってるんだけど

あれもSDL?
2015/03/14(土) 19:06:14.57ID:7zbPwJgB
よく分からんがflashゲーじゃないの?
2015/03/14(土) 22:41:41.97ID:zYFiBXHt
このライブラリとC言語使ってスマホのアプリとかゲームとか作れる?

やっぱJAVAとか他のライブラリがないとダメ?
2015/04/16(木) 19:00:48.95ID:2Mzy6yNa
>>597
SDL2.0でAndroid/iOSのアプリとかゲームを作れるよ(iOSは試したことない)。
Androidの場合、NativeActivityではなく、SDLが用意したSDLActivity.java
からJNI経由でmain関数を実行する流れ。
Suspend/ResumeやらAndroid固有な処理のコードとかが若干必要だけど、
基本的にPC環境で使ってるコードをそのまま利用できる。

>>591
SDL_ttf使ってるんだけど、文字の見た目で悩み中。
Bitmapフォントにしたいけど、どこまで感じサポートするかとか面倒なのよねぇ。
2015/04/16(木) 19:15:26.86ID:2Mzy6yNa
>>556
SDL_TextureでOpenGLとかDirectXを隠蔽してる。
SDL2.0の場合、SDL_SurfaceはSDL_Textureを作る為の一時バッファ。

>>557
激しく同意。そもそもSDL_Textureにピクセルを書き換えるAPIが
存在しないのがおかしい。
2015/04/16(木) 19:19:54.73ID:2Mzy6yNa
>>545
mainループで入力待ち+レンダリングスレッドを使うしかないくさい。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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