[過去ログ]
SDLスレ (987レス)
SDLスレ http://echo.5ch.net/test/read.cgi/gamedev/1005469181/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
733: 名前は開発中のものです。 [sage] 05/02/02 01:04:00 ID:9d2HU8RL >>732 これかな ttp://www-6.ibm.com/jp/developerworks/linux/sdl/sdl.html http://echo.5ch.net/test/read.cgi/gamedev/1005469181/733
734: 731 [sage] 05/02/02 09:12:16 ID:WOl4so1f >>732-733 ごめん、Lokiのゲームが由来だとばかり思ってた orz http://echo.5ch.net/test/read.cgi/gamedev/1005469181/734
735: 名前は開発中のものです。 [] 05/02/06 19:38:19 ID:GSZ53bwF >>727 SDL_mixerでは、RWopを使ってストリーム再生するMix_LoadMUS_RWはオプションだから、直接RWopが全てに突っ込めるわけではないです。 USE_RWOPSを定義しておいてやれば使えるけど、SMPEGを利用したmp3再生には対応していない模様。 どうも、Mix_LoadMUSでしかmp3は使えないよう。 ってことは、mp3でなく、oggを推奨していますってことなのかな? http://echo.5ch.net/test/read.cgi/gamedev/1005469181/735
736: 名前は開発中のものです。 [sage] 05/02/11 22:56:34 ID:dXQ7K1nl SDL_ttfでM+フォントが開けない。・゚・(ノД`)・゚・。 TTF_OpenFont("fonts/bdfmplus.ttf", fontSize); TTF_OpenFont("fonts/bdfUMplus.ttf", fontSize); サイズ1〜100まで試したけどだめぽ。 環境はWindows SDL_ttf-2.0.6 freetype-2.1.8 フォントは香り屋で落としてきたやつ。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/736
737: 名前は開発中のものです。 [sage] 05/02/11 23:14:02 ID:3rQbAxiH >>736 フォントのパスを絶対パスにしてみてはいかが http://echo.5ch.net/test/read.cgi/gamedev/1005469181/737
738: 名前は開発中のものです。 [sage] 05/02/11 23:17:14 ID:XuEZhlNi >>736 詳しくは知らないが、bdfUMplus.ttfはBITMAPフォントらしいのでダメポ M+のトップからOUTLINEに飛んで、落としたやつは中に18コくらいttfが入ってて 全部は試してないがいくつかはTTF_OpenFontで開けた M+ ttp://mplus-fonts.sourceforge.jp/ http://echo.5ch.net/test/read.cgi/gamedev/1005469181/738
739: 736 [sage] 05/02/11 23:43:02 ID:dXQ7K1nl >>737 絶対パスでもだめでした。 >>738 ビットマップ埋め込みのやつでは駄目なんですね。 公式サイトから落としたやつは出来ました。 ありがとうございます。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/739
740: 名前は開発中のものです。 [] 05/02/13 00:50:02 ID:phhxXInx >>735 御意。うちは USE_RWOPS を定義して ogg を読み込んでます。 SDL_mixer の music.c を見てると、Mix_LoadMUS_RW() は ogg, mikmod 以外は実装されてないですね…。 ということは mp3 に限らず cmd, wav, midi もダメっぽい。 ところで cmd て何?って調べてみたら 外部プログラムを実行して曲を再生するんですね…。 music_cmd.c を読んでみたら 冒頭に /* This is a UNIX-specific hack */ 再生時に music->pid = fork(); 一時停止時に kill(music->pid, SIGSTOP); 再開時に kill(music->pid, SIGCONT); 停止時に kill(music->pid, SIGTERM); とかやってて、ビビリました。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/740
741: 378 [sage] 05/02/13 10:02:12 ID:msvBWsr3 >>735 > ってことは、mp3でなく、oggを推奨していますってことなのかな? ogg の実装が一番楽だったってだけだよ。 libogg の方に登録する読み込み関数のポインタを FILE 系から RWops 系にするだけだったから。 SDL_mixer は、USE_RWOPS の場合は RWops 版と FILE 版をコンパイルして、 そうでない場合は FILE 版だけをコンパイルする、というスタンスを取ってるせいで、 mp3, wav, midi は実装なんて読み込む部分以外全部同じなのに 両方のバージョンが必要になってる。 以前、全ソースを RWops 版で統一して、 Mix_LoadMUS は内部で単に Mix_LoadMUS_RW か cmd を呼ぶだけ、 という実装でパッチ投げたんだけど返答は無かった。 Mix_LoadMUS(_RW) レベルじゃなくて、 mp3, wav, midi それぞれの実装に FILE 版と RWops 版のインターフェイスを作らないと 受け入れてもらえそうにない。 めんどいなあ。ほとんど関数名置き換えるだけだから簡単なんだけど。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/741
742: 名前は開発中のものです。 [] 05/02/14 18:46:49 ID:pz8RlDej 初歩的な質問で申し訳ないのですが、 SetColorKeyを使って透明色を持たせたテクスチャを表示するのは SDL_BlitSurfaceでできますが、このテクスチャを拡大、回転をさせたい場合はどうすればよいの でしょうか? SGE_Transeformを使うとどうも透明色の効果が発揮しません。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/742
743: 名前は開発中のものです。 [sage] 05/02/14 19:59:14 ID:ea+EL2qX SDL_Surface は思ったより込み入った作りをしてる上に 適当に扱ってもそこそこ動いてしまうことが多いから、 仕様を厳密に守ってるライブラリは少ないよ。 http://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/ こっち使ってみたらどうかな。 ちょっと前にソースを覗いたときはまだ不完全な実装してたから、 透明色周りの処理全部がちゃんとしてるかどうかはわからないけど。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/743
744: 名前は開発中のものです。 [sage] 05/02/14 21:00:13 ID:pz8RlDej >>743 さっそくのご回答ありがとうございます。 警告がばしばし出たうえに、多少手を加えないとコンパイルが通らない ほどいまだ不完全な実装でしたが、透明色まわりは解決されていたようです。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/744
745: 名前は開発中のものです。 [sage] 05/02/15 19:44:14 ID:YKXR9FxL ぐあーBCCで1.2.8肝心のSDL.dllやらがコンパイルできねえ \Borland\freebcc>make -f SDL.mak で ..\..\src\video\windib\SDL_dibevents.c: Error E2342 ..\..\src\video\windib\SDL_dibevents.c 189: Type mismatch in paramet er 'lpPrevWndFunc' (wanted 'int (__stdcall *)()', got 'long (__stdcall *)(void * ,unsigned int,unsigned int,long)') in function DIB_HandleMessage *** 1 errors in Compile *** とかいうエラーが出て止まる…… makeall.bat動かしたらtestディレクトリに色々とデモらしきものが出来てるけど。 フリーBCC使ってる皆さんちゃんと動いてます? http://echo.5ch.net/test/read.cgi/gamedev/1005469181/745
746: 名前は開発中のものです。 [] 05/02/15 19:48:01 ID:TwJPXr3V SDL.dllってコンパイルして作成しないといけなかったのん? http://echo.5ch.net/test/read.cgi/gamedev/1005469181/746
747: 745 [sage] 05/02/15 19:56:12 ID:YKXR9FxL >>746 SDL-1.2.8-win32.zipのSDL.dllをtestディレクトリに入れたらサンプル群がちゃんと動きました。 コンパイルできなくてもなんとかなる、というよりコンパイルする必要が無いからその辺テキトーなのかな…。 ソースに付いてるインストールガイド(Borland.html)ではSDL.dllもコンパイルされるみたいに書かれてるのに。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/747
748: 名前は開発中のものです。 [sage] 05/02/15 20:31:16 ID:+9+lxg8U >>745 >Error E2342 ..\..\src\video\windib\SDL_dibevents.c 189: Type mismatch in paramet とりあえずキャストしてみたら? intとlongの違いなら害は無さそうだし。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/748
749: 名前は開発中のものです。 [sage] 05/02/15 20:48:20 ID:6CIQh+IC 前から BCC で使ってるけど、1.2.7 からコンパイルできなくなったと記憶してる。 DirectX と WinDIB の両方でエラーになるから、片方潰して回避することもできない。 結構粘ってみたんだけど、問題解決できなかった。 単に一つ定義が足りないっつってるだけかと思ったら、 手動で定義しても次々別のエラーが出てくるだけ。終わらない。 他に根本的な原因があるんだろうけど、解明できなかった。 ちなみに VC も DirectX のソースでエラー吐く。 こっちも問題を解決できなかったので、 プロジェクトの設定 -> 左の'SDL'を選択 -> C/C++ -> プリプロセッサ -> 定義から ENABLE_DIRECTX を消す とやって、これでもまだ足りないから、 ファイルビューから名前に dx5 を含むファイルを全部削除した。 これで DirectX 無しでだがコンパイルできるようになる。 ちなみに、初期状態だと afxres.h が無いとか言い出すけど、 #include <windows.h> とだけ書いた afxres.h を SDL-1.2.8\VisualC\SDL に置けば回避できる。 まさかちゃんとした afxres.h を持ってこないと DirectX 付きでコンパイルできないってんじゃないだろうな……。 1.2.7 の時の話だから、今はまた少し事情が違うかもしれないけど、 手元で確認した限りだと 1.2.8 も BCC VC 共にそのままではコンパイル不可。 もう Cygwin でしかテストしてないのかね。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/749
750: 名前は開発中のものです。 [sage] 05/02/15 20:57:08 ID:YKXR9FxL 中身見てみると return CallWindowProc(userWindowProc, hwnd, msg, wParam, lParam); てとこのおそらく第一の引数なんだが、関数の型キャストのしかたわからんです (´・ω・`) でもここをなんとかしても駄目なのか…… >>749 情報ありがと。BCC使ってる人自体がもう少数なのか? まあdll作れなくても動くみたいだからいいや。他のSDL_image なんかが使えるか心配だが。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/750
751: 名前は開発中のものです。 [sage] 05/02/15 22:58:42 ID:+KOUJpD5 >>750 SDL_dibevents.cの189行 SDL_dx5events.cの547行 return CallWindowProc((FARPROC)userWindowProc, hwnd, msg, wParam, lParam); SDL.makeの OBJFILES=に..\..\src\cpuinfo\SDL_cpuinfo.objを追加 PATHCPP=に..\..\src\cpuinfoを追加 これで、make出来ると思う。(動くかどうかは(゚听)シラネ) VC++だとerrorじゃなくてwarningだから、コンパイル通るみたいだね。 >>749 1.2.7も1.2.8もVC++6.0、VC.NET2003両方とも普通にコンパイルできるけど? http://echo.5ch.net/test/read.cgi/gamedev/1005469181/751
752: 名前は開発中のものです。 [sage] 05/02/15 23:00:06 ID:V7EcU05u >>750 BCC使ってるけどDLLをコンパイルし直すということはしないなぁ http://echo.5ch.net/test/read.cgi/gamedev/1005469181/752
753: 749 [sage] 05/02/16 05:37:50 ID:ASwNW9Kw >>751 ありゃ。俺んちだと次のエラーが出る。 SDL-1.2.8\src\Video\Windx5\SDL_dx5events.c(171) : warning C4013: 関数 'GetAncestor' は定義されていません。int 型の値を返す外部関数と見なします。 SDL-1.2.8\src\Video\Windx5\SDL_dx5events.c(171) : error C2065: 'GA_ROOT' : 定義されていない識別子です。 SDL-1.2.8\src\Video\Windx5\SDL_dx5events.c(171) : warning C4047: '=' : 間接参照のレベルが 'struct HWND__ *' と 'int ' で異なっています。 SDL-1.2.8\src\Video\Windx5\SDL_dx5events.c(655) : warning C4047: '=' : 間接参照のレベルが 'struct HWND__ *' と 'int ' で異なっています。 俺の環境がおかしくなってるだけかも。VC 入れ直してみる。 >>751 やべー、ほんとだ通った。ありがとう! >>752 stdout.txt が鬱陶しいから直接コンソールに出力して欲しいとか、 パッチ書いたから BCC でもコンパイルできるか試すとか、 大抵そんなんじゃないかな。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/753
754: 名前は開発中のものです。 [sage] 05/02/19 00:06:37 ID:G5VXh4sK フリーのbcc使ってるから、ちょっとためになった。 imageとmixerしか使ってないけど…。 http://echo.5ch.net/test/read.cgi/gamedev/1005469181/754
755: 名前は開発中のものです。 [] 05/02/19 17:54:05 ID:vHiopGBS どうしてもわからないので教えてください。 SDL_CreateRGBSurfaceFrom ないしは、 SDL_CreateRGBSurface を 使用しようと、してるのですがなぜか Fatal signal: Segmentation Fault (SDL Parachute Deployed) といわれてしまいます。 少々ながいのですが、sample 乗せますので、どこがわるいのか 識者のかた、見ていただけないでしょうか? ------- cut here ---------------------------------------- #include <SDL.h> #include <stdlib.h> #include <string.h> #define XXX (60) int main( void ) { int j; Uint16 **data; Uint32 rmask = 0x0000001f; Uint32 gmask = 0x000007E0; Uint32 bmask = 0x0000F800; Uint32 amask = 0x00000000; SDL_Surface * screen; if ( 0 < SDL_Init( SDL_INIT_VIDEO|SDL_INIT_TIMER ) ) { fprintf( stderr, "Colud not initialize: %s\n", SDL_GetError() ); exit(3); } atexit( SDL_Quit ); if ( NULL == SDL_SetVideoMode( 800, 600, 16, SDL_ANYFORMAT ) ) { fprintf( stderr, "Could not set video mode... :%s\n", SDL_GetError() ); exit(4); } data = (Uint16 **)malloc(sizeof(Uint16) * XXX); http://echo.5ch.net/test/read.cgi/gamedev/1005469181/755
756: 名前は開発中のものです。 [sage] 05/02/19 17:56:23 ID:vHiopGBS if ( NULL == data ) exit(10); for (j = 0; j < XXX; ++j) { data[ j ] = (Uint16 *)malloc(sizeof(Uint16) * 80 * 80 ); if ( NULL == data[ j ] ) exit(10); memset( data[ j ], 0xff, sizeof(Uint16) * 80 * 80 ); } screen = SDL_GetVideoSurface(); for ( j = 0; j < XXX; ++j ) { int z; SDL_Rect r = { 0, 0, 0, 0 }; printf("sprite index[%d] ...\n", j ); // SDL_Surface * surface = SDL_CreateRGBSurfaceFrom(data[ j ], 80, 80, 16, 80 * sizeof(Uint16), // rmask, gmask, bmask, amask); SDL_Surface * surface = SDL_CreateRGBSurface(SDL_SWSURFACE, 80, 80, 16, rmask, gmask, bmask, amask); if ( SDL_MUSTLOCK( surface ) ) { if ( 0 < SDL_LockSurface( surface ) ) { fprintf( stderr, "Could not lock surface.: %s\n", SDL_GetError() ); return 0 ; } } for ( z = 0; z < 80 * 80; ++z) ((Uint16*)(surface->pixels))[ z ] = data[ j ][ z ]; if ( SDL_MUSTLOCK( surface ) ) { SDL_UnlockSurface( surface ); } http://echo.5ch.net/test/read.cgi/gamedev/1005469181/756
757: 名前は開発中のものです。 [sage] 05/02/19 17:56:54 ID:vHiopGBS SDL_FillRect( screen, NULL, SDL_MapRGB( surface->format, 0x00, 0x00, 0x00) ); if ( NULL == surface ) { fprintf( stderr, "Could not make surface...:%s\n", SDL_GetError() ); exit(1); } if ( j >= 10 ) { int xx = j % 10; int yy = j / 10; r.x = xx * 80; r.y = yy * 80; } else { r.x = j * 80; r.y = 0; } SDL_BlitSurface( surface, NULL, screen, &r ); SDL_UpdateRect(screen, 0, 0, screen->w, screen->h); SDL_Delay( 100 ); SDL_FreeSurface( surface ); } return 0; } http://echo.5ch.net/test/read.cgi/gamedev/1005469181/757
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 230 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.015s