トップページgamedev
1001コメント397KB

DXライブラリ 総合スレッド 2008

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2008/10/25(土) 17:37:53ID:BCFbbKco
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。

DXライブラリの詳細ついては
http://homepage2.nifty.com/natupaji/DxLib/
を参照して頂きたい。

DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

過去スレ:DXライブラリ 総合スレッド
      http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
0658名前は開発中のものです。2009/02/27(金) 07:50:49ID:KlYIcaW4
>>657
それが得策。floatは、使い方が難しい。
悪く言えば、既に過去の産物で、互換性のために残ってる・・・。
ぐらいに思い切ってしまった方が良いぐらい。
有効桁数が小さいし、感覚と違う所が強いから
小数点として扱う時は、意味も分らずにfloatを使ってると
変なバグに嵌りまくる。しかも、見た目間違ってない様なコードで嵌るからねwww

逆に、doubleだと、intよりも有効桁数が大きいから、
intで大丈夫な桁範囲を軽くカバーできるしね。
ボトルネックになってない所の計算だったら、正直doubleが無難だよ。
(あと、意外とdoubleの方が早かったりすることも多いから、
 実測で比べるのは言うまでもないが。)
0659名前は開発中のものです。2009/02/27(金) 10:49:02ID:tFIcInvl
100倍よりも128倍したものを128で割る方がいいんじゃないかしらんと
確認もせずに想像で言ってみる。
0660名前は開発中のものです。2009/02/27(金) 19:35:42ID:0AHSCy/i
相手のレベルによっては100倍って説明した方がいい時おあるよね。
0661名前は開発中のものです。2009/02/27(金) 21:05:19ID:EURlNcbt
DXライブラリっていう名前が問題なくね
このライブラリ知る前から自前のライブラリもDxLibって付けちまってたし
まぁ何年もまえの話だが
0662名前は開発中のものです。2009/02/27(金) 21:13:18ID:ZQTPwJtl
DirectXのラッピングライブラリだからDXライブラリでいいんじゃね?
ちょっとダサカッコイイ感じが対象者レベルにぴったりだし。俺含めて。
0663名前は開発中のものです。2009/02/27(金) 21:31:46ID:lChaxYTz
やっぱりDirectX公式ライブラリと思われてしまっても仕方が無い。
が、いまさらオリジナルの名前に戻されてもね。
DXLibで十分や。
0664名前は開発中のものです。2009/02/27(金) 23:17:07ID:0AHSCy/i
>661-663
その微妙な心境が手に取るように分かるぜw
0665名前は開発中のものです。2009/02/27(金) 23:17:18ID:+el9j4ty
朧村正みたいなゲームも作れるよね?2Dだし
0666名前は開発中のものです。2009/02/28(土) 00:42:10ID:aTuc4vAr
作れるよ
0667名前は開発中のものです。2009/02/28(土) 06:17:37ID:P7f9XrLx
DXLibに収録されてる非公開関数のリファレンスって無いのかな
ウィンドウハンドルを取得する方法を探してたら、非公開関数で取得できるのを知って
他にも有用な関数がありそうなので気になったんだが
0668名前は開発中のものです。2009/02/28(土) 06:32:10ID:TAywFnWh
作者は非公開のリファレンスは書かないってよ。
利用する頻度の少ない関数を初心者に公開するには混乱の元というコンセプトらしい。
コメントとソースで自力で読むしかない。
0669名前は開発中のものです。2009/02/28(土) 06:34:58ID:LqQy7pZD
>>667
ttp://studiokingyo.fc2web.com/dxlib/kaibou/k_shiyou.html
0670名前は開発中のものです。2009/02/28(土) 06:54:33ID:P7f9XrLx
>>668
非公開関数のリファレンスは書くつもりは無いのか
わざわざ用意した関数のリファレンスを書かないのは勿体無い気もするが
ヘッダ見たら色々あったけどコメントだけじゃ引数がわからないし、ソース読むしかないのね

