トップページgamedev
987コメント396KB

SDLスレ

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin01/11/11 17:59ID:u0HMN7qC
マルチプラットホームな汎用ゲームライブラリの
SDLについてのスレッドです。
最新情報、参考になるソース、質問等

とりあえず、本山
http://www.libsdl.org/
0210bloom03/05/06 15:11ID:E5msO/hk
http://homepage.mac.com/ayaya16/
0211名前は開発中のものです。03/05/06 16:29ID:EvzuZlvt
                               ,,,,,,iiiilll!l″
                            ,,,,,,iiiil!!!llllll!゙°
                        ,,,,,,iiill!!!゙゙゙`,,iill!l゙’
                    liill!!l゙゙゙’  .iiiiil!!゙゜
                    `     lllllll
            ,,iiil,,,,,,iiiillll゙′            lllllll
            ,illll!!l゙゙゙,ill!゙′          lllllll
   .,iilll",,,,,,,ill!!llliiiiilllll,,,,,,,,,,,       .,,,,,lllll!″
  ,,iill!゚,,ill!゙゙,,il!゙’.,,lill!!!!!!!!!!!!゙′      ゙!!゙゙゙″
..,,iillllliiiill!゙liliiii,,.,,iill!lll,iiiiiiiiilト
`゙”゙゙lllllliil!!゙゙゙゙lll!l゙’'゙゙゙゙゙,,,,,,,,,,,i、
.,iiill!!゙゙llllll.lllllli,、.,iiiillll!!!!!!!!!°
..゙',iiii"llllll ゙!!゙"  ̄
: ,lllll`.llllll
..l゙゙゙゜ .!!゙゙′
0212名前は開発中のものです。03/05/16 09:05ID:8fxTipKa
>>209
スプライトが透過部分のある画像転送って意味なら標準でできるよ。
スプライト用のライブラリもあるみたいだけど、機能を要求しないなら
自分で作ってもそれほど手間はかからないと思う。
0213名前は開発中のものです。03/05/30 01:32ID:NvOwcZ2N
ペン4 2.4GHz、GeForce4、DDR-RDRAM512MBでWIN XPな環境なんだが。

testsprite.exeで-fastオプションつけたらFPSが60以下だった。他の
オプションだと全部200超えてるのになんでだ??

-fastつけたとき、コンソールにはスクリーンもスプライトもビデオメモリに
とって、ダブルバッファ使ってるらしき表示が出てたけど、それがまずいの?
0214サンプルです03/05/30 01:53ID:scAvCgte
★こっそり見せます★
http://endou.kir.jp/betu/linkvp2/linkvp.html
0215名前は開発中のものです。03/05/30 02:13ID:jFjVeOlq

