DXライブラリ 総合スレッド その7
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。
2010/10/04(月) 17:24:47ID:zBoueRHuGUIのゲームを比較的容易に作成する事を可能にする、
「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/
0935名前は開発中のものです。
2011/03/14(月) 23:13:39.89ID:gNx4XTy2アドバイスありがとうございます。
秒じゃなくてフレームじゃないと駄目だったんですね。
…そりゃそうか。
完成できるよう頑張ります!
{
old_left_key_state = left_key_state;
old_right_key_state = right_key_state;
if(CheckHitKey(LEFT_KEY)){ left_key_state = PUSH; }
else{ left_key_state = RELEASE; }
if(CheckHitKey(RIGHT_KEY)){ right_key_state = PUSH; }
else{ right_key_state = RELEASE; }
if(left_key_state == PUSH && right_key_state == RELEASE){ press_key = LEFT_KEY; }
if(left_key_state == RELEASE && right_key_state == PUSH) { press_key = RIGHT_KEY; }
if(left_key_state == RELEASE && right_key_state == RELEASE){ press_key = NONE; }
if(left_key_state == PUSH && right_key_state == PUSH){
if(left_key_state == PUSH && old_left_key_state == RELEASE){ press_key = LEFT_KEY; }
if(right_key_state == PUSH && old_right_key_state == RELEASE){ press_key = RIGHT_KEY; }
}
}
0937名前は開発中のものです。
2011/03/14(月) 23:54:12.21ID:gNx4XTy2コードありがとうございます。
自分で作るとか言っときながら、あっさり見てしまいました。
でも参考になりました!やっと悔いなく先に進めそうです。
0938名前は開発中のものです。
2011/03/15(火) 00:03:07.27ID:X3tKRN+kこれの値でかいほうにすりゃいんじゃね
0939名前は開発中のものです。
2011/03/15(火) 03:26:20.84ID:DqTTW319256回程度じゃ問題ないという考えなのか
あとその上の奴は4塊目
普通
else if(left_key_state == RELEASE && right_key_state == PUSH) { press_key = RIGHT_KEY; }
else if(left_key_state == RELEASE && right_key_state == RELEASE){ press_key = NONE; }
入れるもんじゃないのか
もしそうするとその次の
if(left_key_state == PUSH && right_key_state == PUSH) も else だけで済むでしょう
それとその後の
if(left_key_state == PUSH && old_left_key_state == RELEASE){ press_key = LEFT_KEY; }
if(right_key_state == PUSH && old_right_key_state == RELEASE){ press_key = RIGHT_KEY; }
だが
left_key_state == PUSH && 、right_key_state == PUSH && いるかね
こまけえこたあいいんだよ?
0940名前は開発中のものです。
2011/03/15(火) 06:05:58.86ID:xbXr2Nkf「これ」とか「その」とかってなんだよ、ちゃんとどこか安価でもしろよ
答える方に探せってか?
幸いレスが近いから>>936のことだろうって分かるけどよ
あと4塊目ってなんだよ、そんな言葉初めて聞いたよ
簡単な例示のプログラムなんだから
こまけぇこたあいいんだよでおkだろ
おまえの言ってることはあってるけど、動作的には同じだろ?
条件を明示的にわざと条件を冗長に書いて
コードの可読性を上げるという意味はある
nに1〜4までしか入らないswitch文でも
switch(n){
case 1: break;
case 2: break;
case 3: break;
default: break;
}
とは書かんだろ?
>これ関係ないキーまで256回もチェックするのが気になるのだが
全部のキーを調べないと汎用性がないだろ
もし、使いたいキーが増えたらその都度増やすのか?
べつにそれでもいいけどさ
あと、普通はGetHitKeyStateAll使うだろ
0941名前は開発中のものです。
2011/03/15(火) 09:09:53.01ID:DqTTW319あと安価付けるの照れ臭いんだ
察してくれよw
4塊目ってのは言い方が思い付かなかったんだから分かるだろと思って俺が勝手に作ったんだよ
分かるだろ?w
まあ何か言い方はあるんだろうけどすぐに思いつかなかった
まあそれだけのことだw
明示的にわざと書いてとは言うがこの場合は書かなくても分かると思ったんだよ
まあ人それぞれだろうが
全部のキーを使わないと汎用性ないだろとは言うがだからといって256個も使うわけねえだろって思ってw
大体方向キーとボタン数個だけだろ、使うとは言っても
いくら汎用性がないとはいえ調べる必要ない奴の方が圧倒的に多いのに256個もチェックする必要があるかねって思っただけw
0942名前は開発中のものです。
2011/03/15(火) 09:12:40.30ID:gnI9eXa60943名前は開発中のものです。
2011/03/15(火) 09:14:29.72ID:DqTTW319> if(left_key_state == PUSH && right_key_state == PUSH) も else だけで済むでしょう
は置いといてもだ
> if(left_key_state == PUSH && old_left_key_state == RELEASE){ press_key = LEFT_KEY; }
> if(right_key_state == PUSH && old_right_key_state == RELEASE){ press_key = RIGHT_KEY; }
の
> left_key_state == PUSH && 、right_key_state == PUSH &&
はすぐ上に同じ条件があるんだからいるかね?って思っただけ
まあ別に大した問題ではないんだけどねw
それでも細かい俺は気になったの
細かいこと気にし過ぎ?w
0944名前は開発中のものです。
2011/03/15(火) 09:23:09.01ID:7Ujss6hx教科書どおりの良い情報と、流し見でいい発展情報とがあるほうが、いいんでないかい
教科書と発展とが混ざってわからなくなると困るけど、そこはみんな
鋭くツッコミ入れてくれるところだしな
0945名前は開発中のものです。
2011/03/15(火) 09:34:29.08ID:xbXr2Nkf気にしすぎ
あとイチイチ語尾に芝はやすのうざい
真面目にレスする気なくす
>普通はGetHitKeyStateAll使うってのは言おうとしたけどやめたんだ
言えよ
>あと安価付けるの照れ臭いんだ
>察してくれよw
ムリ
あとはコーディング規約をどうするかって話だけだ
そこは人と場合それぞれで明確な解答はない
以上、もうお前にはレスしない
0946名前は開発中のものです。
2011/03/15(火) 09:47:22.67ID:LRL3QteV{
return (m_keyInput[key] & ~m_keyInputPrev[key]) == 1? true:false;
}
俺は上みたいにしてるよ
前フレームのをmemcpyで配列毎コピーすれば良いと思う
0947名前は開発中のものです。
2011/03/15(火) 10:12:36.70ID:DqTTW319今回は敢えて言う必要ないかなと思っただけだよ
レスしねえなら最初っからすんじゃねえカス
0948名前は開発中のものです。
2011/03/15(火) 10:35:06.21ID:sVXS+gQFカスはお前だろw
0949名前は開発中のものです。
2011/03/15(火) 10:47:54.36ID:xUaeA1H3>察してくれよw
無茶言うなw
0950名前は開発中のものです。
2011/03/15(火) 16:58:39.83ID:18Xm69u50951名前は開発中のものです。
2011/03/15(火) 17:11:32.96ID:KXScCzgE自作のヘッダファイルにはインクルードガードを施す
↓
cppファイルを1つを除いて全部「ビルドから除外」する
↓
そして、その1つのcppファイルにそれら「ビルドから除外」したcppファイルを全部インクルードする
↓
ビルドする
↓
サラマンダーよりはやーい
プリコンパイル済みヘッダはシラネ
0952名前は開発中のものです。
2011/03/15(火) 17:14:05.00ID:fAuDpb2f最後なんなんだよ。
俺とやる気か?あ?
0953名前は開発中のものです。
2011/03/15(火) 18:01:11.55ID:nteT3Zz7めっちゃ早くなってるよ
アホだから設定苦戦したけど。
0954名前は開発中のものです。
2011/03/15(火) 19:05:01.55ID:QQAoE1buそれって1ファイル書き換えただけで全部の.h/.cppをコンパイルし直すことにならないか?
0955名前は開発中のものです。
2011/03/15(火) 19:44:40.83ID:KXScCzgEよっぽどの量でない限り、一つのファイルのコンパイル速度はコード量に左右されないよ
ビルドで時間使ってるのはプリプロセスやobjのリンクで、それをすっ飛ばせるとかなり早くなる
cppが多いプロジェクトを書き換えると感動すると思うよホント
正直今まで人に教えるのを勿体無いと思ってたレベル
0956名前は開発中のものです。
2011/03/15(火) 20:12:52.73ID:Q7+nM0HNいや、詳しくは知らんけど。
0957名前は開発中のものです。
2011/03/15(火) 20:32:14.80ID:xbXr2Nkfincludeの順番間違えて
ビルド出来るようにするまでちょっと戸惑ったけど
むっちゃくちゃ速くなった、ありがとう
0958名前は開発中のものです。
2011/03/15(火) 20:38:02.64ID:hTtiuP+j0959名前は開発中のものです。
2011/03/15(火) 21:01:01.48ID:44jcDk3e0960名前は開発中のものです。
2011/03/16(水) 15:22:41.05ID:ywftU18L0961名前は開発中のものです。
2011/03/16(水) 16:22:15.68ID:zS54Nj1q0962名前は開発中のものです。
2011/03/16(水) 16:25:58.79ID:zS54Nj1q非合理的って矛盾してね?
0963名前は開発中のものです。
2011/03/16(水) 16:26:24.95ID:do/XMJJp何かってのは例えば>>957がたどったような手間とか
0964名前は開発中のものです。
2011/03/16(水) 18:52:54.43ID:UW09KiLIオレがその>>957だが、ビルド出来るようにする手間より
ビルドにかかる時間の短縮のほうがでかかったよ
すげ〜得した
>>955の言うとおりcppファイルが沢山あるプロジェクトほど効果はデカイ
>>960のレスこそ非合理的って話だな
0965名前は開発中のものです。
2011/03/16(水) 18:53:19.02ID:gTLtkOfiC++の仕様を理解できてコードの依存関係を頭の中でちゃんとイメージ出来る人だけ
楽する手段としてつかって欲しい感じ
0966名前は開発中のものです。
2011/03/16(水) 19:07:37.43ID:BjnjOb1q0967名前は開発中のものです。
2011/03/16(水) 19:17:41.84ID:i6gMh4cTしかもDXライブラリを使って? いったいどんな規模のゲームなんだ。
0968名前は開発中のものです。
2011/03/16(水) 19:17:48.09ID:BC+pXFRwすごく早くなる
#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:zS54Nj1qCだと駄目だね
無名空間とかもそうなるのかな?
0971名前は開発中のものです。
2011/03/16(水) 19:50:17.06ID:gTLtkOfiそんな大規模じゃなくてもcppファイルが多くて…… STGなんだけど、
自作計算関数、自作システム関数、保存データ管理関数、敵クラス、弾クラス、その他オブジェクトクラス、
ゲームシーンクラス、メニューシーンクラス、リソース定義……とか
全体の行数はたった6000行ちょい(空改行除く)
>>969
extern宣言してないグローバル変数の衝突は仕方ない……
てか考えると思ったよりも問題の出るケース多そうね……
0972名前は開発中のものです。
2011/03/16(水) 20:02:03.60ID:1Ae82QgD教えてくれてサンクス
一瞬で終わって驚いた
0973名前は開発中のものです。
2011/03/16(水) 21:19:17.62ID:tAHP0ur90974名前は開発中のものです。
2011/03/16(水) 21:19:47.26ID:tAHP0ur90975名前は開発中のものです。
2011/03/16(水) 23:33:53.97ID:do/XMJJp並列ビルドはぐぐったけど見つからなかった
複数プロジェクトを同時ビルドってのは初期値が2で最大値が32みたいだけど、これは違うよねきっと
0976名前は開発中のものです。
2011/03/17(木) 01:14:09.79ID:jlNSzrqd0977名前は開発中のものです。
2011/03/17(木) 04:33:38.84ID:FsTg2Sybだな
VC++2010にはあるけど、VC++2008には無いみたいだな
0978名前は開発中のものです。
2011/03/17(木) 21:28:02.94ID:USLN5jlJ0979名前は開発中のものです。
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:fvm4gyRB0983名前は開発中のものです。
2011/03/23(水) 15:02:00.14ID:IIbgoWBK0984名前は開発中のものです。
2011/03/23(水) 21:42:44.75ID:o1md/rGP0985名前は開発中のものです。
2011/03/24(木) 03:30:37.75ID:RCGNG7hYレス数が950を超えています。1000を超えると書き込みができなくなります。