>>669
そこ見て非公開関数の存在を知ったんだけど、他にも説明のある非公式のサイトとかないのかな?
0671名前は開発中のものです。2009/02/28(土) 06:58:59ID:TAywFnWh
引数の名前と型を見てなんとなく分かると思う。
わかんなかったのはMenu関係かな。
どれが便利な隠れ関数なのか人によってまちまちだからな〜。
全部教えるわけにはいかないので、その都度聞いてくれ。
あと、大概公式の掲示板を関数名で検索すると作者がサンプルコード書いてあるよ。
0672名前は開発中のものです。2009/02/28(土) 07:00:08ID:LqQy7pZD
>>670
他のところは知らないかな
もし需要あるなら非公開関数ちょっと調べてリファレンスでも作ろうか?
0673名前は開発中のものです。2009/02/28(土) 07:01:10ID:TAywFnWh
>>672
俺からも ぜ ひ 頼 む
0674名前は開発中のものです。2009/02/28(土) 07:06:17ID:LqQy7pZD
>>673
でも、正直DirectX使えばなんとでもなるから、わざわざ推奨されない非公式関数発掘して制約多い状態でDxLib使うより
その方が早い気もする
中見てないから分からないけど、ソースが綺麗だったらまだ救いようあるんだけどな……
0675名前は開発中のものです。2009/02/28(土) 07:19:28ID:TAywFnWh
DXライブラリ使ってるのに、その上でDirextX直叩きする酔狂は居ないと思う。
リファレンスもあったら便利だけど、目ぼしい関数はチェックしてるからなぁ。
0676名前は開発中のものです。2009/02/28(土) 07:27:18ID:P7f9XrLx
>>671
教えてもらえるなら助かるわ
といっても、そこそこ量があるので使えそうな関数を探すのが難しそうだがw

>>672
非公開関数をまとめてくれるのなら有難い
0677名前は開発中のものです。2009/02/28(土) 12:35:30ID:1J8Bdlx6
>>672
結構需要あると思うし、個人的にもすごくうれしい
0678名前は開発中のものです。2009/02/28(土) 17:39:28ID:mz4DlK2y
詳しい説明は無くてもかまわないからリストだけでもあれば重宝します
0679名前は開発中のものです。2009/02/28(土) 18:56:21ID:JPI33j26
>>666
ってことはDXライブラリでも極めれば市販ゲームレベルの作品が作れるって事だね
0680名前は開発中のものです。2009/02/28(土) 20:56:23ID:GSZZUTVZ
極端な話,DrawGraphさえあれば十分
0681名前は開発中のものです。2009/02/28(土) 21:06:52ID:gSUwRndo
画像ファイル一枚を分割してアニメーションさせるのと
全部別々のファイルを読み込んでアニメーションさせるのって負荷とか違うのかな?
後者の方がやりやすいんだがどうなんだろう
0682名前は開発中のものです。2009/02/28(土) 21:15:45ID:GSZZUTVZ
一度の画面表示に使用する画像の数はできるだけ減らした方が
テクスチャの切り替えが減って効率は良くなる
0683名前は開発中のものです。2009/02/28(土) 21:20:02ID:gSUwRndo
>>682
やっぱりそうなのか・・
パーツ分けがめんどくさいんだよなぁ
0684名前は開発中のものです。2009/02/28(土) 21:25:21ID:GSZZUTVZ
何のためにプログラミングやってんの
それこそ機械にやらせればいいでしょ
0685名前は開発中のものです。2009/02/28(土) 23:32:58ID:gSUwRndo
>>684
フォトショで画像作ってるからPSDファイルなんだよね
ヘボプログラマーなんでPSDファイルを分割するプログラムは作れないです・・
0686名前は開発中のものです。2009/03/01(日) 01:19:31ID:Q0b0e5s4
使ったこと無いから知らないけどさ、フォトショってマクロみたいな機能無いの?
0687名前は開発中のものです。2009/03/01(日) 01:43:53ID:gJBH+jz2
>>686
あるよー
でもマクロするほどの作業量でもないので手動でやります
0688名前は開発中のものです。2009/03/01(日) 04:00:52ID:4UMfyekW
ん〜?
681と682の質疑応答の意味がよくわからん。