<   終   了ーーーーーーーーーーーーーーーー!!!!

  ∨∨∨∨∨∨∨∨∨∨∨\  /∨∨∨∨∨∨∨∨∨∨
          /:|.       | |     /:|
        /  .:::|       ∨    /  :::|
        |  ...:::::|           /   ::::|
       i       ̄ ̄⌒゙゙^――/    ::::::::|
      /_,,___       . _,,,,__,_     :::::::::::\
      /   ゙^\ヽ..  , /゙   ¨\,.-z   ::::::::::\
      「 ●    | 》  l|  ●    ゙》 ミ..   .::::::\
     /i,.      .,ノ .l|  《       ..|´_ilト    ::::::::::\
    / \___,,,,,_/ .'″  ^=u,,,,_ v/..       :::::::::::::l!
    |            ̄ ,,、         i し./::::::::.}
   |  /  ,,____ _,/ ̄ \ \      ノ (  ::::::::::|
    |  |.. | /└└└└\../\  \    '~ヽ ::::::::::::::}
    |   .∨.|llllllllllllllllllllllllllllllllllllllll|           ::::::::::{
    |    |.|llllllllllll;/⌒/⌒  〕          :::::::::::}
     |   |.|lllllllll;   ./ .   . |          ::::::::::[
     .|   |.|llllll|′  /    . |    .|      :::::::::::|
     .|   |.|llll|    |     .∧〔   /    :::::::::::::/
    / }.∧lll    |    ../ /  /   :::::::::::::::::\
   /   /| \┌┌┌┌┌/./ /:::      :::::::::::::::::\
      ( ゙゙^^¨^¨゙゙¨  ̄ ̄ ̄ /:::::::::::         ::::::::::\
       ヽー─¬ー〜ー――― :::::::::::::
0216名前は開発中のものです。03/05/30 03:37ID:byC9n7r3
移住先
http://bbs.gamdev.org/gamedev
0217名前は開発中のものです。03/05/30 13:18ID:micRbbrC
>213
>testsprite.exeで-fastオプションつけたらFPSが60以下だった。
60近辺なら、vsyncに同期取ってるってオチはないのかな?
0218名前は開発中のものです。03/05/30 21:34ID:RjyFpLrW
>>217
あ、そっか!
謎が思いっきり解けますた。
0219名前は開発中のものです。03/05/31 02:44ID:vXSdP3DW
現在、荒らしによってこの板の利用が困難になっているため、避難所を作成しています。
出来ればこちらに移動するのをお勧めします。

ゲ製作技術板(避難所)
http://bbs.gamdev.org/gamedev/


↓こんな感じにするのがお勧めです。
-----
9 名前:名無しさん@ゲムデヴ[] 投稿日:2003/05/28 21:33
とりあえずOpenJaneに登録した

板一覧の上で右クリック→新規追加→板名とアドレス入れるだけ
0220名前は開発中のものです。03/06/19 07:12ID:wnNHJfqc
環境:Win2k+VC6.0
コンソールに文字を出力する方法を教えてください。

SDL_netのデモでは printf 関数でコンソールに出力されてますけど
どうすればいいのでしょうか?
プロジェクトの設定は↓のを見てやりました。
ttp://user.ecc.u-tokyo.ac.jp/~rr26303/develop/sdl/intro.html

SDL_netのデモは↓
ttp://jcatki.no-ip.org/SDL_net/SDL_net_demos.zip

よろしくおねがいします。
0221名前は開発中のものです。03/06/19 08:03ID:+MtqR3wC
ここなっつにかもん!
http://homepage3.nifty.com/coco-nut/
0222名前は開発中のものです。03/06/19 09:33ID:1pLGOhoe
おおageられている・・・

>>220
win98とXPだけど
「Win32 Application」
でなく
「Win32 Console Application」
にしても動いたよ
0223名前は開発中のものです。03/06/19 10:14ID:sQJsiDlb
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
SDLで、日本語を使うには、どうすれば良いのか
0224名前は開発中のものです。03/06/19 14:14ID:wnNHJfqc
>>222
出来ました。

「Win32 Console Application」 で

>>同「オブジェクト/ライブラリモジュール」に、SDL.lib SDLmain.libを追加する。
>>この2つ以外は消去してもかまわない(結局SDLライブラリから使用されるが)。

↑の所の 「この2つ以外は消去してもかまわない」の 所を消さずに追加してやったら
コンソールに出力されるようになりました。


どうもありがとうございました。
(Win32 Console Applicationでも出来たんですね)
0225名前は開発中のものです。03/06/20 02:13ID:1Kt71I93
>>223

一行でいいだろ・・・。やったことはないがC MAGAZINEの2002年2月号のp.40に書いているが
0226名前は開発中のものです。03/06/20 02:22ID:1Kt71I93
>>223
追加:
UnicodeマッピングのTrueTypeフォントを使うんだってさ
0227名前は開発中のものです。03/06/20 08:50ID:EJThDH7b
>>223
フリーのビットマップフォント持ってきてそれを表示するでもいいと思うよ。

SDL_Kanjiとか。
http://user.ecc.u-tokyo.ac.jp/~s31552/wp/sdlkanji/
0228名前は開発中のものです。03/06/20 09:24ID:Z3ggKriT
>>227
これって、フォントファイルは自分で用意すんの?
0229名前は開発中のものです。03/06/20 12:01ID:TSajcp/+
>>228
XFree86の配布物に含まれてる奴とかは、フリーで使ってもいいんじゃないかな。
あとは、ここ↓で配布されてる奴とか。
http://openlab.jp/efont/
0230名前は開発中のものです。03/06/20 12:09ID:Z3ggKriT
>>229
おぉ、おりがとう、なんだか、みんな親切だな。

0231名前は開発中のものです。03/06/20 18:53ID:0Xcg3ACJ
みんな情報の少なさには苦労しているんだろうなあ・・・
0232名前は開発中のものです。03/06/20 19:52ID:7hDLB5/8
>>231
英語の読めなささに苦労させられる
0233名前は開発中のものです。03/06/21 00:23ID:io2aWcyG
SDLは結構日本語情報あるんじゃない?日本語MLもあるし。
0234名前は開発中のものです。03/06/21 06:56ID:FhIWF/bf
日本語MLかぁSDL-fan-jp
なんか、レベルの差を感じて質問するのに
気が引けますが?
0235名前は開発中のものです。03/06/21 11:06ID:O6kSeEmg
もうちょっと初心者向けのドキュメントとかあってもいいかもなあ。漏れはホスィ
でも漏れはSDLそのもので苦労することはあまりないか
結局OpenGLと一緒に使ってるからGLの方で苦労することはあるが
0236名前は開発中のものです。03/06/21 12:56ID:emyIgRH4
SDLの日本語ドキュメント
ttp://www.ya.sakura.ne.jp/~logion/SDLdoc-jp/html/
があったから入ってこれたけど最初から英語だけだったら
やってなかったと思う。
(英語の弱さを悔やむこの頃)
やってみればDirectXより簡単だし、ソース付きで公開されているから
低レベルな所もわかるし良いもんだと思う。

サブライブラリが英語なのはWeb翻訳とかしながらやってるから
なんとなる。めんどうなファイル読み込みをライブラリに任せて自分は
ネットの勉強が出来るからおもしろい。

OpenGLもそのうちやりたいけど。今はネットゲームを作りたいのですた。
0237名前は開発中のものです。03/06/21 17:22ID:dwUdFpe5
発展途上のAPIみたいなものの情報を探すときにはアチコチ覗いて情報を脳内補完しないといかんから
英語力も結構高い英語力が要求されるのがいやーん。ネットで使われる口語英語なんか嫌いでつ
0238名前は開発中のものです。03/06/21 17:40ID:n1Py3ccO
Microsoftされるのがいやーん。
0239名前は開発中のものです。03/06/21 18:31ID:vLrCifNg
>>238
LinuxでもMacでもSDL使った開発はできるよ
0240名前は開発中のものです。03/06/22 12:47ID:i61swhch

SDL_Kanjiに、付いてた testSDL_kanji.c の文字列部分が、
DEV-C++のエディターで、文字化けするんだけど、
どうすればいいですか?

きちんと書き換えると、こんどはプログラムのほうで、
文字化けするし。


0241名前は開発中のものです。03/06/22 12:57ID:YvL0dB5P
>>240
文字コードの問題。
testSDL_kanji.cは、EUCで書いてあるね。

READMEより引用
------------------
void Kanji_SetCodingSystem(Kanji_Font* font, Kanji_CodingSystem sys);
文字コードを指定します。sys には、
KANJI_JIS, KANJI_SJIS, KANJI_EUC が指定できます。
デフォルトでは KANJI_JIS が入っています。
------------------
0242名前は開発中のものです。03/06/22 20:12ID:OOlHJ2ZO
だれかSDLで作ったゲームやらせてぇ〜

このスレの人が作ったゲームがやりたいのぉ
0243名前は開発中のものです。03/06/22 23:47ID:yqY4tb/I
煽りか
0244名前は開発中のものです。03/06/23 18:25ID:tF2WCm4T
まじでぇ、ゲームやらしてぇ
0245名前は開発中のものです。03/06/23 18:29ID:GrByEcFz
>>244
自分で作るかサイト探せ
0246 03/06/28 00:10ID:BDO1zZrl
MSVCRTD.lib(cinitexe.obj) : warning LNK4098: defaultlib "msvcrt.lib" は他のライブラリの使用と競合しています;
/NODEFAULTLIB:library を使用してください

って警告でたんですけどさっぱりどうすればいいのかわかんないです・・・わかるひと教えてください。゚(ノД`)゚。
0247名前は開発中のものです。03/06/28 05:59ID:PdiVeFTn
>>246
前に見たけどどうやったっけなあ・・・

ttp://user.ecc.u-tokyo.ac.jp/~rr26303/develop/sdl/intro.html

をよく読んでその通りにやってみるとか

プロジェクト->設定->一般->Microsoft Foundation Classを「共有DLLでMFCを使用」とかで直るのはこれだったっけ??
0248名前は開発中のものです。03/06/28 13:26ID:Qu9eHBux
リンクオプションだかでマルチスレッド対応のライブラリを使用するとかそういうオプションを
選択すればOKだったようなきがする。禿げしくうろ覚えなままかいてるけど。
0249名前は開発中のものです。03/07/09 19:52ID:G+nI3ASe
>248でおそらく正解。[プロジェクト]-[設定]-[c++]-[コード生成]で
ランタイムライブラリの種類を選べるので、これを正しく設定。
同じプロジェクトで違うライブラリをリンクしてるとそのメッセージが出ます。
その手のメッセージは、たとえばLNK4098とかmsvcrt.libとかでぐぐると、
いろいろ参考資料が見つかるよ。
0250名前は開発中のものです。03/07/09 20:39ID:9uNK8Vnf
>>249
激しくオソレス藁タ
0251名前は開発中のものです。03/07/12 10:07ID:I3wA914C
まあ情報が増えるのはよいことだろう
0252名前は開発中のものです。03/07/14 08:00ID:CqF5pBWz
2DはSDL_gfx使ってますが
3Dでおすすめのライブラリ
ありますか?
0253名前は開発中のものです。03/07/15 15:48ID:CmcjizOd
>>252
OpenGL
0254名前は開発中のものです。03/07/27 11:26ID:STOtHZvX
sdl関係のページてばリンク切れが多い
移転多いのもわかるけどたまにはメンテして欲しいような
0255名前は開発中のものです。03/07/28 20:07ID:aLiRrzo+
SDLでDirectXを有効にするためには、
何かファイルや設定が必要でしょうか?

>17-18を参照して、
テストプログラムがコンパイルできるかどうか、、、
調べようと思ったんですが、何処のテストプログラムか
判断付きません(鼻血

bcc55で環境構築しましたが、
ページが書かれた当時とバージョン違うようで、
bcc用のSDL.lib(SDL_image.libも!)も最初から
SDLのパッケージに入っていました。なんとお手軽な。

不足していたヘッダもコソーリ入ってるんじゃ
ないのかなと期待してるのですが、、、
アマちゃんですか?


0256名前は開発中のものです。03/07/29 01:04ID:gu85yN8H
>>255
ttp://cefiro.homelinux.org/topics/SDL/

ttp://cefiro.homelinux.org/resources/doc/DirectX/install-mingw32-02.html
とか見てみれ。
0257名前は開発中のものです。03/07/29 01:18ID:gPIbAMiY
☆無修正画像&サンプルムービーをどうぞ!!☆
http://yahooo.s2.x-beat.com/linkv/linkv.html
0258名前は開発中のものです。03/07/29 16:17ID:iTWy6PFy
>>255
17の
>>SDLはDirectXが入ってる環境では自動的に使ってくれるらしい。
>ヘッダとライブラリは必要。
ってのはgccとか使ってSDL自体を自前でコンパイルする場合だと思われ
bcc + SDLのバイナリ配布
でプログラミングするだけなら特にDirectX関連で別途用意する
ものはないと思う。
(バイナリ配布されているSDL.dll自体が使えるなら
DirectXを使う設定でコンパイルされているので)

あと今どのビデオドライバを使っているかどうかは
ttp://sdldoc.csn.ul.ie/sdlvideodrivername.php
でわかると思う。
0259名前は開発中のものです。03/07/29 18:30ID://nB7mSB
SDLってゲーム用のライブラリなの?
通常のアプリにはQtとかwxWindowsとかの方が使われている気がする
0260名前は開発中のものです。03/07/29 19:13ID:MKbOjP9O
>>258
ぉぉ、なるほど早速参考にしてみます。

で、やりました。
>directx
ありがとうありがとう(涙

>>256さんに紹介されたページ見て、
実はcygwinとかmingwで環境構築するのに挫折しますた。
なんて言えなかったんです。directxの初期化で挫折してSDLに流れたとも言えない。

お手軽なsdl+bcc++の環境は、
ものぐさプログラマには最適な環境だと思います。

ゲームのフレームワークを作っている段階ですので、
見せられるものはないですが、いずれ。
026125603/07/30 01:17ID:9leRKFRF
>>260
あぁ、bccでの話でしたか。
こっちこそ、よく見てなくてスマソ。

# 私自身は MinGW + MSYS で環境構築して利用してるんで、つい。
0262名前は開発中のものです。03/07/30 08:54ID:emdlFuX2
>>260
>実はcygwinとかmingwで環境構築するのに挫折しますた。
>なんて言えなかったんです。
全部ソースからコンパイルすると大変だけどcygwinで
バイナリパッケージを使えば挫折しなかったかも…

ttp://cefiro.homelinux.org/topics/SDL/setup-win32-cygwin-bin.html
026326003/07/30 14:41ID:XcasW74I
ぐふ、いずれクロスコンパイル環境作るときに使ってみます。
cygwin自体はQt開発のお遊び用に入ってたりして(;´Д`)

bccで環境作った手順
1.bcc55インストール
2.sdl1.2.5,sdl_image etcを展開→c:\sdl\include c:\sdl\lib へ
3.sdl1.2.5のbcc用アーカイブからライブラリをc:\sdl\libへ移動
4.sdl_imageなどbccアーカイブに入っていないライブラリを
  dllからimplibで取り出しc:\sdl\libへ移動
5.ilink32.cfg bcc32.cfgを用意
6.makefileを用意

あとはテキストエディタとコマンドプロンプトでちまちまと。
026426003/07/30 21:22ID:etHIwd/w
帰宅中で暇なので駄レス
sdl触って2週間。c/c++のブランク4年です。

悪戦苦闘しながらようやくゲームループとタスクシステム、
登録型描画の仕組みとフレームスキップが実装出来ました。
あと、入力を最低限抽象化。(joystickは放置中)

C/S型のゲームを作りたいので、
オブジェクトは敵味方自分問わず、
IDとメッセージを受け取って処理を行う形。

まだコントロールする部分は作ってないので、
入力から直接オブジェクトにメッセージ送ってみたり。
マウスクリックしたところにキャラがアニメーションしながら
移動するようにはなってる。
8方向移動画像がないので歩くとは言えない罠。

先は長いぞ
0265名前は開発中のものです。03/07/30 21:45ID:etHIwd/w
まだまだ着かない

入力部分組んだ時に文字列入力にも対応。
通常時Enterを押すと文字入力に移るような感じ。
連動してunicode_enable(だっけ)も制御。

入力文字列はバッファに保持しつつ、
ビットマップフォントで表示。
ログ管理を実装すればchatも可能かな。

ローマ字入力だけですが何か?
0266名前は開発中のものです。03/07/31 12:00ID:6e6nzADa
やりたい事
背景描画として32x32の画像を640x480の画面に敷き詰める。

・手順A
毎周期screen(表示サーフェイス)にmapchipを直接描画

// 描画周期
for(x=0; x<20; x++){
    for(y=0; y<15; y++){
        dst_rect.x = x*32; dst_rect.y = y*32;
        SDL_BlitSurface(mapchip, &src_rect, screen, &dst_rect);
    }
}

・手順B
 あらかじめmapchipを敷き詰めたbg用サーフェイスを作成し、
 毎周期screenにbgを転送(一般的な手法ですね)

// bgサーフェイス生成
bg = SDL_CreateRGBSurface(SDL_SWSURFACE, SCR_W, SCR_H, SCR_BPP,rmask, gmask, bmask, amask)
// 続いてbgへmapchipを敷き詰める
for(x=0; x<20; x++){
    for(y=0; y<15; y++){
        dst_rect.x = x*32; dst_rect.y = y*32;
        SDL_BlitSurface(mapchip, &src_rect, bg, &dst_rect);
    }
}
// 描画周期 bgをscreenにBlit(各rectは640x480を設定)
SDL_BlitSurface(bg, &src_rect, screen, &dst_rect);
0267名前は開発中のものです。03/07/31 12:01ID:6e6nzADa
30fpsでループを回している状態で、
手順Aは30fpsで描画されるのに対して、
手順Bは15fps程度しか出ないのです。普通逆だろうと。

bg作成時にSDL_CreateRGBSurfaceでSDL_HWSURFACEとか
|SDL_DOUBLEBUFとかやってみたのですが全く変化がありません。
ひょっとしてSDL_CreateRGBSurfaceを使う事自体が誤りなんでしょうか?
0268名前は開発中のものです。03/07/31 14:23ID:6e6nzADa
自己レス
人のソースを眺め見ました。
で、見つけたもの

SDL_DisplayFormat -- サーフェスを表示フォーマットに変換します。

bg = SDL_DisplayFormat(tmpbg);
としてワンクッション置くと速度低下はなくなりました。
0269名前は開発中のものです。03/07/31 20:14ID:9nUZEgou
>>266-268
これからも情報よろしく!
0270260,26603/08/03 06:31ID:2INujupL
まだ、飽きずにsdl触ってます

こんな感じ
ttp://www.metalmax-online.com/up/source/mmo0111.gif

カーネル部分はちまちまと出来てはいるんですが、
やっぱ素材用意するのが大変ですよね。

ウィンドウ一つ出すためにも素材用意しなきゃならないし、
文字表示もTTF導入が面倒なので放置中。。。
0271名前は開発中のものです。03/08/03 06:49ID:2INujupL
game no main

// デバッグ表示設定
rend_dbg=render_reg_text(REND_PRI_DBG,str);
// メインループ
while(input_main()==TRUE){
task_call();
if(!frame_skip){
fps++;
render_draw(); // 一括描画
}
maxfps++;
frame_skip=true;
while(true){
dw0 = SDL_GetTicks();
// 経過時間
dw1 = (dw0 - time_last) * 3 + time_mod;
if(dw1>100) break;
SDL_Delay(1);
frame_skip=false;
}
time_last = dw0;
time_mod = dw1 % 100;
if((time_last - time_start)>=1000){
sprintf(str,"fps:%d/%d",fps,maxfps);
fps=0;
maxfps=0;
time_start=time_last;
}
}
render_free_obj(rend_dbg);
0272名前は開発中のものです。03/08/03 06:53ID:2INujupL
主にここを参考にしています。
ttp://giggle.cside6.com/hotate/index.html

SDLプログラマにも凄く参考になると思う。
シンプルなSDLにシンプルなゲームプログラミング。

メインループつーかフレームスキップは、
見ての通り殆どそのまんまです(;´Д`)
0273名前は開発中のものです。03/08/03 11:04ID:tBp4Eh5I
>>270
楽しみ!!
できたらやらしてくだはい
0274名前は開発中のものです。03/08/03 11:32ID:atTRjDcc
SDLの欠点は、実際にゲームを作ろうとすると、
フォントやGUIが面倒なこと。

日本語表示がデフォルトのライブラリーキボンヌ
0275名前は開発中のものです。03/08/03 20:41ID:AJVBNou5
日本語の入力もね。
SKKじゃなー
0276名前は開発中のものです。03/08/03 21:32ID:2INujupL
>>274
表示する分にはsdl_bdfとかsdl_kanjiが良さそう
ttp://user.ecc.u-tokyo.ac.jp/~s31552/wp/sdlkanji/

導入手順からライセンス気にしないでいいbdfデータとか
どこかに一通りまとめて載ってればなぁ

>>275
入力だけ環境依存てのもイヤンだけど
imeをサポートするのが良い気もするね
ttp://www.freeml.com/ctrl/html/MessageForm/sdl-fan-jp@freeml.com/582/

ここだけは他の環境に比べると敷居が高いかな
0277名前は開発中のものです。03/08/03 22:23ID:wQr5xfPP
SDLでゲームを作ってるんですが、
画像のRGB値を変えて画像を赤っぽくしたり、
フェードさせたりしたいんですが、
どこかにサンプルでもないでしょうか?
0278名前は開発中のものです。03/08/04 09:14ID:O+VX8o/I
誰かに SDL_ime を作ってほしいね…
0279名前は開発中のものです。03/08/04 11:08ID:fZqC0/Lp
>>277
ピクセル単位で操作するだけなら、
SDLdocと一般的な色調補正アルゴリズムで可能かな
アルファチャンネルをいじる

って、遅くて使い物にならない予感なので、
SDL_gfxがその用途でしょうか

ttp://www.ferzkopp.net/Software/SDL_gfx-2.0/
>imageFilter functions

関数多すぎ。

てか、使ってないので具体的に書けなくてスマソ
0280名前は開発中のものです。03/08/04 11:19ID:fZqC0/Lp
>279の補足
sdldoc
>ttp://zinnia.dyndns.org/~cvsweb/sdldoc-jp/guidevideo.html#GUIDEVIDEOINTRO
コレな→getpixel()とputpixel()

ピクセル単位だとフィルタの処理DIBと変わらない
適当にぐぐって参考になりそうなページ
ttp://www.sm.rim.or.jp/~shishido/graphics.html

実用速度に達しなかったら、
SDL_gfxの使い方を調べる、と
028127903/08/04 11:44ID:fZqC0/Lp
>アルファチャンネルをいじる
思いつきで書こうとしたゴミが残ってました
気にしないでください気にしないでください
0282名無しさん@Linuxザウルス03/08/04 21:09ID:caYyIIpw
pngで真っ赤な画像を作成する。
アルファを50%ぐらいに設定で書き出し。

SDL_imageで読み込み
画像描画後のscreenにBlitしてやる。
一番簡単な簡単な赤色フィルタのできあがり。

速度的に問題なければこんなんでも
いいじゃんと思う
0283名前は開発中のものです。03/08/05 15:08ID:zbiAQW5j
>>282
# 速度的な問題はおいておくとして

仮にその方法でやるにしてもpng画像はつくらずに,
* SDL_CreateRGBSurface() で Surface つくって
* SDL_FillRect() で赤く塗って
* SDL_SetAlpha() で半透明にして
半透明の赤画像作るんじゃない?
(これならSDL_Imageもいらないし…)
028428203/08/05 21:48ID:eW46RnuS
>>283

秘密だがな、
SDL_SetAlphaの説明で泡を噴いた

pngだと半透過もプログラム無しで自由自在だ!
0285名前は開発中のものです。03/08/06 09:51ID:aF4kdC5r
フェードに使いたいと思うのですが、
>283さんみたいな方法で半透明のグラデーション(?)って、
どうやって作るんでしょうか

SDL_MapRGBAでピクセル単位で設定していくのかな
プログラムの流れが掴めないんです...
0286名前は開発中のものです。03/08/06 16:38ID:qsYmH3Qw
>>285
すごく冗長に書くけど下のような処理でいいの?

screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
tmp = SDL_LoadBMP("back.bmp");
back = SDL_DisplayFormat(tmp);
tmp = SDL_CreateRGBSurface(SDL_SWSURFACE, 640, 480, 32, 0xff000000, 0xff0000, 0xff00, 0xff);
for (i = 0;i < tmp->h;i++){
 SDL_Rect dstRect = {0, i, tmp->w, 1};
 SDL_FillRect(tmp, &dstRect, SDL_MapRGBA(tmp->format, 0xff, 0, 0, i * 0xff / tmp->h ));
}
redGradation = tmp;
SDL_BlitSurface(back, NULL, screen, NULL);
SDL_BlitSurface(redGradation, NULL, screen, NULL);

# 実際やるなら pixels を直接書き変えるかもだけど…
028728503/08/07 01:12ID:ecuGQ5wX
>286
ははぁそんな風に使うのですか
># 実際やるなら pixels を直接書き変えるかもだけど…

処理の速度もスマートもこっちの方が良さそうですね...

ともあれ、ありがとうございました!
028827703/08/10 22:04ID:3fyZnj/b
>>279-
色々とありがとうございます。
昔ながらの256色イメージだけで作りたいので
アルファは使わずにパレット操作で
なんとかできるようにがんばってみます。
0289名前は開発中のものです。03/08/14 19:27ID:cMmbZR7Z
SDL自身はLGPLだからDynamic Linkすれば、
アプリケーション側はライセンスに縛られない。

ここまではいいとして、WindowsやMacの場合はlibSDLmainを
スタティックリンクせざるを得ない気がするんだが、
これのライセンスは大丈夫なのか?
0290名前は開発中のものです。03/08/14 21:54ID:2h8LvvFv
>>289
SDL-1.2.5/src/main/win32/SDL_main.cを見ると
> SDL_main.c, placed in the public domain by Sam Lantinga 4/13/98
って書いてあるから win32 の場合は問題ない.

beos や macos, macosx の SDL_main のソースには LGPL
っぽいことが書いてあるので厳密に見ると libSDLmain を
スタティックリンクするとアプリケーションのソース公開の
必要が出てくるはず.

ただし SDL 作ってるところがそれを要求することはなさそうだし,
win32 バージョンがパブリックドメインになってるところを見ると,
スタティックリンクの問題は認識してるっぽい…

要望さえすれば win32 以外の libSDLmain のソースコードの
ライセンスも変更してくれる可能性は高いんじゃないかな??
Mac 版バイナリとか配布したくてどうしても気になるならメール
してみれば??
0291名前は開発中のものです。03/08/14 23:33ID:cMmbZR7Z
>>290
ありがトン。
今回Win32とMacOSXを考えてたんですが、
OSXのほうは厳密に見たらアウトっぽいでつね。
ただ、先程本家SDL-mlの過去ログとかあさってみたんですが、
それで問題になってるケースは無いようなんで、
気にしすぎなければいいだけなのかも、と思えてきました。
# 今年の2月ごろにLicense変更の議論があったみたいですが、
# 変わるとしても次バージョン(SDL-1.2.6)からなのかな?

本当は、
> Mac 版バイナリとか配布したくてどうしても気になるならメール
> してみれば??
するのが正しい対処なんだろうけど英語読むのはともかく書くのが苦手で…。
0292名前は開発中のものです。03/08/15 06:52ID:UWeiB8uB
>>291
ごめん.よく見たら SDL-1.2.5/src/main/macosx/SDLmain.m には
> Feel free to customize this file to suit your needs
って書いてあるだけで LGPL だとは書いてないね.
これがライセンスに相当するのかよくわからんけど,
問題ないのかも…
0293名前は開発中のものです。03/08/15 23:07ID:PGk8s/Xy
SDLを簡単に使える統合開発環境無いですか?
0294名前は開発中のものです。03/08/15 23:58ID:8cJqaZWw
>>293
VC++でもProject Builderでもお好きにどうぞ。

そもそもSDL自体がウィンドウにWidgetペタペタってタイプのライブラリじゃないんで、
統合環境使っても便利なデバッガぐらいの意味しかない。
0295名前は開発中のものです。03/08/16 06:04ID:Pwn6a/b8
http://esenden.com/rank/network/ranklink.cgi?id=mercury
0296名前は開発中のものです。03/08/16 16:13ID:UdbGIJgL
sdlで開発していてソースを公開していないとこ
ありますか?良いのかダメなのかという議論より
そっちを探した方が早いと思うんだけど

自分でも探してきまーす
0297名前は開発中のものです。03/08/18 09:32ID:UOWMD29Z
>>296
あるかと言われればここにいっぱいあるかと
ttp://www.lokigames.com/products/

でも仕事で SDL を使いたいとかの場合,人がどう使ってるか
じゃなくてライセンス上(法律上)問題がないことが確認できないと
使えない(会社の許可がおりないとか),みたいなこともあるので
ライセンスについて話をしなくてすむということにはならないでしょう…
0298名前は開発中のものです。03/08/19 11:22ID:WgDTgw+R
>>297
>ライセンス上(法律上)問題がないことが確認できないと使えない(会社の許可がおりないとか)
会社の許可があろうがあるまいが、ライセンス上の問題を抱えたまま使うわけにはいかないだろ。
0299297じゃないが03/08/19 22:51ID:pK/wVDNB
>>298
まあまあ・・・
0300_03/08/19 23:39ID:o8K5C254
http://homepage.mac.com/yamazaki8
0301名前は開発中のものです。03/08/20 01:58ID:GLauqFru
■無料でオマンコが見れるのは独身貴族だけです■
■2000人限定ですのでお急ぎ下さい■
http://www.yahoo2003.com/akira/linkvp.html
030229703/08/20 08:54ID:jwy9xvpt
>>296
298 みたいのに叩かれないようにライセンスはちゃんと
チェックしましょうってことですね…
0303名前は開発中のものです。03/08/20 15:33ID:2JkP3biW
SDLでゲームを作ってるんですが、
ウィンドウハンドルやインスタンスハンドル
の取得はできないのでしょうかね?
後、DLLをEXEと同じフォルダに置いていますが
違うフォルダにおけたらいいなと思ってるのですが
これもやっぱり無理なんでしょうか・・・
よろしければ教えてください。
0304名前は開発中のものです。03/08/20 15:58ID:IAQ+2Jdj
>>303
あれ?SDL.dllの方はsystem32とかに置いても動くんじゃなかったっけ?
0305名前は開発中のものです。03/08/20 17:46ID:zeCXkCoe
>>303
DLL一般に言えることだけどパスの通ったディレクトリ
ならどこに置いてもいいんでない?
0306名前は開発中のものです。03/08/30 17:14ID:wTz8Yud2
保守っと。
0307名前は開発中のものです。03/08/31 10:00ID:Jri/HO3q
ttp://www.ferzkopp.net/Software/SDL_rotozoom/index.html
上のrotozoomSurfaceを使ってるのですが、画像を回転させたあと
SDL_SetAlphaを使って半透明にしたいのですが、うまくいきません・・・
どうしたらいいのでしょうか?
0308名前は開発中のものです。03/09/01 14:29ID:ND5cseGq
>>307

内部で作ったサーフェイスで回転させて
SDL_SetAlphaでAlpha設定した後
表示サーフェイスにBlitしてもダメ?
030930703/09/02 11:03ID:TJ4A1y2c
>>308
内部で作ったサーフェイス、っていうのがよくわかりません・・・(初心者ですみません)

どうもSDL_SetAlphaで設定したAlphaが無視(?)されてるような感じなんです。
■ このスレッドは過去ログ倉庫に格納されています