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

SDLスレ

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001login:Penguin01/11/11 17:59ID:u0HMN7qC
マルチプラットホームな汎用ゲームライブラリの
SDLについてのスレッドです。
最新情報、参考になるソース、質問等

とりあえず、本山
http://www.libsdl.org/
0917名前は開発中のものです。2005/10/13(木) 12:21:18ID:XPDehWw3
>DirectMusicProducerを使うとか言い出しました
DirectMusicProducerは単に音楽作成ツールですよ?

音楽はDirectX Audioで自前で鳴らし、
効果音はSDLで鳴らそうってなら確かにやめた方がよさそう。
どんな問題が出るか知らないけどね。
09189162005/10/13(木) 12:53:25ID:ypy0AXR+
>>917
そうです。DirectMusicProducerで作ったデータを
DirectX Audioで鳴らそうとしてました。
効果音はどうか知りません
リンカに怒られると言ったら外部にDMPファイルを再生するDLLを置くとか言い出しました
もうガクブルです。
0919名前は開発中のものです。2005/10/13(木) 17:25:39ID:ToPl7cy0
>>915
MODはSDLに組み込みだから楽 ← プログラマの都合
DMPはMIDIライクな編集がその場で出来るから楽 ← 音楽屋の都合

こう思った。
うまい折衷案が出るとよいが、最終的にはプログラマ側で妥協してやるしかないんじゃない?
09209192005/10/13(木) 17:47:05ID:ToPl7cy0
レス番間違えたーよ('A`)
>>916宛でした
09219152005/10/13(木) 21:13:13ID:pthRpnxV
>>919
そうですか・・・音楽屋がやりやすいなら仕方ないです
でもDirectMusic叩けるなら、Drawも直に叩いて欲しい
うちのメインの考え方は分からないです・・・
0922名前は開発中のものです。2005/10/14(金) 10:28:50ID:uk4v+zqx
>>921
とりあえず、言質はとっとけ
最低でも、そのメインが該当箇所を組むようにな
問題なけりゃそれでいいが、
問題出たときに誰が泥をかぶるのかを決めとかないと
プロジェクトが頓挫する事になる
0923名前は開発中のものです。2005/10/14(金) 18:43:07ID:kCsY6VJS
UTF8のファイルから読み込んだ文字列をひとつのサーフェイスにして
描画する方法が分かりました。
しかし、その文字列を一文字ずつ描画したい場合(ドラクエのように人に話すと
表示されるメッセージのように)は人文字ずつサーフェイス作っていって
フレームカウントをして表示速度の制御をしながら描画するのがいいんでしょうか?
後、UTF8だと日本語1文字が何バイトなのかって固定されてないので、すごく難しいんですが。
アイディアください。
0924名前は開発中のものです。2005/10/14(金) 20:16:29ID:uTRcIOI8
UTF-8は先頭バイト見れば何バイトかわかるけど?
0x00-0x7F 1
0xC0-0xDF 2
0xE0-0xEF 3
0xF0-0xF7 4
0xF8-0xFB 5
0xFC-0xFD 6
0925名前は開発中のものです。2005/10/15(土) 04:46:42ID:xL4TCgUt
>>923
むしろ
>UTF8のファイルから読み込んだ文字列をひとつのサーフェイスにして描画する方法
を教えてください
09269232005/10/15(土) 20:55:28ID:03Wc5kyl
>>924
ありがとう。理解しました。
>>923
回りくどい質問でしたね。気をつけます。
09279252005/10/16(日) 00:09:25ID:uNCcPNGN
マジで教えて欲しいんすけど・・・
0928名前は開発中のものです。2005/10/16(日) 01:09:04ID:ho7RZaGn
>>925
SDL_ttf をいれて以下の関数を使う
* TTF_RederUTF8_Solid()
* TTF_RederUTF8_Shaded()
* TTF_RederUTF8_Blended()
09299252005/10/16(日) 16:53:28ID:uNCcPNGN
そうじゃなくて、1フレーム毎にsurfaceを生成して描画してたんじゃ遅くて使い物にならない(こともないけど)ので、
アプリケーションの初期化時にテキストデータを全部読み込んで画像をcache、文字と矩形の対応情報を保存、もしくは外部でそのファイルフォーマットを吐き出すツールを作る必要があると思うんだけど、
もういいや。

>>924>>928
情報ありがとう。知らなかったよ。
0930名前は開発中のものです。2005/10/16(日) 17:01:24ID:0gQNvyRR
何か凄いアホが紛れ込んでるな。
09319252005/10/16(日) 17:01:39ID:uNCcPNGN
文字列情報が固定されているゲームに限定してレスしてしまった。すまそ。
動的な文字列の場合はやっぱりそのまま生成して使うんかな。
まあどうでもいいか。
09329252005/10/16(日) 17:04:24ID:uNCcPNGN
はいはい、君は僕より頭がいい。
0933名前は開発中のものです。2005/10/16(日) 17:46:45ID:ePu+oMfg
TTF_RederUTF8_XXXを使う場合でも1フレーム毎にsurfaceを
生成するなんてアホなことはしない.文字列のsurfaceが欲しい
シーンに入るときにsurface作ってそのシーンから抜けるときに
SDL_FreeSurface()する.

文字と矩形を対応させて文字列を描画する方法はASCIIコード程度なら
やるけど日本語ありの場合は必要な文字だけをレンダリングしたとしても
莫大なメモリを食うのでやっぱりやらない.
0934名前は開発中のものです。2005/10/16(日) 19:04:17ID:9sHmJEZ2
>>933
> 文字と矩形を対応させて文字列を描画する方法はASCIIコード程度なら
> やるけど日本語ありの場合は必要な文字だけをレンダリングしたとしても
> 莫大なメモリを食うのでやっぱりやらない.
日本語でも、αチャンネルだけのテクスチャにするとかでメモリ使用量押さえたらなんとかならんかな?
やったことないんで想像で言ってるだけだが
09359252005/10/16(日) 19:15:54ID:uNCcPNGN
>>933
使う文字列が多い場合、シーン毎に細分化してもメモリ使用量は変わらんがな。結局使うんだから。
ましてMMOのチャットなんかで動的に必要な場合はシーンで確保なんかできない。
09369302005/10/16(日) 19:37:31ID:0gQNvyRR
正直スマンかった。アホじゃなくて池沼だわ。
09379252005/10/16(日) 20:15:33ID:uNCcPNGN
優越感に浸りたいだけの馬鹿でなければ指摘していただきたい。
それとも文章力が無いのか、面倒臭がりなのか。
09389252005/10/16(日) 20:21:33ID:uNCcPNGN
>>936
じゃなきゃ誰も君のレスに何の価値を感じないよ。
君はそのレスを書き込むことに何か意義を感じるのかい?
「925は馬鹿だな」って、一緒になって賛同してくれるレスが欲しいのかい?
くだらねえ。
09399252005/10/16(日) 20:23:46ID:uNCcPNGN
病んでるな俺
SDL_ttfで首吊ってきます
さようなら
0940名前は開発中のものです。2005/10/16(日) 22:34:38ID:eOr9iAiX
晩ご飯までには帰ってくるのよ。
0941名前は開発中のものです。2005/10/20(木) 23:34:54ID:W3zgiMmJ
SDL
SD
S
SD
SDL
0942名前は開発中のものです。2005/10/23(日) 17:17:59ID:M214XGzK
g++
g+
g

+
++
++g
0943名前は開発中のものです。2005/10/26(水) 15:51:54ID:VPhwa+P3
ライセンスゆるくなるのかねぇ…?
ttp://www.devolution.com/pipermail/sdl/2005-October/070939.html
0944名前は開発中のものです。2005/11/02(水) 02:51:15ID:Hh29B0Am
>>943
まじで? もしそうなるとしたら、SDLを選択肢に選ぶ人はもっと増えるかもしれないね。
ところでSDL2.xっていつ頃になるんだろう?
0945名前は開発中のものです。2005/11/05(土) 20:50:59ID:4J6RfiW+
borland C++ compilerでSDL_gfxを導入したいんだけど、導入方法が
分からないので、教えてほしいのですが。
0946名前は開発中のものです。2005/11/06(日) 17:47:38ID:HW9Qh6Q9
>>945
こんな感じでMakefileを書いてコンパイルすればいいでしょう。
-----------------------------------------------------------
CC=bcc32
RC=brc32
ILIB=implib
CFLAG=-WD -3 -O2 -w- -AT -pc -H- -k -b -DWIN32 -DBUILD_DLL
CINCS=-I..\include
TARGET= SDL_gfx.dll
LIB= SDL_gfx.lib
SRC1= SDL_imageFilter.c
OBJ1= SDL_imageFilter.obj
SRC2= SDL_gfxPrimitives.c
OBJ2= SDL_gfxPrimitives.obj
SRC3= SDL_framerate.c
OBJ3= SDL_framerate.obj
SRC4= SDL_rotozoom.c
OBJ4= SDL_rotozoom.obj
LIB1=..\lib\SDL.lib

0947名前は開発中のものです。2005/11/06(日) 17:48:36ID:HW9Qh6Q9
つづき

TARGET: $(TARGET)

$(TARGET): $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4)
$(CC) $(CFLAG) -e$(TARGET) $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(LIB1)
$(ILIB) $(LIB) $(TARGET)
$(OBJ1): $(SRC1)
$(CC) $(CFLAG) $(OUTDIR) $(CINCS) -c $(SRC1)
$(OBJ2): $(SRC2)
$(CC) $(CFLAG) $(OUTDIR) $(CINCS) -c $(SRC2)
$(OBJ3): $(SRC3)
$(CC) $(CFLAG) $(OUTDIR) $(CINCS) -c $(SRC3)
$(OBJ4): $(SRC4)
$(CC) $(CFLAG) $(OUTDIR) $(CINCS) -c $(SRC4)
-----------------------------------------------------------
09489252005/11/07(月) 12:44:31ID:TpJBaBVO
>>946
どうも。レスありがとうございます。メイクファイルを見ました。
上記のmakeをborlandのmakeコマンドで実行してみましたが、何もエラーだとか
何も反応がないので、少し修正しました。borlandのmakefileって小括弧じゃなくて中括弧で書くみたいなので、一応中括弧に直してmakeしました。
修正した所だけ書くと、
OBJ= SDL_imageFilter.obj SDL_gfxPrimitives.obj SDL_framerate.obj SDL_rotozoom.obj
$(TARGET) : $(OBJ)
$(CC) $(CFLAG) -e$(TARGET) $(OBJ) $(LIIB1)
$(ILIB) $(LIB) $(TARGET)
.c.obj :
$(CC) $(CFLAG) $(CINCS) -c $<
修正したmakefileが今手元にないけど、こんな感じにしたら、ちゃんと動きました。
一回、失敗してSDL.libをリンクしてなくてプロシージャが見つからないってエラーが出てきましたが、
ちゃんと$(CC) $(CFLAG) -e$(TARGET) $(OBJ) $(LIIB1) という感じに$(LIB1)を入れたらうまくDLLと
ライブラリが作れました。
# $(OUTDIR)って定義されてないけど、これは何でしょうか?
09499462005/11/07(月) 20:00:12ID:fJubQ/K/
>>948
BCC Developerが
http://www.hi-ho.ne.jp/jun_miura/
はいたMakefileをDOS用に適当に編集しただけなので
細かいことは良く分かりませんが、