1ファイルを分割しようが、複数ファイルを読み込もうが使用する数は同じじゃないの?
0689名前は開発中のものです。2009/03/01(日) 04:46:48ID:gjx3PjZU
俺もわかんね。
同じじゃん。

どっちの方が管理が楽だろう?っていう人間の負荷の話ならともかく
0690名前は開発中のものです。2009/03/01(日) 05:31:56ID:idjBCaEs
>>681-689

一枚の画像を読み込み複数に分けハンドルを取得→PCが操作する画像は一枚
複数の画像を読み込みそれぞれをハンドルを取得→PCが操作する画像は複数


負荷が多いのは勿論後者
大げさだけど
一枚100MBの画像を一枚開くのと
一枚10MBの画像を10枚開くの

どっちが早いか考えてみたら分かるんじゃないかな?


まあ、数十枚の画像なら気にする必要はないんだけどさ

容量的にも、バイナリで開けば分かるけど、一枚ごとに色々付加されるから
200kbの画像を2つに分けて保存しても合計で220kbくらいになっちゃう(ものによって違うかな)
0691名前は開発中のものです。2009/03/01(日) 08:23:41ID:idjBCaEs
今非公開関数まとめてたんだけど、すごくわかりやすいからわざわざまとめるほどでもない気がしてきた
作者が公開してないんだから公開するのも何かな……
一応簡単に晒すけど……
使い方(引数)、いつ呼ぶのか(DxLib初期化前か後か)、返値……ここらへんが分かれば良いんだよね?
もしこの中で知りたいとか要望あるならHTMLにして、簡単なソースくらいくっつけてリファレンス化するよ


起動→終了で複数回DxLibを読み込まなければいけないとき(あるのか?)に使えそう
int DxLib_GlobalStructInitialize( void ) ;
// ライブラリの内部で使用している構造体をゼロ初期化して、DxLib_Init の前に行った設定を無効化する( DxLib_Init の前でのみ有効 )
int DxLib_IsInit( void ) ;
// ライブラリが初期化されているかどうかを取得する( 戻り値: TRUE=初期化されている FALSE=されていない )

ファイルを検索して取得ウマー
int FileRead_findFirst( const char *FilePath, FILEINFO *Buffer ) ;
// 指定のファイル又はフォルダの情報を取得し、ファイル検索ハンドルも作成する( 戻り値: -1=エラー -1以外=ファイル検索ハンドル )
int FileRead_findNext( int FindHandle, FILEINFO *Buffer ) ;
// 条件の合致する次のファイルの情報を取得する( 戻り値: -1=エラー 0=成功 )
int FileRead_findClose( int FindHandle ) ;
// ファイル検索ハンドルを閉じる( 戻り値: -1=エラー 0=成功 )

ウィンドウから情報を引っ張り出す系の関数
int GetWindowCRect( RECT *RectBuf ) ;
// ウインドウのクライアント領域を取得する→描画領域ね
int GetActiveFlag( void ) ;
// ソフトがアクティブかどうかを取得する→現在アクティブかどうかを調べる。-1が非アクティブ、0がアクティブとかだと思う(未確認)
HWND GetMainWindowHandle( void ) ;
// メインウインドウのハンドルを取得する→分かる人のために
int GetNoActiveState( int ResetFlag = TRUE ) ;
// 非アクティブになり、処理が一時停止していたかどうかを取得する(引数 ResetFlag=TRUE:状態をリセット FALSE:状態をリセットしない 戻り値: 0=一時停止はしていない 1=一時停止していた )
int GetMouseDispFlag( void ) ;
// マウスを表示するかどうかのフラグを取得する
0692名前は開発中のものです。2009/03/01(日) 08:24:40ID:idjBCaEs
int GetMouseDispFlag( void ) ;
// マウスを表示するかどうかのフラグを取得する
int GetWindowCloseFlag( void ) ;
// ウインドウを閉じようとしているかの情報を得る→本当に終了しますか?とか確認を表示するのに使えそう
int GetWindowUserCloseFlag( int StateResetFlag = FALSE ) ;
//×ボタンが押されたかどうかを調べる
int SetDoubleStartValidFlag( int Flag ) ;
// 2重起動を許すかどうかのフラグをセットする←複数起動させてもいいゲームならここを変更

