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/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ループで入力待ち+レンダリングスレッドを使うしかないくさい。
2015/05/08(金) 23:57:28.35ID:V8hi9yRP
ffmpegのffplayのソースをいじって自分用のビュアーを作ってるんですが、
SDL1.xのSDL_CreateWindowでウインドウを作成するときに、
ウインドウの左上の座標を指定する方法はないですか?
2015/05/09(土) 07:01:19.40ID:WDrUd2Zm
>>601
SDL全然知らなくて恐縮だけど、
http://sdl2referencejp.sourceforge.jp/SDL_CreateWindow.html
によると
SDL_Window* SDL_CreateWindow(const char* title, int x, int y, int w, int h, Uint32 flags);
の x, y に指定するんじゃないの? 違うのかな
2015/05/11(月) 11:36:39.94ID:6zko7qkF
SDL1.2系なら
SDL_putenv("SDL_VIDEO_WINDOW_POS=0,0");
2015/05/16(土) 20:17:56.69ID:k71C3722
>>603
1.2系は外部変数経由なんだな・・・。
2016/03/21(月) 18:25:32.39ID:axz6ixdY
描画をOpenGL、その他をSDLに任せれば強いクロスプラットフォームなゲーム開発ができるのですか?
606605
垢版 |
2016/03/22(火) 00:20:42.36ID:vWJRjU9w
あ、なんでもないです
607デフォルトの名無しさん
垢版 |
2016/03/29(火) 09:12:47.25ID:/c8bAcK4
サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート
2016/04/20(水) 20:59:49.10ID:gfBfEx2n
公式いってSDL2.0っての落としてビルドしたけど
もしかしてSDL_imageやDL_mixerって別々にビルドしないといけないのか?
609デフォルトの名無しさん
垢版 |
2016/05/29(日) 15:40:25.01ID:9WWbP5OA
test
2016/05/30(月) 10:18:34.37ID:cLUfCSU4
>>608
それぞれバイナリ配布されてるからしなくても使えるはず
611デフォルトの名無しさん
垢版 |
2016/06/07(火) 00:55:43.39ID:eV/CnpgJ
マウス2個つなげて
それぞれの状態を取りたいのじゃが
SDLでは無理かの?
2016/08/22(月) 03:41:57.10ID:05WI3n4h
メインループの中でSDL_PollEventを呼び出さないと、実行時にプログラムが「応答なし」になるんですけど、
どうしてなんでしょう?
2016/08/22(月) 10:38:18.65ID:B6F+6OOe
応答してないから
2016/08/22(月) 15:24:26.96ID:05WI3n4h
>>613
なんで応答しなくなるんです?
2016/08/22(月) 19:18:13.90ID:01M+MFvA
SDL_PollEvent じゃなくて PeekMessage とかでもいいってことかな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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