>$(OUTDIR)って定義されてないけど、これは何でしょうか?

生成物の出力先を指定するときに使うんだったと思います。
09509252005/11/08(火) 10:03:40ID:S6wiWkHj
>>946
どうもレスありがとうございます。なるほど、オブジェクトファイルの保存ディレクトリですか。
SDL_gfxの配布ファイルにはVCのメイクファイルしか入ってなくって、BCCでのビルド無理だからVC買おうかと思ってましたが、質問してよかったです。
BCC Developperですか。長いことずっとコマンドライン作業だったので、Developerすごく便利そうですね。今度から使ってみます。
0951名前は開発中のものです。2005/11/20(日) 18:36:24ID:vG0RaijI
cygwin 環境に SDL 1.2.9 を入れてみたけど SDL_Init(SDL_INIT_VIDEO) を呼ぶと、
gdb でデバッグするとき変なことになってます
(SDL_Init と SDL_Quit を呼ぶだけのプログラムで)

5 if(SDL_Init(SDL_INIT_VIDEO)<0) {
(gdb)
warning: Hooking
warning: C:\..\TEST.EXE
warning: RPH:Injecting code at start up
warning: done...
warning: RPH:DDraw Hooked!

こんな感じのメッセージが出て、以降普通にステップ実行できるけど、
main から抜けても gdb とアプリが終了してくれない

ddraw.dll? を hook したよ、とか言ってますがこれが元凶だろうか
ちなみに SDL_Init(SDL_INIT_NOPARACHUTE) と SDL_Quit だと
問題は起こらない

cygwin + SDL でデバッグできない、なんて話は検索しても皆無だし、
どなたか情報ありませんかね?

SDLビルド時のオプションなどは、ここに書いてある通りに実行しました
http://cefiro.homelinux.org/topics/SDL/setup-win32-cygwin.html
0952名前は開発中のものです。2005/11/21(月) 12:52:23ID:wOS82bbj
wesnothというSDLなゲームで日本語入力できるようにしようとしているのだけど、どの手段がいいのかなぁ。
今はSDL_imとか試しているけど。
フォントレンダリングも少しアレげなんでsdl-pangoとか検討してみたり。
ここまでやるとなると、日本語入力に関してはgtk+を直に使った方がよい気がしてきたり…
0953名前は開発中のものです。2005/11/21(月) 13:29:05ID:wOS82bbj
なんかアホなこと書いた気がする。さすがにgtk+はむりか。必要な時だけ呼び出せるわけじゃないし。
ximにモディファイアキー喰われてしまって困っていますが、SDL_imでがんばってみます。
0954名前は開発中のものです。2005/11/24(木) 13:18:22ID:wtYtRNgo
>951
cygwinでは全く経験無いのでわからないけど、
DDrawフックが怪しいと思うなら、
SDL自体を ENABLE_DIRECTX を外してmakeしてから試せばいいでしょう。
DIRECTXモジュールがSDLに含まれないなら、少なくともDDRAWの疑いは晴れる。

外し方は自分で調べてな。
configureで --disable-use_directxとか??
直接makefileから -DENABLE_DIRECTX を外すか。
0955名前は開発中のものです。2005/11/25(金) 14:25:57ID:j4sp1PuY
>>954
サンキュー
そういう手段もあるのか

どうも、この怪しいメッセージ、OmegaDriverが出してるっぽくて
このフックだけ外す方法を模索中
ノートPCなんだけど、標準ドライバだとpivot表示ができないから
OmegaDriver自体を使わない、というのはちょっと困る
0956名前は開発中のものです。2006/02/05(日) 18:29:11ID:rbHrat23
SMPEGをVC++6でコンパイルする方法を教えて頂けませんでしょうか?
ググってみたのですが、どこにも解説しているサイトがなくて…。
0957名前は開発中のものです。2006/02/05(日) 18:29:48ID:rbHrat23
済みません、sage忘れてましたorz
0958名前は開発中のものです。2006/02/06(月) 00:27:25ID:5IybunEz
別にsageんでもいいと思うけど。。。
どこで詰まってるんだ?
コンパイルエラーくらい出して欲しい。
0959名前は開発中のものです。2006/02/06(月) 00:29:52ID:5IybunEz
あ、コンパイルエラーは関係ないな、失礼した
0960名前は開発中のものです。2006/02/06(月) 15:41:28ID:rydF6b7m
smpeg-0.4.4でVisualC.zipを解凍して中の
smpeg.dswやsmpeg.dspを実行してみたのですが、
エラーが出て先に進めないのです。
bzlibの時はすんなりいったのですが…。
0961名前は開発中のものです。2006/02/08(水) 22:59:58ID:xyX2pKcU
どういうエラーメッセージが出ましたか?

って聞かれなきゃ言わないのか?最近の厨房様は。
0962名前は開発中のものです。2006/02/15(水) 04:54:30ID:8jsP3/R6
>>961
お願いしますが抜けてる
0963名前は開発中のものです。2006/02/15(水) 05:06:44ID:pkFtH0Nj
なるほど
0964名前は開発中のものです。2006/02/15(水) 20:55:07ID:dIpuR5PY
960はただエラーが出たと書きたかっただけで、
解決策は求めていないということね。
0965名前は開発中のものです。2006/02/15(水) 23:37:57ID:kemyKw4O
bccですが初心者の初心者による初心者のためのSDLさん(ttp://tokyo.cool.ne.jp/sdl/)の
コンパイルテストを実行すると
エラー E2046 D:\Source\BCB\SDL_Test\main.cpp 1: include 指令のファイル名の書式が正しくない
エラー E2141 D:\Source\BCB\SDL_Test\main.cpp 14: 宣言の構文エラー
エラー E2268 D:\Source\BCB\SDL_Test\main.cpp 20: 未定義の関数 'printf' を呼び出した(関数 main(int,char * *) )
エラー E2451 D:\Source\BCB\SDL_Test\main.cpp 28: 未定義のシンボル SDL_Rect(関数 main(int,char * *) )
エラー E2379 D:\Source\BCB\SDL_Test\main.cpp 28: ステートメントにセミコロン(;)がない(関数 main(int,char * *) )
エラー E2451 D:\Source\BCB\SDL_Test\main.cpp 29: 未定義のシンボル dest(関数 main(int,char * *) )
エラー E2451 D:\Source\BCB\SDL_Test\main.cpp 31: 未定義のシンボル Uint32(関数 main(int,char * *) )
等のエラーが大量に出て失敗するのですが、導入部分でどこが間違っているのでしょう?
一通り見直してやり直してみましたがまったく出来ませんので…
0966名前は開発中のものです。2006/02/15(水) 23:49:33ID:kemyKw4O
と思ったら
includeの先に何も無かったので<SDL/SDL.h>を付けてみたら一発成功でした。
お騒がせしてすいません
0967名前は開発中のものです。2006/02/16(木) 12:16:03ID:4CJdjj+H
Mac OS X 10.3.9なんですが,かなり初歩的な質問をさせてください
SDL-1.2.9フォルダをホームにおいてSDL-1.2.9フォルダにて./configure、make、sudo make install
でSDLをインストールしました(エラーは出ませんでした)
とりあえずしっかりパスが通っていてSDLがインストールされているのを確認するにはどうすればいいんでしょうか?
パスはホームの.tcshrcにsetenv PATH /usr/local/bin:/SDL-1.2.9:$PATH
と記述しただけで通したつもりになっています…。
0968名前は開発中のものです。2006/02/16(木) 13:45:55ID:FEuy8yUB
サンプル動かしてみれば?
testの下にいろいろ入ってる。
testwinあたりでもどう?

それはさておき /SDL-1.2.9 に入れてそこにパス通すのはどんなもんよ。
0969名前は開発中のものです。2006/02/16(木) 15:13:14ID:4CJdjj+H
>それはさておき /SDL-1.2.9 に入れてそこにパス通すのはどんなもんよ。
すいません正直パスを通す意味がよく分かってません

/SDL-1.2.9/testにて
cc testwin.c `sdl-config --cflags --libs`でコンパイルしたらとんでもないくらいエラー出ました。
あきらかに各種ファイルの不足によるものばかりなのでtestに不足ファイルをいれれば成功しそうですが
それではプログラムを作るたびにそのディレクトリに必要ファイルを入れなければなりません。

どのディレクトリででもSDLのプログラムをコンパイルし実行するにはどのようにすればいいのでしょうか?
0970名前は開発中のものです。2006/02/16(木) 17:45:49ID:FEuy8yUB
それはSDLの知識やC言語の知識というより、
OSやUNIX上のC開発の知識になってしまうので
ここで一から教わろうってのは厳しいかもね。
おれもMacOSのシステム構成とか知らんし。

とりあえず cc付けないで
sdl-config --cflags --libs
これだけで実行してみた?
多分そこから動いてないのだろうけど
そこから先は手探りなんじゃないかな。
0971名前は開発中のものです。2006/02/16(木) 19:07:44ID:RDmCVz1R
>>970
あなたが知らないのならわかる人を連れてきてください。
それすらできないようならあなたなんかに用はありません。
0972名称未設定2006/02/16(木) 19:18:34ID:6HFR4Et4
最近は bash が Mac OS X のデフォルトのログインシェルなんで、
~/.cshrc に書いても読まれていない罠の可能性が… ( echo $SHELL すればわかる、かも)
~/.bashrc とかに書かなきゃいけないかもよ?

とにかく、エラーがとんでもなくでたんならそのエラーと
そのときのコマンドラインを貼り付けれ。
長すぎて迷惑だと思うならどこか手軽なアップローダを探せばいい。

新・mac板に行ってTerminal初心者スレあたりでたずねることも検討しなさいな。
初心者だって開発してみたいだろうさ。
0973名前は開発中のものです。2006/02/16(木) 20:24:20ID:4CJdjj+H
シェルをtcshからbashに変えて
~/.bash_profileにexport PATH=$PATH":/SDL-1.2.9"と記述しました

~/SDL-1.2.9 および ~/SDL-1.2.9/testにて
sdl-config --cflags --libsだけで実行すると
-bash: sdl-config: command not found

~/SDL-1.2.9にて
./sdl-config --cflags --libsで実行すると
-I/usr/local/include/SDL -D_THREAD_SAFE
-L/usr/local/lib -lSDLmain -lSDL -framework Cocoa -framework OpenGL
となりました。これはこのディレクトリ内にsdl-configがあるので当たり前なんですが…
0974名前は開発中のものです。2006/02/16(木) 20:39:00ID:4CJdjj+H
~/SDL-1.2.9/testにて
cc testwin.c `sdl-config --cflags --libs`を実行すると

cc: sdl-config --cflags --libs: No such file or directory
testwin.c:12:17: SDL.h: No such file or directory
testwin.c:14: error: parse error before '*' token
testwin.c: In function `DrawPict':
testwin.c:17: error: `SDL_Surface' undeclared (first use in this function)
testwin.c:17: error: (Each undeclared identifier is reported only once
testwin.c:17: error: for each function it appears in.)
testwin.c:17: error: `picture' undeclared (first use in this function)
testwin.c:18: error: `SDL_Rect' undeclared (first use in this function)
testwin.c:18: error: parse error before "dest"
testwin.c:21: error: `SDL_Color' undeclared (first use in this function)
testwin.c:21: error: `colors' undeclared (first use in this function)
testwin.c:21: error: `cmap' undeclared (first use in this function)
testwin.c:24: error: `bmpfile' undeclared (first use in this function)
testwin.c:38: error: parse error before ')' token
testwin.c:39: error: parse error before ')' token
testwin.c:47: error: parse error before ')' token
testwin.c:48: error: parse error before ')' token
testwin.c:63: error: `screen' undeclared (first use in this function)
testwin.c:73: error: `Uint32' undeclared (first use in this function)
testwin.c:73: error: parse error before "black"
testwin.c:74: error: `Uint8' undeclared (first use in this function)
testwin.c:74: error: `pixels' undeclared (first use in this function)
testwin.c:76: error: `black' undeclared (first use in this function)
testwin.c:77: error: parse error before ')' token
testwin.c:88: error: `speedy' undeclared (first use in this function)
testwin.c:89: error: `displayfmt' undeclared (first use in this function)
0975名前は開発中のものです。2006/02/16(木) 20:40:31ID:4CJdjj+H
testwin.c:102: error: `SDL_HWSURFACE' undeclared (first use in this function)
testwin.c:107: error: `dest' undeclared (first use in this function)
testwin.c:113: error: `update' undeclared (first use in this function)
testwin.c:118: error: `flip' undeclared (first use in this function)
testwin.c:135: error: `nofade' undeclared (first use in this function)
testwin.c:137: error: parse error before "final"
testwin.c:140: error: parse error before "Sint16"
testwin.c:140: warning: no semicolon at end of struct or union
testwin.c:141: error: `cdist' undeclared (first use in this function)
testwin.c:145: error: `maxstep' undeclared (first use in this function)
testwin.c:146: error: `final' undeclared (first use in this function)
testwin.c:149: error: `palcolors' undeclared (first use in this function)
testwin.c:96: error: label `done' used but not defined
testwin.c: At top level:
testwin.c:220: error: parse error before ':' token
testwin.c:223: warning: parameter names (without types) in function declaration
testwin.c:223: error: conflicting types for `free'
/usr/include/stdlib.h:136: error: previous declaration of `free'
testwin.c:223: warning: data definition has no type or storage class
testwin.c:223: warning: parameter names (without types) in function declaration
testwin.c:223: warning: data definition has no type or storage class
testwin.c:224: error: parse error before "return"
0976名前は開発中のものです。2006/02/16(木) 20:41:22ID:4CJdjj+H
testwin.c: In function `main':
testwin.c:229: error: `SDL_Surface' undeclared (first use in this function)
testwin.c:229: error: `screen' undeclared (first use in this function)
testwin.c:235: error: `Uint32' undeclared (first use in this function)
testwin.c:235: error: parse error before "video_flags"
testwin.c:247: error: `video_flags' undeclared (first use in this function)
testwin.c:302: error: `SDL_HWPALETTE' undeclared (first use in this function)
testwin.c:307: error: `SDL_HWSURFACE' undeclared (first use in this function)
testwin.c:312: error: `SDL_DOUBLEBUF' undeclared (first use in this function)
testwin.c:317: error: `SDL_FULLSCREEN' undeclared (first use in this function)
testwin.c:324: error: `SDL_INIT_VIDEO' undeclared (first use in this function)
testwin.c:329: error: `SDL_Quit' undeclared (first use in this function)
testwin.c:353: error: `then' undeclared (first use in this function)
testwin.c:355: error: `now' undeclared (first use in this function)
0977名前は開発中のものです。2006/02/16(木) 21:18:11ID:/cQBzdnu
>>974 とりあえずはこれでいいかも

cc testwin.c -I. -D_THREAD_SAFE -L. -lSDLmain -lSDL -framework Cocoa -framework OpenGL

シェルの使用法がわかっていないようなので、
先にそちらを理解してからのほうがいいと思う。
0978名称未設定2006/02/16(木) 21:31:05ID:6HFR4Et4
ヒマだから付き合うけど

書き方が悪かったかもしれないけど、別に bash を使え、と強制しているわけじゃないよ。
Linux ユーザーには bash を使う人が多いので、その分情報収集に有利かもしれないけど。

~/SDL-1.2.9 とは $HOME/SDL-1.2.9 のことで、 Mac OS X では普通は
/Users/$USER のこと。 $USER は >>976 のユーザー名ね。
~/SDL-1.2.9 にパスを通したいなら、

export PATH="/Users/nanashitan/SDL-1.2.9:$PATH"

なり、

export PATH="~/SDL-1.2.9:$PATH"

なり書く必要がある。 >>973 で書いた書き方 (export PATH=$PATH":/SDL-1.2.9") だと、
起動ディスクの直下に SDL-1.2.9 を置いていて、そこにパスを通したい場合の書き方になる。
(古めかしい書き方だと Macintosh HD:SDL-1.2.9: とかいうことね。)

起動ディスクの直下にモノをごちゃごちゃ置くのはお勧めできないので、
>それはさておき /SDL-1.2.9 に入れてそこにパス通すのはどんなもんよ。
みたいなツッコミが入ることになる。
0979名称未設定2006/02/16(木) 21:47:01ID:6HFR4Et4
で、パスを通す、の意味なんだが…

>>973 は ~/SDL-1.2.9 にコマンドを置いているので、何も考えずに
$ ~/SDL-1.2.9/sdl-config

とコマンドを入力しても正しく動作するのだよ。いちいち ~/SDL-1.2.9 と
タイプするのが面倒な人は、環境変数 PATH に ~/SDL-1.2.9 を追加しておく、と。
で、環境変数の設定方法が bash では export だ、ということ。

SDL のインストールが(ソースからやったなら make install まで)終わっているなら、
おそらく /usr/local/bin に sdl-config もインストールされていると思うので、
/usr/local/bin/sdl-config としてもいいし、 PATH に /usr/local/bin を登録しておくのもよいかと。

俺の場合、 Fink っつーパッケージ管理システムを使っているので、
/usr/local は使わないことにしているんだけどね。これは余談。

あと、 `` は、中のコマンドの出力結果で置き換えるためのカッコ。
>>977 を見ればピンとくるだろうか。

いろいろシェルの使い方を検索しつつがんばれ。
個人的にはまっさらに無知な春休みの学生が最低限どれだけの知識があれば
開発を始められるのか、興味深いところではあるw
0980名前は開発中のものです。2006/02/16(木) 22:24:14ID:4CJdjj+H
ID:6HFR4Et4さんありがとうございます!!
おかげさまでパス通りました!

>>977さんのコンパイル方法をやってみましたが
全く同じエラーが出たのでまだ入れなければいけないものがあるんでしょうね
本家サイトからとってきて試したいと思います
0981& ◆F7sVjZIqRE 2006/02/16(木) 22:28:20ID:6HFR4Et4
まったく同じじゃないでしょう。少なくとも
「cc: sdl-config --cflags --libs: No such file or directory」の行が消えたはず。
エラーのはじまりと終わりは重要なことが多いので、気をつけて。

で、 /usr/local/lib とか /usr/local/include が
Mac OS X ではデフォルトでリンカのパスに含まれていないので、

gcc のコマンドラインに -I/usr/local/include -L/usr/local/lib を入れてみな。
0982名称未設定2006/02/16(木) 22:32:32ID:6HFR4Et4
っと。間違えた。ごめ。
とりあえず、パスが通ったんなら

cc testwin.c `sdl-config --cflags --libs`

を初心に返って試してみなされ。
0983名前は開発中のものです。2006/02/16(木) 22:36:59ID:4CJdjj+H
コンパイルできちゃいました…
でも実行はどうやって?
./testwinではないのでしょうか?
重ね重ねすいません…
0984名称未設定2006/02/16(木) 22:54:48ID:6HFR4Et4
ここからはSDLスレの住人の出番ではなかろうか。
とりあえず、エスパー的に回答すると

cc のコマンドラインに -o testwin を付けてみればいいに 1ペリカ。
0985名前は開発中のものです。2006/02/16(木) 23:55:15ID:4CJdjj+H
ID:6HFR4Et4さんtestwin実行成功しました
ありがとうございました

いろいろサンプルプログラムを実行していましたがSDL_imageなしで画像を読み込んで使っているプログラムがありましたが
SDL_imageはどのような場合に必要なのでしょうか?これなしでは画像は使えないと思っていました…
0986名前は開発中のものです。2006/02/17(金) 00:18:25ID:9Dty7h0+
すいません、よく考えたら聞き過ぎですね(汗
自分でがんばってみます。
ありがとうございました。
0987名前は開発中のものです。2006/02/17(金) 05:35:05ID:PbVp7kBa
>>985
ttp://zinnia.dyndns.org/~cvsweb/sdldoc-jp/
ここのリファレンスをよくみれば、BMPファイルを読み込み
扱う機能があることはわかる

SDL_imageはその他のいろいろな形式の画像ファイルを
読み込む機能を提供してくれているだけ
ただ、SDL_imageやSDL_gfxなど、補助ライブラリについても
詳しく知りたいなら英語のドキュメントを覚悟してください
レス数が950を超えています。1000を超えると書き込みができなくなります。