マルチタスクのゲーム作りたいならここらへんが役に立ちそう
int AddMessageTakeOverWindow( HWND Window ) ;
// メッセージ処理をDXライブラリに肩代わりしてもらうウインドウを追加する
int SubMessageTakeOverWindow( HWND Window ) ;
// メッセージ処理をDXライブラリに肩代わりしてもらうウインドウを減らす

軽くみた感じ使えそうなのはこのあたりかな?
0693名前は開発中のものです。2009/03/01(日) 08:37:37ID:idjBCaEs
int SetWindowInitPosition( int x , int y ) ;
// ウインドウの初期位置を設定する
int SetNotWinFlag( int Flag ) ;
// DXライブラリのウインドウ関連の機能を使用しないフラグ←これめちゃくちゃ便利でふいた
int SetWindowUserCloseEnableFlag( int Flag ) ;
// メインウインドウの×ボタンを押した時にライブラリが自動的にウインドウを閉じるかどうかのフラグをセットする←上記のGetWindowCloseFlagと組み合わせると幸せ
int SetDXArchiveExtension( const char *Extension = NULL ) ;
// 検索するDXアーカイブファイルの拡張子を変更する
int SetBackgroundColor( int Red, int Green, int Blue ) ;
// メインウインドウのバックグラウンドカラーを設定する←初期背景色は黒(#000000)
int SetDragFileValidFlag( int Flag ) ;

ドラッグ&ドロップかんれん
// ファイルのドラッグ&ドロップ機能を有効にするかどうかのフラグをセットする
int GetDragFilePath( char *FilePathBuffer ) ;
// ドラッグ&ドロップされたファイル名を取得する( -1:取得できなかった 0:取得できた )
int GetDragFileNum( void ) ;
// ドラッグ&ドロップされたファイルの数を取得する

めんどくさいから、存在だけ書くけど
他にも、ツールバーにボタンを追加する関数とか
ショートカットキーを追加する関数とか(←いくらでも代用可能だから使わない方がいいかも)
メニューを作成する関数とか
キー入力中、マウスを点滅させる関数とか

ここらへんは人によってピンポイントに使えそうな関数ばっかだから、あんまりリファレンス化しても需要無い気がする
一応応用テクニックとして、HSPからDXライブラリを呼ぶ方法とかだったら需要ある?
あるなら書こうかな

吉里吉里やNscから呼ぶことも出来そうだけど本体いじらなきゃ駄目っぽくてめんどくさい
0694名前は開発中のものです。2009/03/01(日) 08:44:55ID:idjBCaEs
たとえば、×ボタンで終了確認を出したいときとかは

〜略〜

SetWindowUserCloseEnableFlag( FALSE ); //×ボタンで自動終了しない

while(ProcessMessage()==1)//だっけ?
{

ClsScreen();
game();
ScreenFlip();

if(GetWindowUserCloseFlag()==-1)//×ボタンが押されたら
{
if(MessageBox(NULL,"終了しますか?","終了確認",MBYESNO)==IDYES) //YES,NOでYESが押されたら
break;
}

}

〜略〜

こんな感じにすればできる(と思う)
組み合わせだからなあ……リファレンス作るより小技をいくつか乗せた方が良いのかな?
0695名前は開発中のものです。2009/03/01(日) 08:45:28ID:idjBCaEs
……朝から何やってんだ俺
悲しくなってきたから寝る
0696名前は開発中のものです。2009/03/01(日) 09:26:49ID:k4cT38FB
おつかれさまです。ごゆっくりお休みくださいな。
リファレンスも欲しいけど、小技のほうがうれしいかも。
0697名前は開発中のものです。2009/03/01(日) 09:55:31ID:gjx3PjZU
>>690
最初のファイル読み込みはともかく
ハンドルに分けて使う段になったらどっちも同じじゃね?

