SDLスレ
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
01/11/11 17:59ID:u0HMN7qCSDLについてのスレッドです。
最新情報、参考になるソース、質問等
とりあえず、本山
http://www.libsdl.org/
0072名前は開発中のものです。
02/02/23 15:21ID:???SDL_SetEventFilter() 使ってメッセージをフックすれ。
フック後の処理を別スレッドしたいなら、フック関数内でスレッド生成すれ。
あとmutex忘れるなよ。
007371
02/02/23 20:17ID:+rToCvhxあ..なるほど...! この手法ならうまく書けそうですね。
72さんご助言大変参考になりました。ありがとうございます!
0074名前は開発中のものです。
02/02/23 21:30ID:???がんばれヨ。
あと質問する前にリファレンスをじっくり見ような。
英語が辛いならこーいのもあるぞ。(ちと古い&有名すぎるが。)
http://www.wakhok.ac.jp/~momma/SDL/
007571
02/02/26 07:13ID:nHGqkL6j数日かかりましたが、別スレッドでうまく動かせるようになりました。(^^;)
74=72?さんのおかげです。ありがとうございました。
ようやくスタートラインでゴールは遠いですが…。
これからはリファレンスじっくり見るように心がけます。
007671=75
02/02/26 11:35ID:O5eBq1eXSDL_SetEventFilter() のフィルタリングは SDL_PumpEvents() の直後
にしか発生しないようでした。私としては、PumpEvents とは非同期で
イベントが発生したときに来ると思っていたのですが
SDL_PumpEvents() で汲み取らないとフィルタリングも発生しないようです。
ある時点のマウスの状態をそのまま取得できれば良いのですが…
そういう関数は無いですよね…。どうしたら良いのでしょうか…。
--- モニタ ---
[VIDEO/CORE] ユニットイニシャライズ
[CORE] 処理開始(インターバルタイム 25 ms)
[CORE] フレーム 9 : マウス( 590, 242 )
[VIDEO] シーン描画開始(CondSignalを受けて)
[CORE] フレーム 10 : マウス( 292, 466 )
:マウス位置の更新がフリーズ < フィルタリングが機能していない...? >
[CORE] フレーム 22 : マウス( 292, 466 )
[VIDEO] シーン描画終了(SDL_PumpEvents 実行)
[CORE] フレーム 23 : マウス( 148, 43 )
[CORE] フレーム 24 : マウス( 149, 21 )
[CORE] 終了リクエスト
[VIDEO/CORE] シャットダウン
0077お節介な72
02/02/27 00:33ID:???Document Projectのページ(http://sdldoc.csn.ul.ie/)をざっと見てみたら、
8.Events (http://sdldoc.csn.ul.ie/event.php)
Eventfunctions (http://sdldoc.csn.ul.ie/eventfunctions.php)
にチミが求めているモノらしい関数があったゾ。
・SDL_GetMouseState (http://sdldoc.csn.ul.ie/sdlgetmousestate.php)
書式:
#include "SDL.h"
Uint8 SDL_GetMouseState(int *x, int *y);
引数:
x,y … マウスポインタの座標を受け取るint型変数へのポインタorNULL値。
戻り値:
ボタンの状態。
SDL_BUTTON(X) マクロとの論理積をとる事で、X番目のボタンの状態を取出せる。
# リファレンスはブックマークしておくよーに。
0078お節介な72
02/02/27 00:35ID:???Document Projectのページ(http://sdldoc.csn.ul.ie/)をざっと見てみたら、
8.Events (http://sdldoc.csn.ul.ie/event.php)
Eventfunctions (http://sdldoc.csn.ul.ie/eventfunctions.php)
にチミが求めているモノらしい関数があったゾ。
・SDL_GetMouseState (http://sdldoc.csn.ul.ie/sdlgetmousestate.php)
書式:
#include "SDL.h"
Uint8 SDL_GetMouseState(int *x, int *y);
引数:
x,y … マウスポインタの座標を受け取るint型変数へのポインタorNULL値。
戻り値:
ボタンの状態。
SDL_BUTTON(X) マクロとの論理積をとる事で、X番目のボタンの状態を取出せる。
007976
02/02/27 02:06ID:JQVw0zDdGetMouseState は使っているのですが PumpEvents(またはPollEvent)を
呼ばないと、更新されないようで…。
えっと…、やりたいことは以下の通りなのですが(↓任天堂方式)
イベントスレッド:イベントだけを処理
ビデオスレッド:必要なら描画
メインスレッド:イベント・描画に関係なく一定時間で起動(コマ落ち対策あり)
SDLの制限ではビデオとイベントは分離できない仕様になっていて
ビデオ処理→イベント処理を繰り返し一つのスレッドで行わないといけないようです。
状態を取得したくても PumpEvents() を置かないと読みとってくれないので(^^;)
非同期で割り込みでイベントを感知する手段がSDLになくて、イベントの入力が
画面の描画後でしか読みとってくれない(^^;)です。
ビデオの速いマシンでは問題ないのですが、遅いマシンでは入力まで遅くなって
しまいます。(^^;)
これって、イベントドリブン式の弱点…なんですよね…。
リアルタイムゲームをつくるとき、イベント直後に割り込みでフックしてくるか
そのまま入力を読み取るパターンがないと困ると思うんですが、PumpEvents()
(PollEvent) が前提になってるみたいで…。
0080名前は開発中のものです。
02/03/09 01:07ID:cjQ6leFrwww-6.ibm.com/jp/developerworks/linux/sdl/sdl.html
0081名前は開発中のものです。
02/03/10 18:06ID:149HiR+ppart 5 made aruyo.
0082名前は開発中のものです。
02/03/18 08:47ID:???0083名前は開発中のものです。
02/03/18 08:48ID:5Rsci23c0084taku
02/03/18 13:52ID:???ゲーム作りに興味がある人は、メールをください♪
思っているだけで、まったくゲーム制作をしたことがない人でも結構です♪
とりあえず、私も少しは、やっていますが、初心者なので、みんなで勉強をしながらゲームを作っていきたいと思ってます♪
基本的に、web上でやる、フリーゲームで、ジャンルとしては、RPGを考えています。(いろいろなジャンルも作ろうと考えていますが・・・)
それでは、とりあえず、メールをください♪
0085名前は開発中のものです。
02/03/19 14:38ID:???0086名前は開発中のものです。
02/04/14 11:55ID:lp2DMwsU0087名前は開発中のものです。
02/04/14 11:56ID:lp2DMwsU0088名前は開発中のものです。
02/04/15 02:17ID:???安心したかい?
0089名前は開発中のものです。
02/04/15 22:40ID:???009087
02/04/17 01:40ID:B2sY58ogちょっと覚えるために弄ってたら、
簡単にMODが再生出来てかなり感動したんだけど、
みんなは、これに魅力を感じないのかな?
0091名前は開発中のものです。
02/04/17 09:04ID:JVlCUCtAお気楽だよね、SDL。
英語読むのたるいから、LinuxJapanの連載で情報収集してるけど、
周辺ライブラリも含めると、ほんと、楽。
Win用のソースをちょこっといじってLinuxで動いたときは
正直感動した。
>>89
SDLはLGPLだから、自分のソースをGPLにする必要ねーだろ。
DLLつかうか、リンク前のオブジェクトを一緒に配ればOKだ。
0092MLをRomってる七資産
02/04/17 11:09ID:???ライセンスの問題が把握できず躊躇している人が多いと思われ。
漏れもその一人だが。
>>91
SDL-MLの有志の方々がdocのja化を進めてます。
最近、SDLでデモ作るコーダーも少なからずいますね。
それらのアーカイブには、ソースついてないから、ソースはつけなくて・・・いいのかな?
0093名前は開発中のものです。
02/04/17 18:44ID:???0094名前は開発中のものです。
02/04/17 19:30ID:???009589
02/04/17 23:55ID:???RPG等の文字情報の多いゲームが作りづらいっつーか作れん。
AllegroでTTFを扱う為のライブラリがあったはずなんだが、
今は影も形も無い…
0096名前は開発中のものです。
02/04/18 06:46ID:???0097名前は開発中のものです。
02/04/19 14:03ID:???(ライブラリの設計見ただけで分かるけど(ワラ)
その辺の好みで使い分けるのもいいかも風来のシレン。
0098名前は開発中のものです。
02/04/24 06:39ID:es9pDMEYAllegro はゴテゴテしすぎ。
0099名前は開発中のものです。
02/04/24 13:35ID:???0100名前は開発中のものです。
02/04/24 21:51ID:???http://www.ya.sakura.ne.jp/~logion/SDLdoc-jp/
http://slashdot.jp/article.pl?sid=02/04/23/1458249&mode=thread
0101名前は開発中のものです。
02/04/27 10:11ID:???0102名前は開発中のものです。
02/05/01 14:49ID:???サウンドの再生。つーか、シンプルすぎてSDL_mixer使わんと、ちょっと...
0103名前は開発中のものです。
02/05/02 03:43ID:sX.bsevcスプライン曲線、ポリゴン、スプライト、テキスト描画といったもの、
サウンドではネイティヴでのMIDI再生だとか、
場合によっては余分な機能が含まれている。
SDLではグラフィックの描画はFillとBlitのみ。
サウンドはPCMを垂れ流すだけ、みたいな。
これはシンプルだと思うけどなー。
ま、なんでも自分でやりたい俺みたいのは SDL が好きだ、
という話。
ライブラリ内部の話となると、SDL もシンプルじゃないけどね。
0104名前は開発中のものです。
02/05/02 03:45ID:???こういうのが分離出来るようになっているほうが落ち着く。
0105名前は開発中のものです。
02/05/02 09:20ID:???DirectXと比較して(w
初代Direct3Dの初期化書いてみな。ゲイツ殺したくなるから。
0106名前は開発中のものです。
02/05/02 11:30ID:???書いたことあるけど、別に。
0107名前は開発中のものです。
02/05/02 12:29ID:???0108名前は開発中のものです。
02/05/02 18:18ID:???俺は二度と書きたくない。
何をどう初期化したのか後から見ても理解できんし。
初期化ごときに時間かけるのもアホらしい。
0109名前は開発中のものです。
02/05/02 18:47ID:???0110名前は開発中のものです。
02/05/02 23:06ID:???0111名前は開発中のものです。
02/05/03 00:49ID:???別にAllegroでもFillとBlitのみ利用して、
スプラインとかポリゴンは自分でってのは可能だと思うが。
ライブラリに余分なバイナリが含まれているからって、
実行形式ファイルも太るわけではないし。
むしろSDLのように複数のライブラリを組合わせて使うという方式は、
無駄(コードの重複)が生じやすい。
0112名前は開発中のものです。
02/05/03 11:52ID:QXZFUo7o0113名前は開発中のものです。
02/05/03 18:22ID:P7bmG2Tgmingwを使っています.
実行ファイルが
SDL.dllを必要としないように
コンパイルすることは可能ですか?
0114名前は開発中のものです。
02/05/04 01:19ID:???それはライセンス違反ですにょ。>>113
SDLはLGPLなのでソースを公開する、しないにかかわらず
DLLリンクで十分なはずです。
0115名前は開発中のものです。
02/05/04 02:46ID:IDR1uRSYLGPLの勉強します
0116113
02/05/04 02:50ID:IDR1uRSYmingwでリソースもコンパイルして
exeにいれますよね?
SDLのAPIみたら
画像の読み込みは
fileポインタ渡してたみたいなんです
これはどういうことなんですか?
あとexeに画像ファイルを埋め込むプログラムは
Linuxに移植は容易にできるのでしょうか?
0117名前は開発中のものです。
02/05/04 06:19ID:???実行ファイルに絵のファイルを結合してるだけなら、その実行ファイルと
絵の開始位置さえわかれば fileポインタで十分読み込めるのではないかと。
fp = fopen( ... ); fseek( fp, ... ); // 実行ファイルを開いて開始位置までシーク
ReadPicture( FILE *fp, ... ) {
fread( ... ); // いきなり読み込みでも開始位置まで来てるので問題ない
}
そこんところの仕組みがわからないけど、(WINネイティブな何かを使っているのか)
仕組み的には難しくなさそうですが…。
俺は素人なので偉い人タノム…。
0118名前は開発中のものです。
02/05/04 11:29ID:wX/OJnJI0119113
02/05/04 11:47ID:IDR1uRSYまだソース書いてないです
疑問に思ったもんで。
初心者でよくわからないのですが
fopenの引数はファイル名
だったと
>>118
見てみます
「書けば行けるんじゃない」
ということは
こんな風に普通はしないのですか?
画像はexeに入れないのでしょうか?
0120名前は開発中のものです。
02/05/04 12:39ID:???fileポインタって何の事を言っているのかちゃんと書けや、このボケが。
0121113
02/05/04 12:52ID:IDR1uRSYchar* filename
初心者でごめんなさい
0122名前は開発中のものです。
02/05/04 17:58ID:???数やサイズが結構あるなら実行ファイルと他データをまとめた
データファイルに分けるほうがスマートだと思う。
SDLを使うとかに関わらず・・・。
0124名前は開発中のものです。
02/05/04 20:33ID:???小細工しながら固めるけど趣味でSDL使うんなら、
外部から生のファイルを読むようにオープンに作ってほしいね。
0125名前は開発中のものです。
02/05/04 20:52ID:???0126名前は開発中のものです。
02/05/04 21:06ID:???wavが見えたら
冷めるから
一個に固めたいです
0127名前は開発中のものです。
02/05/04 22:50ID:???俺は、wav見えても気にしないけど、そーゆー問題じゃないんだよね?
root権を使わせてもらってもいいなら、ext2フォーマットのファイル
システムイメージを配って、それをloopディバイスつかってmountして
読み込ませるってのも手だねぇ。もちろん、ローダの中で自動化して
しまえば、ユーザには(表立っては)見えない。
普通は、中身をtarファイルにしておいて、実行時に/tmpに展開ってのかな。
HDDの空き容量必要だけど。
0128名前は開発中のものです。
02/05/04 23:12ID:???なかなか難しいですね
レスありがとうございました
研究してみます
0129名前は開発中のものです。
02/05/04 23:23ID:???OSに依存しそうだな・・・せっかくのSDLやAllegroが・・・。
0130名前は開発中のものです。
02/05/05 00:57ID:???がんばれやとしかいえんな。萎え。
0131名前は開発中のものです。
02/05/05 05:20ID:???データが見えて萎える? つまんねー奴だな。
データを簡単に交換出来れば色々改造出来て楽しいだろーが。
0132名前は開発中のものです。
02/05/05 06:49ID:???生でも気が付かないものだ。
というか、実際気が付かないことが多かった。
0133名前は開発中のものです。
02/05/06 03:48ID:1PpldsKY> bcc32 -tW -O2 -DWIN32 -c SDL_main.c
しようとすると Must use C++ for STDCOMP.H というエラーが出てしまい、
だったらと今度は -P をつけると今度は
$(bcc)\include\alloc.h 107: オーバーロード関数群の中の一つだけしか"C"にできない
などと怒られてしまいます。
どうしたらいいのでしょうか?
0134偽ASIMO
02/05/06 08:00ID:???どうしたら良いんだろう。
0135_
02/05/06 09:05ID:???0136名前は開発中のものです。
02/05/06 18:16ID:U532U/fU(無効にしてコンパイルされている)んじゃない?
0137名前は開発中のものです。
02/05/07 09:25ID:???http://www.gnu.org/licenses/gpl-faq.ja.html
SDLは、LGPL(FAQ訳では劣等GPL)だから、もっと緩いけど。
0138宣言されていない名前
02/05/14 18:42ID:???サイキョーまんせー。
0139名前は開発中のものです。
02/05/14 21:44ID:x.mXxrcs0140名前は開発中のものです。
02/06/13 11:18ID:???日本語入力に関しても解決の兆しが…?
0141名前は開発中のものです。
02/06/17 14:14ID:???0142名前は開発中のものです。
02/06/28 01:18ID:EdGR6DaM0143名前は開発中のものです。
02/09/09 02:42ID:???, ‐ァ'⌒ヾヽ ァ'⌒-‐-、
{___{==O}}.}⌒ ⌒ー-::,,.}ユ、 ∧∧
r「-‐ヾ、ァ'´,::'´/ハヾ::、、ヽ、ノ < 2
ハ _,、_/:::/::::/ ノ }ノ \i} ト、 < g
. /:..l`ト⌒ヾ.、::/⌒` ⌒`// .:ヽ. < e
{:::::|::iヽ、 、 ){ァ'T.ヽ .ハヾ/ハ::::::::l < t
ヾ、::l ヽ 'ヾ:l {__ツ {ツ.'{ノ .l:i::ツ. < !
ヾ ハ ,__ト, ''.'' (⌒ ツ::} レ'^ < !
〉ニ,,_ノヽ` ー‐''´ヾシ' < !
l、 ノl/iニ)、ヾ、 <!!
`} '´ 〈 〉^ツ ∨∨
/ == `ー' 〉‐っ
/、_...._ ヾ〉┘
〈ー、 ,,..,, .``ヽ、... ,べヽ
 ̄ ~`´iー`ヽ、_,,..=-、ハノ
l | | l
{,、,、,i, l,、,、|
[ ェュソ[ ,ェ}_
F=ィ⌒ヽ =ィ'⌒ヽ
[、_ノ⌒l_ノ⌒}
0144フォント使いたい
02/09/09 19:58ID:bRdadYVofreetypeをインストールしたあと、SDL_ttfでリンクに失敗してしまいます。
コンパイルオプション等を付け加えなければいけないのでしょうか。
情報お持ちの方、よろしくお願いします。
0145名前は開発中のものです。
02/09/12 06:36ID:???エラーメッセージをコピペしてみてちょ。
0146名前は開発中のものです。
02/09/24 20:22ID:???http://cefiro.homelinux.org/SDL/sdl-devel-msys.html
0147超初心者
02/10/10 03:49ID:TCFGsPft落としたファイルは"SDL-devel-1.2.5a-VC6.zip"です。
解凍後出来たサブディレクトリ"Include"と"lib"はVC6.0のどこに入れたらいいんでしょうか?
また何か設定があるのでしたら是非教えてください!! お願いします!!
0148名前は開発中のものです。
02/10/10 08:01ID:???ツール->オプション の ディレクトリ を
選択して、インクルードファイルとライブラリ
ファイルの場所をそれぞれ指定すれば良い
のではなかろうか。よく知らんけど。
0149名前は開発中のものです。
02/10/13 01:14ID:7Mz0/fi+するんでしょうか?
0150名前は開発中のものです。
02/10/13 05:49ID:???0151名前は開発中のものです。
02/10/14 16:08ID:???0152名前は開発中のものです。
02/10/19 18:08ID:???↑のとおりにやったんだがmp3が鳴らねえです。
oggとかmodは鳴るんだがなあ。
なんか他に必要なもんとかあるのかしら。
0153名前は開発中のものです。
02/10/19 18:55ID:???BCCで遊んでたときにWindowsフォルダにつっこんでたDLLが
呼ばれてたぽいでした。迂闊。
0154問題提起
02/10/21 21:47ID:???開発者としては好きなものを組み合わせて作れる、
という大きなメリットになんですが、遊ぶ側としてはどうでしょう?
個々に集めるのは面倒ですし、同梱は若干無駄(場合によってはGPL違反)です。
別々のアーカイブにまとめて一緒に配布、というのが理想だと思いますが、
旧Verのdllを持ってるユーザーが、本体のみ落としてエラーに悩む、
といったバージョン管理の問題や、dll配布元へのリンクのみ掲載していた
場合のリンク切れ、といった問題もあります。
この辺、一度考えるべきだと思ったのですがどうでしょう。
0155名前は開発中のものです。
02/10/25 11:16ID:???スタティックライブラリにコンパイルすれば良いんでは?
0156名前は開発中のものです。
02/10/25 12:22ID:???ソース非公開のゲームとかに SDL をスタティックにリンクして配布
したら LGPL 違反になったりしない??
0157名前は開発中のものです。
02/10/25 22:30ID:???本家
http://alleg.sourceforge.net/
ポータル
http://www.allegro.cc/
FontLiblary。日本語表示の際必須。
http://nekros.freeshell.org/delirium/alfont.php
機能が集約されている分、必要なdllの数が少なく済む上、
ライセンスが緩いから安心してstaticlinkできる。
周辺LibはGPLも混じってますが。
(上に挙げたALFontはBSDライク)
0158名前は開発中のものです。
02/10/26 05:32ID:???インストール時か初回実行時に DLL を自動ダウンロード。
0159名前は開発中のものです。
02/10/26 16:27ID:???0160名前は開発中のものです。
02/10/26 17:25ID:???0161名前は開発中のものです。
02/10/27 01:43ID:???Windows でバイナリを配布する場合の話だとして…
>同梱は若干無駄(場合によってはGPL違反)です。
同封してGPL違反ってのはどういう場合なんでしょうか??
俺は開発に使ったdllをゲームに同封するのが最善…っていうか
別配布は現実的じゃないと思ってるんだけど…
理由はバージョンよるAPIの非互換性だけじゃなくて各種dllをコンパイル
するときのオプションによっても使える機能(oggやmp3の再生は?とか)
が変るせいで,他サイトで配布しているdllが自分の作ったゲームに
使えるかわからない.
一元的な配布元のあるdllですら非互換性に苦しめられることを考えると
同封が一番確実っぽい気がします.
配布物の容量が増えるのは確かに無駄だけど最近のネットワーク速度
やHDD容量を考えたらたいしたことはないと思うし…
0162名前は開発中のものです。
02/10/27 04:05ID:???0163名前は開発中のものです。
02/10/27 10:29ID:???SDL は LGPL じゃねーの?
0164名前は開発中のものです。
02/10/27 17:47ID:???0165名前は開発中のものです。
02/10/30 10:13ID:???なるからそれだけでOKかと思ってたよ…(鬱
#こうしてソース非公開な人はAllegroに流れるのだろうか…?
じゃあどこまでがdll同梱になるんだろうか?
1.プログラムとdllを同じzipアーカイブに含めて配布(×らすぃ)
2.プログラムとdllを別ディレクトリに置いた一枚のCD-ROMを配布
3.プログラムを入れたzipとdll入れたzipを同じCD-ROMに入れて配布
4.プログラムを入れたzipとdll入れたzipを同じサイトで配布
0166名前は開発中のものです。
02/10/30 10:42ID:???すげー、giftwareだってよ。贈り物だなんていえないねえ、なかなか。
Delphiからも使えるみたいだし、ちょっと試してみる。
0167名前は開発中のものです。
02/10/31 22:28ID:???>>164 でのソース未公開とは、ライブラリのソースの事だと思ふ。
ライブラリのバイナリを配る時には、ライブラリのソースを同梱するか、
ソースを別のアーカイブなどにして、同じサイトで同時にダウンロードできるようにしておくと、
ライブラリのバイナリを得る時に、ソースを得るチャンスがあったっていうことで、
後腐れが無くて良いらしい。
0168名前は開発中のものです。
02/11/01 12:12ID:???「ソース未公開」と「LGPL」が矛盾してるから,ここで言ってるソースがLGPLなライブラリのソースだとは思いもしなかったよ…(鬱
公開,未公開の話しじゃなくてSDLのバイナリを配るときにそのバイナリの元になったソースを入手可能な状態にしておけって話ね…
そのための唯一確実な方法がSDLのDLLの入ったアーカイブにSDLのソースを同梱することであると…
でも実際GPLなソフトのバイナリを配布してるところでも同じアーカイブにソース入れて配布することってほとんどないよね…
ってことでプログラムのバイナリのアーカイブにSDLのDLLを同梱しても同じ場所(WebとかCD-ROMとか)にDLLの元になったSDLのソースを置いておけばほぼOKってこと?
0169名前は開発中のものです。
02/11/01 18:57ID:???> 同じ場所(WebとかCD-ROMとか)にDLLの元になったSDLのソースを置いておけば
> ほぼOKってこと?
そう思わないと、やっていけないでつ。
0170名前は開発中のものです。
02/11/01 21:47ID:???本体とdllを単一アーカイブにまとめてしまうと、
LGPLを正しく理解してない厨房が騒ぐ元になるから、
本体とdllは別アーカイブにしとくのが吉かと。
0171名前は開発中のものです。
02/11/02 21:22ID:???ドキュメント読まない厨房のことまで知らんよ…
と,言いたいところだけど過去なにかのソフトでそういう騒ぎが
あったんかな??
■ このスレッドは過去ログ倉庫に格納されています