X



SDL=Simple DirectMedia Layerでゲームだ
■ このスレッドは過去ログ倉庫に格納されています
0280デフォルトの名無しさん
垢版 |
2006/08/29(火) 00:31:28
たった今解決しました。(汗
公式サイトの
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);
}

0281デフォルトの名無しさん
垢版 |
2006/11/27(月) 20:16:43
保守あげ
0284デフォルトの名無しさん
垢版 |
2006/12/03(日) 03:02:36
日本で、これを使ってゲームを販売している会社はあるの?
0287デフォルトの名無しさん
垢版 |
2006/12/03(日) 04:46:11
どっかの企業が作ったライブラリが原型じゃないっけ?
ってことはその原型のライブラリは
その企業では一応使われてたんでないかと
0288デフォルトの名無しさん
垢版 |
2006/12/03(日) 04:48:40
XNAでおk
0289デフォルトの名無しさん
垢版 |
2007/01/19(金) 08:28:09
サーバーやたら重くね?
0291デフォルトの名無しさん
垢版 |
2007/02/11(日) 14:01:50
ものすごく恥ずかしい質問かもしれないけど・・・
ウィンドウタイトルに日本語は使えないの?
0293デフォルトの名無しさん
垢版 |
2007/02/15(木) 03:02:50
>>291
少なくともWindowsでは使えない。
文字列をutf-8に変更した時からみたいだね。

バグ報告は出ているけど、いつ直ることやら。
って思ったら、とりあえずパッチが上がってた。

古いバージョンを使うか、バグ報告どおりに自分で直すと良いかと。

ttp://bugzilla.libsdl.org/show_bug.cgi?id=365
0294デフォルトの名無しさん
垢版 |
2007/04/23(月) 07:32:03
便乗して恥ずかしい質問してみるけど、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;
}
0296デフォルトの名無しさん
垢版 |
2007/04/23(月) 22:32:25
泣いた