×一枚の画像を読み込み複数に分けハンドルを取得→PCが操作する画像は一枚
○一枚の画像を読み込み複数に分けハンドルを取得→PCが操作する画像は複数

>>691
0698名前は開発中のものです。2009/03/01(日) 10:04:25ID:idjBCaEs
ああ、駄目だ
>>694だと×ボタンが押された時点でキューが送られちゃってるからDXライブラリの内部の構造的に終了確認はできない(終了確認が無限に出続ける)
「終了します」って有無を言わさぬ表示なら出来るけどね

中身見てるけど、終了キューを解除する関数は見あたらないし

独自に一度キューを取得して、ProcessMessageに投げる前に解除しちゃえば良いんだろうけど、そんなことすると初心者でも使えるって良点があじゃぱー


>>696
どんな小技が良いかな?
さっきあげた関数は単体で使えると思うし
今ソース見ながら色々いじってたけど
それ以上のことやろうと思うと色々内部的に引っかかることに気付いた

>>697
もう一度よーく読んでほしい
0699名前は開発中のものです。2009/03/01(日) 10:54:11ID:gjx3PjZU
>>698
ごめん。
よく読んだ上で書いたけどわからない。
理解力なくてすまん。きっと俺が間違っている。
が、これは瑣末な問題なので暇なときにでも考えておくとして…

>>693
>一応応用テクニックとして、HSPからDXライブラリを呼ぶ方法とかだったら需要ある?

これ興味あるかな。
0700名前は開発中のものです。2009/03/01(日) 11:24:01ID:oPHW1ePY
>>697
ハンドル分けたらだめ
一つのハンドルから転送元の領域を指定して描画するんだよ
同じテクスチャを連続して使うときは切り替えが行われないからその分効率が良くなる
0701名前は開発中のものです。2009/03/01(日) 11:38:25ID:ey11ozVK
質問掲示板の検索を使おう

>>698
ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1089

>>699
ここのNo.4に書いてある高速描画云々のところ読めば分かる
ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1162
読みこみ速度は同じだけど描画速度は

一枚の画像を読み込み複数に分けハンドルを取得 > 複数の画像を読み込みそれぞれをハンドルを取得
0702名前は開発中のものです。2009/03/01(日) 11:39:47ID:a7Bg5ATd
HSPなんぞ使うなよ
0703名前は開発中のものです。2009/03/01(日) 11:44:24ID:oPHW1ePY
なるほどLoadDivGraphでもいいのか
0704名前は開発中のものです。2009/03/01(日) 13:22:39ID:gjx3PjZU
>>700
なるほど
理解したdクス

>>701
読んでみる

>>702
今更HSP使う気はないけどやり方にはちょっと興味が
0705名前は開発中のものです。2009/03/01(日) 13:39:31ID:9rIzOA3I
>>691-694


前にHSPから使ったりしてたけど、わざわざHSPから呼び出す必要があまり無いような気がしたのでVC導入したな
0706名前は開発中のものです。2009/03/01(日) 14:11:25ID:idjBCaEs
>>701
なるほど
StateResetFlagは初期値FALSEになってるやつか、完全に見落としてたアリガトウ

>>702
HSP使うメリットってなんだろう、(うろ覚えだけど)3D処理が簡単なDLLかなんかがあったよね?
でも、それ使うなら最初からHSP使えばいいし……
自分から言っといてなんだがメリット見えないやごめんw


DXライブラリの可能性を追求しようと思ってドラッグ&ドロップで画像表示するアプリ作ろうと思ったらこんなに時間かかっちゃったよ
やっぱりアプリ系はおとなしくWINAPI使うに限るorz

http://www3.uploader.jp/t/nico/images/nico_uljp00021.zip


