トップページgamedev
985コメント286KB

DXライブラリ 総合スレッド その7

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。2010/10/04(月) 17:24:47ID:zBoueRHu
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
http://homepage2.nifty.com/natupaji/DxLib/

【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
DXライブラリ 総合スレッド その6
http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
0964名前は開発中のものです。2011/03/16(水) 18:52:54.43ID:UW09KiLI
>>963
オレがその>>957だが、ビルド出来るようにする手間より
ビルドにかかる時間の短縮のほうがでかかったよ
すげ〜得した
>>955の言うとおりcppファイルが沢山あるプロジェクトほど効果はデカイ
>>960のレスこそ非合理的って話だな
0965名前は開発中のものです。2011/03/16(水) 18:53:19.02ID:gTLtkOfi
まぁぶっ飛んだ裏技的やり方だからね
C++の仕様を理解できてコードの依存関係を頭の中でちゃんとイメージ出来る人だけ
楽する手段としてつかって欲しい感じ
0966名前は開発中のものです。2011/03/16(水) 19:07:37.43ID:BjnjOb1q
このやり方を支援するプラグインがあればいいのにな
0967名前は開発中のものです。2011/03/16(水) 19:17:41.84ID:i6gMh4cT
てか、俺からしたらそんなにビルドに時間がかかるほどのゲームを作ってる人がいるのに驚きだ。
しかもDXライブラリを使って? いったいどんな規模のゲームなんだ。
0968名前は開発中のものです。2011/03/16(水) 19:17:48.09ID:BC+pXFRw
デフォでオフだけど並列でビルドするオプションがある
すごく早くなる
0969 [―{}@{}@{}-] 名前は開発中のものです。2011/03/16(水) 19:31:14.46ID:wm2Br6SF
// main.cpp
#include <stdio.h>

#include "sub_1.cpp"
#include "sub_2.cpp"

extern int get_sub_1_val(void);
extern int get_sub_2_val(void);

int main(void)
{
  printf("sub_1_val: %d\n", get_sub_1_val());
  printf("sub_2_val: %d\n", get_sub_2_val());
  return 0;
}

// sub_1.cpp
static int val = 10;
int get_sub_1_val(void){ return val; }

// sub_2.cpp
static int val = 20;
int get_sub_2_val(void){ return val; }

sub_2.cpp(1) : error C2370: 'val' : 再定義 ; 異なるストレージ クラスです。
sub_1.cpp(1) : 'val' の宣言を確認してください。
0970名前は開発中のものです。2011/03/16(水) 19:47:41.09ID:zS54Nj1q
なるほどね
Cだと駄目だね
無名空間とかもそうなるのかな?
0971名前は開発中のものです。2011/03/16(水) 19:50:17.06ID:gTLtkOfi
>>967
そんな大規模じゃなくてもcppファイルが多くて…… STGなんだけど、
自作計算関数、自作システム関数、保存データ管理関数、敵クラス、弾クラス、その他オブジェクトクラス、
ゲームシーンクラス、メニューシーンクラス、リソース定義……とか
全体の行数はたった6000行ちょい(空改行除く)

>>969
extern宣言してないグローバル変数の衝突は仕方ない……
てか考えると思ったよりも問題の出るケース多そうね……
0972名前は開発中のものです。2011/03/16(水) 20:02:03.60ID:1Ae82QgD
>>968
教えてくれてサンクス
一瞬で終わって驚いた
0973名前は開発中のものです。2011/03/16(水) 21:19:17.62ID:tAHP0ur9
全体の行数ってどうやったら数えられるんだっけ?
0974名前は開発中のものです。2011/03/16(水) 21:19:47.26ID:tAHP0ur9
書き忘れた、もちろんVCの話で…
0975名前は開発中のものです。2011/03/16(水) 23:33:53.97ID:do/XMJJp
行数カウントツールが、フリーソフトページにあるよね

並列ビルドはぐぐったけど見つからなかった
複数プロジェクトを同時ビルドってのは初期値が2で最大値が32みたいだけど、これは違うよねきっと
0976名前は開発中のものです。2011/03/17(木) 01:14:09.79ID:jlNSzrqd
VCに「複数プロセッサによるコンパイル」という項目がある
0977名前は開発中のものです。2011/03/17(木) 04:33:38.84ID:FsTg2Syb
プロジェクトのプロパティ>構成プロパティ>C/C++>全般>複数プロセッサによるコンパイル
だな
VC++2010にはあるけど、VC++2008には無いみたいだな
0978名前は開発中のものです。2011/03/17(木) 21:28:02.94ID:USLN5jlJ
2008なら/MPオプションを直接与えればいい
0979名前は開発中のものです。2011/03/23(水) 01:22:18.41ID:BguXpQI+
画面上にクリックできるボタンを表示するのってどうしたらいい?
GetMousePoint で、マウスがボタンの位置にあるときにクリックしたらボタンを押したことになるようにする?
0980名前は開発中のものです。2011/03/23(水) 06:04:44.61ID:vGu+J6dj
むしろマウス位置取得とかクリック検知以外の方法でいいのあるならおせーてほしい

クリックした瞬間マウスポインタがボタン範囲内で且つそのまま範囲から出ずにリリースしたら動作→ネットブラウザとかのリンク
クリックした瞬間マウスポインタがボタン範囲内で且つ範囲内でリリースしたら動作→Janeの書き込むボタンとかのGUIに多いボタン
クリックした瞬間マウスポインタがボタン範囲内なら動作→ネットブラウザとかのタブ切り替えみたいな部分
クリックした瞬間マウスポインタがボタン範囲内でかつリリースしない間動作→ドラッグ、リリースした瞬間→ドロップ
クリックした瞬間マウスポインタがボタン範囲内でかつリリースしない間、範囲内にマウスポインタがあるとき動作→ボタンの押されてる画像

クリックした瞬間、押してる時、リリースした瞬間、とそのときのマウス位置のボタン内外、の組み合わせで色々なボタンが出来るようにしてる。
一度作っちゃえばいいんだけどややこしかばってん。
0981名前は開発中のものです。2011/03/23(水) 14:29:41.24ID:eQUXn6+m
そんな特殊な操作を細かく識別する必要がある時点で、コモンコントロールのボタンなんかどうせ役に立たない
ボタンからマウスカーソルが出たとかいろいろイベントはあるけど、余計に複雑になるので自前で調べた方が早い
だいたいそんなもんDXライブラリで作るのが間違ってる
MFCとかC#とかでやれ
0982名前は開発中のものです。2011/03/23(水) 14:55:42.92ID:fvm4gyRB
なんでコモンコントロールの話が?
0983名前は開発中のものです。2011/03/23(水) 15:02:00.14ID:IIbgoWBK
たったそれだけのことで言語乗り換える方がアホだろw
0984名前は開発中のものです。2011/03/23(水) 21:42:44.75ID:o1md/rGP
たいして複雑じゃないだろww
0985名前は開発中のものです。2011/03/24(木) 03:30:37.75ID:RCGNG7hY
ややこしいとは思わんけど、ボタンクラスは一回作っておくと便利そうだな。
レス数が950を超えています。1000を超えると書き込みができなくなります。