SDL=Simple DirectMedia Layerでゲームだ
■ このスレッドは過去ログ倉庫に格納されています
>>216
glOrthoで座標系をウィンドウに合わせてやればテクスチャはぼけないはず。 >>217さん
ありがとうございます。
ぼやけずにかくことができました。
なんかC言語プログラムって感じがして結構気に入ってる
C++でやってるけど 他のライブラリから乗り換えようと思うのですがソースが公開されたゲームはないでしょうか
縦シューを探していますが小規模なアクションならなんでもいいです >>220
http://www.asahi-net.or.jp/~cs8k-cyu/windows/rr.html
とかどう? >>221
期待していたものより立派なゲームだったので気負っていますがソースは見やすかったです。
OpenGLも使ってるようで読み甲斐があります。
ありがとうございます。 >>233
bug fixがメイン。
Changes since 1.2.8:
* Numerous improvements to the Atari port (thanks Patrice!)
* SIGTERM and SIGINT handlers are reset when SDL shuts down
* Added support for Visual C++ 2005 (Express Beta 2) to VisualC.zip
* Fixed crash trying to allocate hardware surfaces on MacOS X (thanks Ryan!)
* Fixed SDL.DLL so it works on Windows 95 again
* Dropping a document onto an SDL app passes it as a command line parameter in MacOS X (thanks Ryan!)
* Fixed short read problem with SDL_RWFromMem() (thanks Antonio!)
* Added support for SDL_VIDEO_X11_NODIRECTCOLOR on OpenGL visuals
* Altivec optimized blitters (thanks Bob!)
* YUV mmx code should work with gcc 2.x and 3.x (thanks Stephane!)
* Fixed hang on shutdown using framebuffer console on ia64 (thanks Jesse!)
* Improved RISC OS support (thanks Peter and Alan!)
* Added support for direct color 8-bpp surfaces
* Fixed gcc parse errors in SDL_audio.h on Windows
* Fixed potential crash in multi-threaded timers
* Added support for Tru64 UNIX 4.X (thanks Hayashi!)
* SDL_OPENGLBLIT has been renamed SDL_OPENGLBLIT_OBSOLETE いや、むしろへっぽこ自作ライブラリなんかと比べるとSDLはバグは少ないよ
つーか、英語ちゃんと嫁 SDL+OpenGLってDirectX+OpenGLだと最近知ったよ
よく動いてるよな 質問です。
SDLでジョイスティックを振動させることはできるのでしょうか?
関数リファレンスには見つからなかったので・・。
winならDirectInputのForce Feedback API、とかで出来そう。 ごめんなさい、linuxです。
linuxですが、Winでも動くようにも作りたいので、共通のライブラリだとありがたいです。 Win用の64bitバイナリバージョンは出ないのかな?
SDLを64bitで無理やりコンパイルしようとすると、インラインアセンブラが廃止されてるんで、エラーでちまう・・・。 s-jisをUNICODEに変換する関数はありますか? VC++.netを使用していますが、質問があります。
SDL_Init などのSDLの関数が、入力候補のウィンドウの中に表示されませんし、
パラメータヒントも出てきません。
こういうものなんでしょうか?
これが初めてのライブラリなので、設定の間違いでもあるのかと気になっています。
よろしくお願いします。 VC++のインテリセンスはそんなもの。
正常にリンク・実行されるならそれでよし。 >>238
なんか出てくる関数もあったりしてよくわかりませんが、このまま勉強していきます。
ありがとうございました。 未踏でSDL-pangoとか作ってるみたいだけど、SDL_ttfとどっちがマシかなぁ?
SDL_ttfっていいうわさ聞かないんだよね・・・ 1.2.9がVCExpress製品版で動くことを確認しますた ながれぶったぎってすみません。
SDLってCでもつかうことはできますか?
それとつかう場合、なんというファイルをインクルードすれば良いのでしょうか?
お教えいただけますと幸甚です。 >>247
>仕様記述言語SDL コンピュータ通信シリーズ 5
どうみても違います
本当にありがとうございました。 >>252
かなり活発なので驚きました
ありがとうございます ライセンスはLGPLだということですが、このライブラリを利用して作ったゲームはソース公開の義務はあるのでしょうか? 無い。改変した SDL でリンク出来るようにしておかないとダメ。 SDL_GL_SetAttributeで色のサイズを5ビットに設定したとき、
ピクセルあたり8ビットのBMPを読み込んでいるとき、
glTexImage2Dでは自動的に5ビットに直されるのでしょうか、
それとも、描画時に勝手に直されるのでしょうか?
もしくは8ビットを自分で5ビットになおさないといけませんか? >>254
LGPLだと作者が翻ってGPL宣言したとたんさかのぼって適用されないのかと心配
>>255
objを同梱するのも嫌なんだけど、SDLは全部DLLなんすか? >>258
> LGPLだと作者が翻ってGPL宣言したとたんさかのぼって適用されないのかと心配
将来のバージョンでGPLになった場合でも、既にLGPLな時にリンクされたバージョンに遡って適用されることはない。
例えば、LGPLの1.2.9を入手して使用してたとして、
作者が1.2.10とかでGPLにライセンス変更するようなことがあったとしても、
1.2.9をLGPLライセンスの元で使用し続けることは可能。
> objを同梱するのも嫌なんだけど、SDLは全部DLLなんすか?
SDL本体はDLL(つか、公式のバイナリを見ればすぐ分かることだと思うが…)。
その他にwindowsなんかの場合SDLmainというのが存在し、これは通常スタティックリンクされるが、
このファイルだけはPublic Domainなのでスタティックリンクしてもソース公開の義務は無い。 LGPLのライブラリって多いから、毛嫌いもしてられないって感じだね。
FSFとしては、LGPLを将来的に無くしてしまうつもりとかあるのかな。非推奨とか言ってるけど。
続いて欲しいな・・・。 >>260
FSFのLGPLは強すぎるGPLに対して好意で設けているわけではない。
きわめて戦略的。GPLが嫌われてるのは連中も認識しているから、
それだと普及の妨げになると判断した時LGPLにする模様。
>>258
>既にLGPLな時にリンクされたバージョンに遡って適用されることはない。
信用できない。 >>261
信用出来ないって、書かれている事が全てだよ。
戦略的だからこそ、信用出来ると思うけどね。Lesser という名前を付けてまで LGPL を
設けなきゃいけない理由は皆知ってるし。無くなれば非難囂々でしょう。
あんまり的外れな議論をしてると GPL 信者が寄って来るよ。
「信用出来ないなら使わなきゃいーじゃん」って。 >>255
>改変した SDL でリンク出来るようにしておかないとダメ。
これはSDLがどのような形になるか不明であるため
ソースコードを提供しなければ履行できないのではないか
たとえば関数の引数が変わればリンクはできないなど
SDL側の改変の幅がわからなければ対応しようもない 互換性失うような改変にまで対応する責任はないよ。
互換性保ったまま改変した SDL に対して、正常にリンク・動作できればいい。
# …っていうか、疑問があったら読もうよ、ライセンス。
# これもちゃんと書いてあったし。 2月17日最終書き込みでDAT落ちしてるっぽい
980超えたからだな
1000いってないから2chミラーサイトに拾われないので
ログは持ってたほうがいいよ やっぱ落ちてたのか。
誰かあっちにパート2立ててくれないかな・・・。
俺の環境じゃなんか新スレ立てに失敗してしまう・・・。 それなりに情報があるから会話が必要ないのかな
これだけ整備されてるとアイデア勝負だから時々絶望する ゲームはアイデアよりバランスと構成勝負
Aba氏とか見て絶望する必要はない。彼は所詮アマチュア。 アイデア+バランス勝負だろ。
プロとアマの差は組織力だけだと思うな。 SDL_ToggleFullScreenって何で役に立たないんだろう FAQにはこう書かれています。
----------------------------------------------------------------------------
Q: Why doesn't SDL_WM_ToggleFullScreen() work on Windows?
A: The semantics of SDL_WM_ToggleFullScreen() are that switching between fullscreen
and windowed mode is transprent to the application.
The display pixels pointer does not change, the display depth does not change, etc.
This cannot be guaranteed on Windows. However,
there is a simple method you can use to change between fullscreen and windowed mode:
flags ^= SDL_FULLSCREEN;
screen = SDL_SetVideoMode(..., flags);
----------------------------------------------------------------------------
Ruby/SDL で mixer の初期化に失敗するのですが、同じ症状で解決された人いましたらご教示よろしくお願いします。
ディストリは CentOS 4.3
$ uname -srvmpio
Linux 2.6.9-34.0.2.EL #1 Fri Jul 7 19:24:57 CDT 2006 i686 i686 i386 GNU/Linux
$ruby -v
ruby 1.8.4 (2005-12-24) [i686-linux]
SDL_mixer-1.2.7 はソースからコンパイルしてインストールしました。
導入しようとしたのは Ruby/SDL 1.1.0 で、
sampleディレクトリ下の playwav.rb を実行すると
/usr/local/lib/ruby/site_ruby/1.8/sdl.rb:220:in `open_imp': Couldn't open audio: Couldn't create mixer lock (SDL::Error)
from /usr/local/lib/ruby/site_ruby/1.8/sdl.rb:220:in `open'
from playwave.rb:7
というエラーが出ます。
SDL_OpenAudio で止まってるようで、簡単なテストコードをCで書いても同じメッセージ(Couldn't create mixer lock)が出ます。 遅レスな上に当てずっぽうだがSDL_mixerが新しすぎるとみた。
もう解決してたらスルーしてくれ。 たった今解決しました。(汗
公式サイトの
ttp://www.libsdl.org/release/SDL-1.2.11-1.i386.rpm
をインストールしなおしたあとで動くようになりました。
ただ、SDL_mixerのconfigure時にsdl-configのパスが間違っていたっぽかったので
そっちだったのかもしれません(それでもconfigureは通るんですよね)。
x) /usr/local/bin/sdl-config
o) /usr/bin/sdl-config
結局具体的に何がどうだったのかいまいち不明です。
なんだか参考にならなそうですみません。
>>279さんの書き込み見る前にニアミスで解決しちゃったんで、ありがとうございます、ではないですけど・・・おさわがせしました〜。
いちおう書いておくと、SDL_mixerのmixer.cの SDL_OpenAudio のとこ(300行付近)↓
で止まってました。
/* Accept nearly any audio format */
if ( SDL_OpenAudio(&desired, &mixer) < 0 ) {
return(-1);
}
日本で、これを使ってゲームを販売している会社はあるの? どっかの企業が作ったライブラリが原型じゃないっけ?
ってことはその原型のライブラリは
その企業では一応使われてたんでないかと ものすごく恥ずかしい質問かもしれないけど・・・
ウィンドウタイトルに日本語は使えないの? >>291
少なくともWindowsでは使えない。
文字列をutf-8に変更した時からみたいだね。
バグ報告は出ているけど、いつ直ることやら。
って思ったら、とりあえずパッチが上がってた。
古いバージョンを使うか、バグ報告どおりに自分で直すと良いかと。
ttp://bugzilla.libsdl.org/show_bug.cgi?id=365 便乗して恥ずかしい質問してみるけど、Alt+F4ってどう実装してる?
メインループのPollEventで、下のようにやってもAltを認識してくれないぽ
環境はwin2k、DevC++(gcc+mingw)、SDL1.2.11
bool PollEvent(){
SDL_Event ev;
while(SDL_PollEvent(&ev)){
switch(ev.type){
case SDL_QUIT:
return false;
break;
case SDL_KEYDOWN:
if((ev.key.keysym.sym == SDLK_F4) && (ev.key.keysym.mod == KMOD_ALT)) return false;
break;
}
}
return true;
} ev.key.keysym.mod & KMOD_ALT 泣いた
サンクスコ
それだとうまくいきました
ビットごとに違うフラグあるんだから全体を==で比較しちゃ駄目ですね SDL_ttfのこの辺って戻り値が参照渡しだけど、もしかしてこの関数内でサーフェス用に確保されたメモリってほったらかしだと解放されないで、新しく確保した領域にポインタが更新されるだけ?
ループの中でテキスト生成させてたら、秒速1MBでメモリ増えてくんだけど(;'A`)
>SDL_Surface *TTF_RenderUTF8_Solid(TTF_Font *font, const char *text, SDL_Color fg) >>297
SDL_ttfの戻り値は自分で開放するもんだ.
ってかループ中に使うものじゃない. さてこれからC++とSDLで勉強しようと思う俺様が通りますよ
SDL1.2.12になってからVisualC++ 2005 EE SP1でコンパイルしても実行出来なくなったんですが
原因が分かる方居ますか? 1.2.12いれたら -ansiオプションで警告出たのでなんだろと思ったら
SDL/begin_code.hの93,94行目のコメントがC++形式だった
>>303
ほんとだw
svn見てみたらそっちは直ってたよ >>306
さよなら。いってらっしゃい。
↓続きをドゾ SDL使ってゲームを作り始めました。ここで質問なんですが、
SDL_GetKeyState()はゲームのメインループ1回に1度呼び出すのと、
SDL_PollEvent()でSDL_KeyboardEventを拾った時に呼ぶのとどっちがいいんでしょう?
前者では常にそのタイミングでスキャンでき、
後者ではOSがイベントを中継する分だけ(処理落ちが激しいときなどでは)反応が遅れる可能性があるが
キーボードに触れられなければSDL_GetKeyState()が呼ばれないためその分軽い(1msも掛からないと思うけど・・・
ということじゃないかと考えているのですけど、一般的にはどちらが使われる、とかありますか?
あと、SDL_PollEvent()でイベントが何もきていないときにゲームメインループを進めているのですが、
ウィンドウのタイトルバーを右クリックしてポップアップメニューが表示されている間や、
タイトルバーをドラッグしてウィンドウが動いている間などはゲームメインループが進みません。
こういった状態でもゲームメインループをまわすにはどうしたらいいですか?
(Windowsでの話です。) >>308
普通は毎フレーム呼ぶんじゃないかな?
ソース読めばわかるけど SDL_GetKeyState() は実はポインタを返すだけの処理だから
どっちでも大差ないだろうけど.最適化を考えるなら1フレームあたり1回しか
呼ばれない低負荷の関数コールを削ることを考えるよりもどこがボトルネックに
なっているか調べてほかに重い場所を探したらいいと思うよ?
# 実は最初に一回呼んでポインタを保存しておいてループ内ではそれを参照するとかでも
# 動く気がするけどその動作が保証されてるわけじゃないから…まぁ適当にやってくれ >>309
ありがとうございました。ポインタを返すだけだったのか! SDL 1.3の新機能についてRyanさんが書いてる。
ttp://icculus.org/cgi-bin/finger/finger.pl?user=icculus&date=2007-10-07§ion=sdl13
ついにマルチウィンドウが来ますな。
過去互換性も整理する方向みたいね。
いつ頃投入予定なのかな?SDL1.3 マルチウィンドウ出来たら Gtk+ の代わりに使えるかな それはパーツの種類が少ないからムリだと思う。
SDLの上にウィジェット・ツールキットを構築するのはありだと思うけど。
RubyでSDLを弄り始めたんですが、これはスタンドアロン専用ですか?
CGIでは使えない? ■ このスレッドは過去ログ倉庫に格納されています