ふ、と思ったんだけどこのスレ結構知識ある人多いしうpロダでも用意しとけばサンプル集みたいなの作れるしいいんじゃね?
人のソース見れるってのは、(俺含め)初心者にはとてもありがたいんだよね
0707名前は開発中のものです。2009/03/01(日) 14:27:12ID:ZNmLTGrU
ソースうpは恥ずかしい…
0708名前は開発中のものです。2009/03/01(日) 14:51:26ID:lYNtcth6
自分の全裸うpするようなもん
0709名前は開発中のものです。2009/03/01(日) 15:45:22ID:z/eFYQPp
俺のは絶対人に見せられないソースだと自覚している。
一応動いているが、初心者どころの問題じゃない。
0710名前は開発中のものです。2009/03/01(日) 16:15:26ID:xm1UJhmc
ソースは出来るだけ人に見せたほうがいいよ。
指摘されればどこが良くて悪いのかが分かって次に必ず生かせる。
リアル知人じゃなくて2chで晒すのがいいかはよくわからんが・・・

うpするのとは話がちょっと違うけどここでも読んでみるといい
http://www.kojima-cci.or.jp/fuji/mybooks/cdiag/cdiag.0.6.html
0711名前は開発中のものです。2009/03/01(日) 16:37:16ID:g9LGhZvF
専ロダほしいな・・・
0712名前は開発中のものです。2009/03/01(日) 16:45:33ID:c9LYSV+3
ドット絵でbmpで保存して使うのと
きれいに書いたpngだとぜんぜん解像度違うような気がして変になっちまった。
ドット絵の設定ミス?それともpngにそろえるべきかな。。
0713名前は開発中のものです。2009/03/01(日) 18:31:12ID:a1nbTQe/
ドット絵だからドットが見えるんじゃないのか??
0714名前は開発中のものです。2009/03/01(日) 23:17:37ID:2a8K6SCC
爆発のエフェクトなどを作成する際に
グラデーションの画像を極座標変換?して
円形の画像を作成しているのだけれど、
これが何をやっているのかよくわからん。
0715名前は開発中のものです。2009/03/01(日) 23:25:10ID:oPHW1ePY
つ高校数学の教科書
0716名前は開発中のものです。2009/03/01(日) 23:54:03ID:A8mpIuw8
数学Cあたりだっけ
0717名前は開発中のものです。2009/03/02(月) 00:15:56ID:ziDQhibJ
そういえば洞窟物語もDXライブラリ使ってるんだね
0718名前は開発中のものです。2009/03/02(月) 00:35:55ID:hEBh+N4j
公式掲示板か
多分違うと思うぞ
Pixel氏が以前DirectX2だか3だかを使って作ったって言ってたし
何か勘違いしてああ答えたか、若しくは今作ってるゲームにDXライブラリを使ってるんだろう
0719名前は開発中のものです。2009/03/02(月) 01:43:24ID:3riYRQc6
ウィンドウサイズのデフォルトは640*480だけど、これの変更はできる?
フルスクリーンにしないといけないから制約はあると思うけど
0720名前は開発中のものです。2009/03/02(月) 01:47:07ID:7FxY5OR7
Dxライブラリのファイルにデフォルトのサイズがディファインされてたから
あれいじればできるんじゃね?
0721名前は開発中のものです。2009/03/02(月) 01:52:06ID:x0I/gxMT
>>719
SetGraphMode( 800 , 600 , 32 ); で800*600になる
0722名前は開発中のものです。2009/03/02(月) 02:06:23ID:3riYRQc6
>>720
ライブラリ書き換えるのはアウトだろ常識的に考えて……
そのせいでいつどこでバグが起こるかわからぬ

>>721
サンクス
画面モードの変更で解像度が変えれるとは、単語検索で見つからないわけだ
0723名前は開発中のものです。2009/03/02(月) 02:13:56ID:PBT6djln
リファレンス大した量じゃないんだから
一覧を一通り目を通せば済むだろ。
0724名前は開発中のものです。2009/03/02(月) 06:43:49ID:+ax8ZdoD
おれなんかどんなことができるんだろうと、わくわくしながら
上から下まで読むんだけどなぁ・・・
0725名前は開発中のものです。2009/03/02(月) 08:17:17ID:vDZSfAmr
>>718
でも文字表示とかDXライブラリっぽいよな
0726名前は開発中のものです。2009/03/02(月) 11:57:41ID:6eQe3/TV
>別にDXライブラリに限らないけど、DXライブラリを知った時も
リファレンスをさらさらっと流して、「これなら俺にも使えるんじゃないかな?」と思って
使い始めたな。