サンクスコ
それだとうまくいきました
ビットごとに違うフラグあるんだから全体を==で比較しちゃ駄目ですね
0297デフォルトの名無しさん
垢版 |
2007/05/09(水) 15:20:17
SDL_ttfのこの辺って戻り値が参照渡しだけど、もしかしてこの関数内でサーフェス用に確保されたメモリってほったらかしだと解放されないで、新しく確保した領域にポインタが更新されるだけ?
ループの中でテキスト生成させてたら、秒速1MBでメモリ増えてくんだけど(;'A`)
>SDL_Surface *TTF_RenderUTF8_Solid(TTF_Font *font, const char *text, SDL_Color fg)
0299デフォルトの名無しさん
垢版 |
2007/06/17(日) 15:03:37
あげ
0300デフォルトの名無しさん
垢版 |
2007/06/20(水) 14:35:46
さてこれからC++とSDLで勉強しようと思う俺様が通りますよ

0301デフォルトの名無しさん
垢版 |
2007/06/20(水) 21:19:00
>300
とりあえず初心者の〜に行ってこい
0302デフォルトの名無しさん
垢版 |
2007/08/13(月) 17:37:28
SDL1.2.12になってからVisualC++ 2005 EE SP1でコンパイルしても実行出来なくなったんですが
原因が分かる方居ますか?
0303デフォルトの名無しさん
垢版 |
2007/08/19(日) 20:16:49
1.2.12いれたら -ansiオプションで警告出たのでなんだろと思ったら
SDL/begin_code.hの93,94行目のコメントがC++形式だった
0308デフォルトの名無しさん
垢版 |
2007/09/27(木) 23:59:43
SDL使ってゲームを作り始めました。ここで質問なんですが、
SDL_GetKeyState()はゲームのメインループ1回に1度呼び出すのと、
SDL_PollEvent()でSDL_KeyboardEventを拾った時に呼ぶのとどっちがいいんでしょう?
前者では常にそのタイミングでスキャンでき、
後者ではOSがイベントを中継する分だけ(処理落ちが激しいときなどでは)反応が遅れる可能性があるが
キーボードに触れられなければSDL_GetKeyState()が呼ばれないためその分軽い(1msも掛からないと思うけど・・・
ということじゃないかと考えているのですけど、一般的にはどちらが使われる、とかありますか?

あと、SDL_PollEvent()でイベントが何もきていないときにゲームメインループを進めているのですが、
ウィンドウのタイトルバーを右クリックしてポップアップメニューが表示されている間や、
タイトルバーをドラッグしてウィンドウが動いている間などはゲームメインループが進みません。
こういった状態でもゲームメインループをまわすにはどうしたらいいですか?
(Windowsでの話です。)
0309デフォルトの名無しさん
垢版 |
2007/09/28(金) 03:28:33
>>308
普通は毎フレーム呼ぶんじゃないかな?
ソース読めばわかるけど SDL_GetKeyState() は実はポインタを返すだけの処理だから
どっちでも大差ないだろうけど.最適化を考えるなら1フレームあたり1回しか
呼ばれない低負荷の関数コールを削ることを考えるよりもどこがボトルネックに
なっているか調べてほかに重い場所を探したらいいと思うよ?

# 実は最初に一回呼んでポインタを保存しておいてループ内ではそれを参照するとかでも
# 動く気がするけどその動作が保証されてるわけじゃないから…まぁ適当にやってくれ
0310308
垢版 |
2007/09/28(金) 22:57:22
>>309
ありがとうございました。ポインタを返すだけだったのか!
0311デフォルトの名無しさん
垢版 |
2007/10/08(月) 10:02:45
SDL 1.3の新機能についてRyanさんが書いてる。
ttp://icculus.org/cgi-bin/finger/finger.pl?user=icculus&date=2007-10-07§ion=sdl13
0312デフォルトの名無しさん
垢版 |
2007/10/08(月) 12:51:23
ついにマルチウィンドウが来ますな。
過去互換性も整理する方向みたいね。
いつ頃投入予定なのかな?SDL1.3
0314デフォルトの名無しさん
垢版 |
2007/10/08(月) 13:27:31
それはパーツの種類が少ないからムリだと思う。
SDLの上にウィジェット・ツールキットを構築するのはありだと思うけど。
0317デフォルトの名無しさん
垢版 |
2007/10/12(金) 03:38:31
>>316
CGIと言うか、RubyとかWEBアプリ用と聞いたので、
当然ライブラリとかもWEB上で使えると思ったんだけど・・・
0318デフォルトの名無しさん
垢版 |
2007/10/12(金) 03:51:17
RubyがWEBアプリ用とかいう認識が根本的に間違ってることを理解してくれ
# まぁ向いてる分野ではあるけど
0319デフォルトの名無しさん
垢版 |
2007/10/12(金) 13:09:09
> RubyとかWEBアプリ用と聞いたので、
違うよ。全然違うよ。

> 当然ライブラリとかもWEB上で使えると思ったんだけど・・・
なんで?WEB上ってどこで?
普通、クライアントサイドで動かす、SDLを
サーバーで動かす利点は何だろう?

0321デフォルトの名無しさん
垢版 |
2007/10/12(金) 18:23:09
SDLと関係ない話になりそうな流れだな……。
別にもうこれ以上掘り下げなくてよくね?
0322デフォルトの名無しさん
垢版 |
2007/10/13(土) 05:23:23
Ruby/SDLで書いたゲームスクリプトを投稿すると
サーバの向こう側に常時待機しているおっさんがそれを遊んで
スコアを返すWebアプリを思いついた

アイデアの権利は放棄するからお前ら自由に実装していいぞ
0325デフォルトの名無しさん
垢版 |
2007/10/19(金) 22:34:05
複数のテキストをOpenGLの画面に渡すためにSDL_ttfを使っているのですが、

TTF_RenderUTF8_Solidして作ったいくつかのSDL_Surfaceを、
SDL_BlitSurfaceで、既にOpenGLのフォーマットにしてある大きなサーフィスにコピーして集めて画面をつくり、
その大きなサーフィスをglTexSubImage2DでOpenGLテクスチャとして更新して表示

という方法で、やりたいことはできたのですが、
テキスト1行1行を別々のテクスチャとして扱いたかったのに加えて、
ここの処理だけSDL側でコピーするのも気持ち悪いな、と思い、

TTF_RenderUTF8_Solidして作ったSDL_Surfaceを
SDL_ConvertSurfaceを用いてOpenGLのフォーマットに変換して、
glTexSubImage2DでOpenGLのテクスチャを部分更新して転送する

という方法に変えたところ、テキストのテクスチャの背景部分が透過されなくなってしまいました。
OpenGLテクスチャ上では、文字部分はα値1でカラー値さまざま かつ 文字の無い部分はα値0で完全に透明
にしたいのですが、どうしたらいいのですか?

もともとの方法では、SDL_BlitSurfaceの時に、TTF_RenderUTF8_Solidの作ったサーフィスの文字の無い部分は
自動的に透過されたのですが、SDL_ConvertSurfaceをする場合は、同じように透過されないのでしょうか?
0327デフォルトの名無しさん
垢版 |
2007/10/20(土) 21:34:26
>>326
ありがとうございました、解決しました。
覗いてみたところ、透過したいところのαが0、表示したいところのαが255、と、
OpenGL側の透過値と全く反対で扱われていました。
gl側の混合処理で、GL_SRC_ALPHAからGL_ONE_MINUS_SRC_ALPHAにしたらうまくいきました。
解決のヒントを与えてくれてありがとうございました。
0328デフォルトの名無しさん
垢版 |
2007/11/24(土) 15:09:08
補助ライブラリを日本語で紹介してるサイトないですか?
0332デフォルトの名無しさん
垢版 |
2007/12/08(土) 06:48:31
325とは逆に作ったサーフェスに全く表示されないのを一晩悩んだ漏れが来ましたよ
FillRectで特定の値書き込んだ所や貼り付けた特定の画像上だけしか重ね貼りした画像表示しなくて、
真っ黒な0でのFillRectと並べてやっと気付いたorz

もう弄りすぎてソースが焼きそば並にぐちゃぐちゃだぜ
0334デフォルトの名無しさん
垢版 |
2007/12/28(金) 00:39:37
cairoとの相性いいみたいですね
フォントとか画像ファイル関係はcairoで代用できそう
0335デフォルトの名無しさん
垢版 |
2008/01/05(土) 01:27:38
板違いだったらすいません。

ちょっと質問なんですが、Ruby/SDLを使用しようと思って、必要なものをインスコして、
プログラムを書き、コンパイルしたら、

ALSA lib confmisc.c:数字
ALSA lib conf.c:数字
ALSA lib pcm.c:数字

こういうものが多数出てきて、実行できませんでした。

環境は、Linuxのubuntu7.10を使っています。
SDLやRuby/SDLは元々入っていたものをパッケージャから入れました。

どうしたら実行できるでしょうか?
0336デフォルトの名無しさん
垢版 |
2008/01/06(日) 00:41:57
こういうものが多数・・・と手書きするんじゃなくて
可能な限りをコピー&ペーストしなさい
数字の後にもエラーメッセージ続いてたろ?
0337デフォルトの名無しさん
垢版 |
2008/01/07(月) 01:23:00
>>335です。
実行できなかったのは、ソースファイルの打ち間違いでした。すいません。
しかし、>>335に書いたエラーが出てから実行されます。

>>336
すいません。VMwarePlayerでLinuxを使っていて、
それではネットにつなげるように設定していなかったので
コピペできませんでした。

ALSA lib confmisc.c:769:(parse_card) cannot find card ''
ALSA lib conf.c:3510:(_snd_config_evaluate) function snd_func_card_driver returned error: No such device
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:3510:(_snd_config_evaluate) function snd_func_concat returned error: No such device
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:3510:(_snd_config_evaluate) function snd_func_refer returned error: No such device
ALSA lib conf.c:3982:(snd_config_expand) Evaluate error: No such device
ALSA lib pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM default

これが出てたエラーです。
0338デフォルトの名無しさん
垢版 |
2008/01/17(木) 00:25:47
マルチプラットフォームなこのライブラリですが
多少の手直し程度の移植可能(なように作れる)プラットフォームは
どれとどれでしょうか?
0339デフォルトの名無しさん
垢版 |
2008/01/17(木) 01:02:45
>>337
サウンドデバイスが見つからないと言っている

>>338
Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX.
0340デフォルトの名無しさん
垢版 |
2008/03/03(月) 05:22:10
SDL_ttfについて質問です
TTF_RenderText_Solid等をして返ったサーフェースは自分でSDL_FreeSurfaceで開放しなくてはいけませんか?
0343デフォルトの名無しさん
垢版 |
2008/03/04(火) 02:12:30
毎フレームフォントをラスタライズするようなアホプログラムなら直ぐに止まりそうだけどね…
0344デフォルトの名無しさん
垢版 |
2008/03/08(土) 18:26:01
>>340
毎フレームフォントをラスタライズかつ開放しないアホプログラムを実行してタスクマネージャのメモリの項を見ましょう

つかやっぱり毎回作っては開放してって重いのかな('A`)
0345デフォルトの名無しさん
垢版 |
2008/03/08(土) 18:40:37
サーフェスに文字を詰め込んでいって
毎フレーム自分でレイアウトして描画するようにしたほうがいい気がする
ちょっと面倒だけど作ってしまえば更新頻度とか気にせず使える
0346デフォルトの名無しさん
垢版 |
2008/03/08(土) 18:45:07
>>344
毎フレームってことなら当然糞重いでしょ。
サイズにもよるが、メモリの確保&解放だけで結構なボトルネックになるとみた。
既存サーフェスに描画してくれる機能ってあったっけ?
0347デフォルトの名無しさん
垢版 |
2008/03/15(土) 21:48:06
sage
0348デフォルトの名無しさん
垢版 |
2008/04/11(金) 00:41:48
あげ
0349デフォルトの名無しさん
垢版 |
2008/06/14(土) 07:06:13
320x224の解像度でフルスクリーンにすると画面が90度回転してしまうんですが、
解像度は変えないか320x240でこれを発生させない解決方法ってないでしょうか?
0351デフォルトの名無しさん
垢版 |
2008/06/15(日) 10:22:11
すっかり忘れました。ごめんなさい。

ハードはThinkPad X60s
Win XP + Mingw GCC + SDLソースインスコ
です。
0354デフォルトの名無しさん
垢版 |
2008/06/26(木) 22:43:48
解像度を640*480にする
0355デフォルトの名無しさん
垢版 |
2008/09/06(土) 21:21:37
保守
0356デフォルトの名無しさん
垢版 |
2008/10/21(火) 21:28:12
保守
0360デフォルトの名無しさん
垢版 |
2008/11/27(木) 02:21:48
人居ないな
0361デフォルトの名無しさん
垢版 |
2008/11/28(金) 12:27:33
*nixでもWinでも動作するクロスプラットフォームなSTGを作り始めて数ヵ月。
お約束の、エンジンだけできて、ゲームができない状態に陥りますた!
0362デフォルトの名無しさん
垢版 |
2008/11/28(金) 16:06:52
エンジンができたのなら次はゲーム作ればいいじゃない
ライブラリばかりに気を取られるお約束が悪いのではなくて
途中で投げ出す方の「お約束」が悪いんでしょう
0368自称365
垢版 |
2008/11/29(土) 01:39:53
>>367
一応、ライフは10。敵との接触や敵弾のダメージは1に設定してあるつもり。

ソースはまだ公開する準備できてない。

ちなみに
[F]でフルスクリーン切替え、
[V]で3-way弾を追加発射、
[M]で内部モニター起動 (文字は白いので見えない) (たまに起動しない)

最後まで行っても特に何もないのは仕様。
っていうか、やる夫の当たり判定が大きすぎて最後まで行けない。
0370デフォルトの名無しさん
垢版 |
2008/11/29(土) 05:15:41


ソースクレ警報発令!


367 名前:デフォルトの名無しさん 投稿日:2008/11/29(土) 01:07:27
かっこいいなぁ。5回当たると死亡?ソース見て勉強したい・・・


ソースクレ警報発令!


367 名前:デフォルトの名無しさん 投稿日:2008/11/29(土) 01:07:27
かっこいいなぁ。5回当たると死亡?ソース見て勉強したい・・・


ソースクレ警報発令!


367 名前:デフォルトの名無しさん 投稿日:2008/11/29(土) 01:07:27
かっこいいなぁ。5回当たると死亡?ソース見て勉強したい・・・


ソースクレ警報発令!



0373デフォルトの名無しさん
垢版 |
2008/11/29(土) 13:37:56
>>372
FPS33を保つために、
フルスクリーン切替えや過負荷によってコマ落ちが発生した場合、
一時的にFPS33を越えて遅れた分を取り戻そうとします……とか
0374デフォルトの名無しさん
垢版 |
2008/11/29(土) 13:54:49
ああ、えっと何が言いたいかというと、
スピードが速すぎると感じた場合は、
しばらく放置すると改善する場合があります。ってこと。
0376デフォルトの名無しさん
垢版 |
2008/12/16(火) 23:59:49
SDLはVisualStudio2008には対応してないんでしょうか?
ダウンロードには2005しかないんで。

使うなら、2005をインストしないとだめ?
0378デフォルトの名無しさん
垢版 |
2008/12/17(水) 20:53:25
>>377

了解です。ありがとうございました。
0379デフォルトの名無しさん
垢版 |
2009/02/01(日) 17:39:14
あげておくか
0380デフォルトの名無しさん
垢版 |
2009/02/08(日) 19:38:23
SDL_SetDisplayMode関数を複数実行して
フルスクリーンとかOpenGL切り替えをしようと考えてるんですが

SDL_SetDisplayMode関数を実行する毎に
前のSDL_SetDisplayModeで確保したSDL_Screanって
Freeしなくても大丈夫ですか?
■ このスレッドは過去ログ倉庫に格納されています

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