別に覚えなくても、一度目を通しておけば、
後になって「こういう事がしたいけど、それっぽい命令あったよな……」って
探しやすくなるしな。
0727名前は開発中のものです。2009/03/02(月) 20:14:38ID:hc/QEiU+
アレだけ分かりやすくて運営管理もアレだけちゃんとしてるなんて今まで見たことないよな。
DirectXでゲームを作るっていうジャンルに関して革命的だし、最早XNAなんかも超えてると言っても過言ではない。
0728名前は開発中のものです。2009/03/02(月) 20:18:02ID:qXNeI5og
ハンドルが全部intなのだけはどうかと
0729名前は開発中のものです。2009/03/02(月) 21:13:54ID:Rv93cI1M
ほんとだよな。ちゃんと符号無しにしてくれないと。
0730名前は開発中のものです。2009/03/02(月) 21:38:18ID:3lZqI4Au
>>729
そこじゃねーだろwww
0731名前は開発中のものです。2009/03/02(月) 21:42:53ID:3lZqI4Au
typedefしなかったのは多分初心者への配慮だろうね
0732名前は開発中のものです。2009/03/02(月) 22:25:14ID:ziDQhibJ
画像をプログラムで制御(回転など)して動いてみせるのと
一枚一枚画像を作ってパラパラ漫画みたいにアニメーションさせるのとどっちが負荷低いかな
0733名前は開発中のものです。2009/03/02(月) 22:54:20ID:qXNeI5og
パラパラ漫画方式の画像が一枚の画像にまとめてあるなら
原理的に変わらないはず
0734名前は開発中のものです。2009/03/02(月) 22:57:12ID:qXNeI5og
いや画像がまとめてあるかどうかはこの場合関係ないか
まあ変わらん
0735名前は開発中のものです。2009/03/03(火) 01:09:39ID:vuUaUlBc
その二つは比較すべきものじゃない気もするがw

回転ありの描画命令よりは回転なしの方が負荷は軽いだろうけど、
大した差じゃないみたいだし、好きにしていいんじゃないかな。
0736名前は開発中のものです。2009/03/03(火) 02:53:14ID:l+63ggMa
画面上の殆どのパーツが回ってるぜ!とか
512x512のパーツが回ってるぜ!とか
回転角度に応じて256パターンの画像を用意しました!
みたいな変なことやってなきゃ大丈夫だろう
0737名前は開発中のものです。2009/03/03(火) 03:53:26ID:wZU6jxH0
メモリに優しいのがプログラムで制御かな。後者はあまりオススメできない。

パラパラ漫画が全部VRAMに乗るとは限らないし、
1フレーム1枚のように別テクスチャ作るのであればさらに重くなる。
1枚でまとめる場合も、作成できるテクスチャサイズ制限があるハードウェアが過去にあり、
(Voodoo時代ではテクスチャサイズが256*256が最大であった)
そのような場合、DXライブラリではテクスチャ分割が行われるので、
大きなテクスチャを作るとパフォーマンスが犠牲になります。

なので、回転・反転・拡大縮小などといった
Direct3Dによるハードウェア支援で記述できる内容であるのなら、前者の方がパフォーマンスがよくなります。

ちなみに後者で実装するのであれば、テクスチャのサイズは正方形が望ましいですよ。
0738名前は開発中のものです。2009/03/03(火) 04:22:48ID:l+63ggMa
ただし、斜め向きとかにした場合、
最初から画像を用意しておいた方が綺麗に見えることは多々あるな。

プレイヤーキャラの画像など、
重要そうな部分だけパターンを用意しておくのも悪くない。
0739名前は開発中のものです。2009/03/03(火) 09:38:20ID:HSt7mZci
>>737
>正方形
一辺の長さが2の倍数の正方形ね
0740名前は開発中のものです。2009/03/03(火) 14:11:43ID:lmHLCC6G
>>739
> 2の倍数
2の累乗ね
0741名前は開発中のものです。2009/03/04(水) 10:39:32ID:IqyXTxRb
ん……?
グラフィックハンドルがintって事は、持てるグラフィックハンドルの最大数は約32000って事?
0742名前は開発中のものです。2009/03/04(水) 10:43:25ID:OmVViNLo
いやintは2*(10^9)くらいまで
その前にメモリがなくなるだろうけど
0743名前は開発中のものです。2009/03/04(水) 16:29:04ID:aWTUpMQ1
東方の弾幕とかって1つ1つの弾にハンドラ持たせてるの?
0744名前は開発中のものです。2009/03/04(水) 17:38:35ID:IqyXTxRb
>>742
intってそんなに長かったっけ?

>>743
ちゃんと1つずつID割り振って読み込んでるみたい。
0745名前は開発中のものです。2009/03/04(水) 18:29:44ID:Q764ubCY
32bit機での
符号無しintは2^32
符号ありintは2^31(符号に1bit使用)

プログラミングしてるなら知ってて当然だろ…
0746名前は開発中のものです。2009/03/04(水) 18:29:46ID:zCrgAKk6
>>744
おまえさんのいってるのは short int
0747名前は開発中のものです。2009/03/04(水) 19:26:33ID:IqyXTxRb
なるほど……
なんで勘違いしてたんだろう……
0748名前は開発中のものです。2009/03/05(木) 00:07:34ID:aVo6G4mJ
>>743
何を言ってるんだ?
東方はDXライブラリ使ってないぞ
0749名前は開発中のものです。2009/03/05(木) 10:15:06ID:MO3/QFgO
こんにちは^^
透過処理というのをしたんですけど
下記のコードだと正常に透過処理されます。
LoadGraphScreen( 0 , 0 , "back.bmp" , FALSE ) ;
LoadGraphScreen( 0 , 0 , "char.png" , TRUE ) ;

しかし
LoadGraphScreen( 0 , 0 , "char.png" , TRUE ) ;
LoadGraphScreen( 0 , 0 , "back.bmp" , FALSE ) ;
とすると透過処理されません
なぜでしょうか?
0750名前は開発中のものです。2009/03/05(木) 10:26:43ID:ddVb/3t1
>747
旧VBのIntegerが16bitなのと混ざってない?

>745
ハードは関係ない。コンパイラが決定する。
16bitアプリを32bitハードやOSで走らせても
intが勝手に32bitになったりしない。

処理系にあわせて決定するのが自然なだけ。
0751名前は開発中のものです。2009/03/05(木) 11:04:56ID:B3wyDoGN
>>749

はい? え?

back.bmp を透過処理なしで描いた上に、char.png を透過処理ありで描いたらそりゃちゃんと透過処理されるだろうけど

char.png を透過処理ありで描いた上に、back.bmp を透過処理なしで描いたらそりゃ上書きされるだけだと思うんだが……。
0752名前は開発中のものです。2009/03/05(木) 12:34:23ID:+9ctDc2h
>>750
あー、昔に見た資料がかなり古いものだったから間違って覚えてたのかも
0753名前は開発中のものです。2009/03/06(金) 21:17:00ID:pmzRauOh
ある画像だけの透過と、透過の度合いを設定することはできますか?
リファレンス見る限り見当たらないのですが
0754名前は開発中のものです。2009/03/06(金) 21:34:26ID:+Tdk650S
その画像を描画する前にSetDrawBlendMode
透過の度合いはPal引数
クラス使って透過率とグラフィックハンドルをまとめて管理するようにするといい
0755名前は開発中のものです。2009/03/06(金) 21:46:01ID:pmzRauOh
>>754
即レスありがとう^^
うまくできました!!
0756名前は開発中のものです。2009/03/06(金) 23:45:45ID:HF/v1JaI
DXライブラリ3Dの開発引き継いでる奴いないの?
0757名前は開発中のものです。2009/03/07(土) 00:24:08ID:3MouTLA1
2Dゲームでも背景は3Dにしたい・・・
本家DXライブラリにテクスチャ付モデルとフォグ表示機能だけあれば最高なんだが
■ このスレッドは過去ログ倉庫に格納されています