DXライブラリ 総合スレッド その3
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/03/31(火) 01:14:36ID:IgyJcgapGUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリの詳細ついては
http://homepage2.nifty.com/natupaji/DxLib/
を参照して頂きたい。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
過去スレ:DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
0302名前は開発中のものです。
2009/06/01(月) 08:43:59ID:OkPmCHq70303名前は開発中のものです。
2009/06/01(月) 09:36:50ID:hCSvJ7Y8while( ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0 && CheckHitKey(KEY_INPUT_RETURN) == 1 ){
Sleep(16) ;
}
0304名前は開発中のものです。
2009/06/01(月) 10:52:22ID:YGv3z7sb昔、組み込みプログラムでやったな、そういう処理。
0305名前は開発中のものです。
2009/06/01(月) 16:12:49ID:rm5/xw9Eclass Key {
private:
int keyCode, state;
public:
Key( int KeyCode ) : keyCode( KeyCode ), state( 0 ) {}
int CheckHit() { int tmp = state; state = CheckHitKey( keyCode ); return tmp ? 0 : state; }
};
//WinMain
...
Key enter( KEY_INPUT_RETURN );
if(enter.CheckHit()){
...
0306名前は開発中のものです。
2009/06/01(月) 21:33:29ID:lE2okL9b0307名前は開発中のものです。
2009/06/01(月) 22:14:20ID:MR6y8v2X0308名前は開発中のものです。
2009/06/01(月) 22:52:38ID:aqGzCF5U0309名前は開発中のものです。
2009/06/01(月) 22:57:02ID:eaj8yaj9それはともかく言われたように押してくごとにABCD表示させようと思ったら
>>300を変更するとしたら
int returnOn = 0; // ←
while(ProcessMessage()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0){
if(CheckHitKey(KEY_INPUT_RETURN) && !returnOn){ // ←
switch(i){
case 0:
input[i] = 'A';
break;
case 1:
input[i] = 'B';
break;
case 2:
input[i] = 'C';
break;
case 3:
input[i] = 'D';
break;
}
i++;
returnOn = 1; // ←
}
if( !CheckHitKey(KEY_INPUT_RETURN)) returnOn = 0; // ←
(以下略)
とかやるとか
0310名前は開発中のものです。
2009/06/01(月) 23:27:38ID:FdTrWJbB0311名前は開発中のものです。
2009/06/02(火) 09:36:41ID:9M4SMxHrなんかゲームのメインループ()
{
if((Aボタン==1)&&(Aボタンバッファ==0))
{
なんか押された瞬間だけ1回やりたい処理
}
Aボタンバッファ=Aボタン
}
最初からKEY_DOWN、KEY_UP的なものがライブラリに有れば楽なんだが
ゲームじゃしょっちゅう使うし
0312名前は開発中のものです。
2009/06/02(火) 09:48:11ID:fOpSnwq/そのバッファに生でアクセスすることはあまりないが、
かといってキーごとにオブジェクト化するのもありえない
0313名前は開発中のものです。
2009/06/02(火) 11:07:30ID:lqyt4myq0314名前は開発中のものです。
2009/06/02(火) 11:08:32ID:fOpSnwq/上の例の場合、バッファは二つ以上ないとあまり意味ない
キーがマッピングしきれないって人はchar配列とか使えばいい
よりこだわる人はRawInputで
0315名前は開発中のものです。
2009/06/02(火) 21:23:19ID:CgQN485t自分が使ってるルーチンのコードを記事にまとめました
http://d.hatena.ne.jp/kokarage/20090602/p2
0316名前は開発中のものです。
2009/06/02(火) 22:46:42ID:D2ufpiqQキーコンフィグの実装で悩んでるんだけど、
>>315とかだと KEY_INPUT_なんとか の部分は変えられないし
どうやってキーコンフィグ実装するんだろうか・・・
同じようなソースでenumを弄っても根本的には変わらないし
0317名前は開発中のものです。
2009/06/02(火) 23:00:27ID:fOpSnwq/0318名前は開発中のものです。
2009/06/02(火) 23:00:38ID:vp7xQIPqKEY_INPUT_なんとかとスクリーンに表示する文字との対応表は作らにゃならんが
0319名前は開発中のものです。
2009/06/02(火) 23:19:31ID:rGe8VGDA312 名前:名前は開発中のものです。[sage] 投稿日:2009/06/02(火) 09:48:11 ID:fOpSnwq/
32ビットか64ビットの整数をバッファにしてビット演算で書き込み、取り出しが一般的だろ
そのバッファに生でアクセスすることはあまりないが、
かといってキーごとにオブジェクト化するのもありえない
314 名前:名前は開発中のものです。[sage] 投稿日:2009/06/02(火) 11:08:32 ID:fOpSnwq/
抜けてたが、
上の例の場合、バッファは二つ以上ないとあまり意味ない
キーがマッピングしきれないって人はchar配列とか使えばいい
よりこだわる人はRawInputで
317 名前:名前は開発中のものです。[sage] 投稿日:2009/06/02(火) 23:00:27 ID:fOpSnwq/
少しは頭使えよww
0320名前は開発中のものです。
2009/06/02(火) 23:23:59ID:9M4SMxHr自分の場合:
ちょっと>>315と関数の仕様が違うけど
KEY_STATE getKeyState(int pad_num, KEY_FUNC key_func);
if(getKeyState(1, shot_btn) == KEY_DOWN){
ショット処理
}
コンフィグのiniファイルかなんかを読んで
shot_btnとかjump_btnとかの数字を適当に書き換える
今パッと思いついただけでコンフィグ実装したことないけど
0321名前は開発中のものです。
2009/06/03(水) 01:33:47ID:BENUHFDk俺も大体そんな感じでやってる
0322名前は開発中のものです。
2009/06/03(水) 01:35:57ID:ZbYk0Q0Kウインドゥモードにした場合、勝手にウインドゥを作成して表示ではなく、あるウインドゥを使うように
することってDXライブラリではできますか?
0323名前は開発中のものです。
2009/06/03(水) 02:49:29ID:jjOgvpoK例えばIEのウィンドウに表示したりとか?
意味がよくわからんが何より意図がわからない
0324名前は開発中のものです。
2009/06/03(水) 04:00:28ID:bNYd6KiM0325名前は開発中のものです。
2009/06/03(水) 10:50:20ID:tN/MRQC4無理じゃないか?
0326名前は開発中のものです。
2009/06/03(水) 12:26:59ID:jjOgvpoKジョイパッド無理じゃなかったっけ?
まぁ可能かどうかは別にして
それをどうラッピングして押下げや押上げの判定を楽にしようかって話なんじゃ
0327名前は開発中のものです。
2009/06/03(水) 14:28:21ID:/YZEGe2A押上判定は個々の部分でやってるな。
0328名前は開発中のものです。
2009/06/03(水) 17:51:51ID:JOR7X/qwttp://www.dotup.org/uploda/www.dotup.org90647.zip.html
考え方は>>315と同じ
0329名前は開発中のものです。
2009/06/03(水) 18:54:40ID:jjOgvpoK自分はWin32APIのイメージが強すぎたせいか
KEY_UPとかキー状態の列挙体を戻り値で返す方法前提で考えていたけど
メンバにアクセスして真偽だけ返すという手もあるのか…
0330名前は開発中のものです。
2009/06/03(水) 20:15:41ID:n5yqAu71意味わからん。>>307さんですか?
0331名前は開発中のものです。
2009/06/03(水) 20:41:08ID:RNCUnVzX0332名前は開発中のものです。
2009/06/03(水) 22:22:44ID:DNn913L50333名前は開発中のものです。
2009/06/03(水) 23:55:15ID:ZbYk0Q0K0334名前は開発中のものです。
2009/06/04(木) 00:44:33ID:4zSVCft70335名前は開発中のものです。
2009/06/04(木) 00:56:02ID:uCnhFctq0336名前は開発中のものです。
2009/06/04(木) 03:42:53ID:pMlbkkXE0337名前は開発中のものです。
2009/06/04(木) 04:45:47ID:EMFSgqr30338名前は開発中のものです。
2009/06/04(木) 07:23:29ID:pMlbkkXE名乗ったのが4人なら、もっと天津飯ネタを取り入れていた
0339名前は開発中のものです。
2009/06/04(木) 19:12:58ID:EMFSgqr3>>328式がベストでおk?
0340名前は開発中のものです。
2009/06/04(木) 21:55:52ID:94jaKxLF結局の所
DXライブラリで作ったゲームと
OpenGLで作ったゲームと
DirectXで作ったゲームって
どこがどうちがうの?ほぼ一緒だろ?
0341名前は開発中のものです。
2009/06/04(木) 23:58:41ID:NBcwy8pb名称が違う
難易度も違う
0342名前は開発中のものです。
2009/06/05(金) 00:24:06ID:LjYKB7R9DXライブラリ:楽。動作実績が大きい。
OpeGL:日本のゲーム作りに関しては情報少ない。
DirectX:DXライブラリと似たようなラッパーを書く事になる。動作検証要。
0343名前は開発中のものです。
2009/06/05(金) 00:26:20ID:jQ78PNQ20344名前は開発中のものです。
2009/06/05(金) 00:29:54ID:MVmrQAbM0345名前は開発中のものです。
2009/06/05(金) 00:39:57ID:fb3Bnpon→日本人からプログラミングの素養を奪い取るキラーソフト
DXライブラリ
→日本人から3Dプログラミングの素養を奪い取るキラーソフト
漢ならLinux環境でC+OpenGLでvi+gdbするべし
0346名前は開発中のものです。
2009/06/05(金) 01:17:49ID:k3aCK9Tqそれなら薦めるべきはSDLな気がする
それだけだとせっかくCとGL使ってもキー入力まわりで移植性がなくなる
GLUTのキー処理は論外だし
SDLからGL叩けるし
メジャーなプログラミング言語のほとんどがSDL対応してるし
でもこのスレ的にどうかと思うぜこの話題
0347名前は開発中のものです。
2009/06/05(金) 01:22:53ID:gGshfnNu0348名前は開発中のものです。
2009/06/05(金) 01:48:22ID:byAKAyX7「作ったゲーム」に関していう違いなら
DXライブラリで作ったゲーム
動作実績があるライブラリだから動作する環境が多い
速度は各ソフトの特性に合わせて最適化できないぶん遅い
ライブラリで実装されていてDirectX直叩きなら使える機能が使えないから表現力はDirectX直叩きした場合より劣る
OpenGLで作ったゲームとDirectXで作ったゲーム
エンジンの動作検証は作者PCのみだからプレイヤー環境で動作しない可能性はライブラリを使った場合より高い
作るソフトに合わせて最適化できるのでDXライブラリ作者と同レベルのプログラム力を持っていれば確実にDirectX直叩きのエンジンの方が動作速度が速い
DirectX直叩きできるから表現力はDirectXの表現力とイコール
0349名前は開発中のものです。
2009/06/05(金) 02:19:36ID:byAKAyX7基本的にゲーム製作を助けるためのものだからプレーヤー側から見ればDirectX直叩きで
DXライブラリと同等かそれ以上の性能のオリジナルエンジンを使ってソフトを作ってくれた方が嬉しいのは確かだろう
(それが製作者が支払う労力に見合うかどうかはさておき)
ただ、DXライブラリの存在があったことによって世に出ることができたゲームソフトもあるだろうから
端的にプレーヤー側にとっては動作安定以外にはデメリットしかないという結論に達することはできない
345的な理論はBASIC言語についても似たようなことが言われていたね、まあ3D対応すれば多少は改善されるんじゃないか
0350名前は開発中のものです。
2009/06/05(金) 06:01:05ID:/qtS2mASDirectXとか使おうもんならC++の上にこれも覚える負担に駆られるためかなり厳しくなる
DXLIBだと覚えること比較的少なく済むからC++に労力割けれるしね
だからその人その人の状況次第でしょう
あとこう書くといちゃもんつけてくる奴がいるから言っとくけど
全半角に突っ込むのなしね
俺タイプ苦手だから一々直すの面倒いからそれだけは言っとく
0351名前は開発中のものです。
2009/06/05(金) 07:44:06ID:Jb6PFwRw0352名前は開発中のものです。
2009/06/05(金) 08:16:16ID:2+rjN8tBATOKだってファンクションキー一回押すだけだろうに……。
ていうかタイプ苦手だから面倒なんじゃなくて
それくらいを面倒がるからいつまでたってもタイプ苦手なんじゃないか。
0353名前は開発中のものです。
2009/06/05(金) 11:48:16ID:KAzeFILe0354名前は開発中のものです。
2009/06/05(金) 12:27:22ID:/qtS2mAS0355名前は開発中のものです。
2009/06/05(金) 14:40:29ID:pZVc1EDuプログラミングしてて全角でコメントした後半角になおしたりとか正直邪魔くさい。
0356名前は開発中のものです。
2009/06/05(金) 17:58:00ID:b0tlHB//初心者用でいいなら14歳から始める〜 とか
0357名前は開発中のものです。
2009/06/05(金) 21:40:13ID:k3aCK9Tq>>349
一通り触ったことはなさそうなことだけ伝わってくる文だな
その割に長くてうざい
0358名前は開発中のものです。
2009/06/05(金) 21:56:05ID:WwCy/X5YOpenGLならラッパー書かずに済むの?
0359名前は開発中のものです。
2009/06/05(金) 23:07:05ID:1schIxWd0360名前は開発中のものです。
2009/06/05(金) 23:14:10ID:KAzeFILe明日あたり立ち読みしに行ってみます
0361名前は開発中のものです。
2009/06/05(金) 23:49:13ID:LjYKB7R9誤字脱字内容間違い多いからな。
0362名前は開発中のものです。
2009/06/06(土) 00:03:30ID:H/iQ8fyWむしろ技術力がつく
0363名前は開発中のものです。
2009/06/06(土) 00:06:10ID:sFhdVHFw自分で言語やコンパイラつくったり
0364名前は開発中のものです。
2009/06/06(土) 00:44:32ID:yKGSZjfM俺もこれやりたい
ウィンドウ周りは.NET Frameworkにまかせて、あるPictureBoxコントロールの中で描画とか
0365名前は開発中のものです。
2009/06/06(土) 00:57:21ID:sFhdVHFw0366名前は開発中のものです。
2009/06/06(土) 02:23:33ID:0RWuIZ8Xと言うよりあれはそんな初心者向きじゃないような気モス
ある程度基本はできていた方がいいかも
俺は大分参考になったし俺のやり方はそれがベースになってる
0367名前は開発中のものです。
2009/06/06(土) 14:28:01ID:9zaJ0Qz/プレイヤーがx座標400ぐらいまで行ったら、背景画像をスクロールさせる感じで組んでみたら
動いてるようには見えるけど自身の座標は当然変わらず、後ろのハリボテが動いてるだけになったw
どんな感じでマップスクロールって作ってる?
0368名前は開発中のものです。
2009/06/06(土) 14:45:01ID:mp6p4QK3基本的のその考え方で間違ってない。
気に入らないならもっと考え方を進めていけばいいだけ。
0369名前は開発中のものです。
2009/06/06(土) 15:02:08ID:triYp4O50370名前は開発中のものです。
2009/06/06(土) 16:34:01ID:4wIgR8zNあれは裏バッファ2に描いておいて、裏バッファに縮小転送、フリップというやり方
なのでしょうか?
それとも拡大・縮小の段階毎に元絵を用意しておいて、現在の段階に応じた元絵
を裏バッファに描画、フリップというやり方なのでしょうか?
0371名前は開発中のものです。
2009/06/06(土) 17:22:10ID:mp6p4QK3普通にそれぞれの画像を描画する際に縮小描画するだろうな。
当然、表示座標も縮小計算して。
0372名前は開発中のものです。
2009/06/06(土) 17:26:21ID:Fiwfc+rD>>370だと後者になんのかな
0373名前は開発中のものです。
2009/06/06(土) 17:40:50ID:mp6p4QK30374名前は開発中のものです。
2009/06/06(土) 18:10:53ID:94tz/m1F拡縮機能使ってる? それとも予め画像用意しとく?
って聞きたいだけじゃないかな。
0375名前は開発中のものです。
2009/06/06(土) 18:59:26ID:9zaJ0Qz/それともXY座標だけのでもいい?
0376名前は開発中のものです。
2009/06/06(土) 19:42:33ID:94tz/m1F>int SetWaitVSyncFlag( int Flag ) ;
>ScreenFlip関数 実行時にCRTの垂直同期信号待ちをするかのフラグセット
ってあるんだけど、
これって液晶モニタだと関係ない(常にtrue扱いになる?)んだろうか。
手元に液晶しか無いんで、プログラムが間違ってるのか仕様なのか判断できないんだ。
>375
なんの当たり判定だよと。
x,yだけで処理できるなら三角関数使わなくてもいいんじゃないの?
0377名前は開発中のものです。
2009/06/06(土) 21:33:11ID:gMk4d0exとりあえずうちの液晶モニタじゃ普通に動いてるし。
グラボ(RADEON)で垂直同期信号のON/OFF設定ができてるから
問題となるのはグラボの設定って気がする。
0378名前は開発中のものです。
2009/06/06(土) 21:49:45ID:94tz/m1Fなんかすまん。
色々と試してみた結果、
グラボの設定を変更&フルスクリーンでFPSが60Hzの上限を突破することが出来た。
まあ、実際に使うことはないだろうけれど。
0379名前は開発中のものです。
2009/06/06(土) 21:52:06ID:9zaJ0Qz/横スクロールの当たり判定
0380名前は開発中のものです。
2009/06/06(土) 22:08:08ID:gMk4d0ex君はもう少し自分の考えてる事を他人にわかって貰う努力をしろw
スクロールと当たり判定と三角関数がどう関わってくるのか、の説明とか
どうして「三角関数が必要かも」と思ったか、とか。
0381名前は開発中のものです。
2009/06/06(土) 22:46:25ID:sFhdVHFw0382名前は開発中のものです。
2009/06/06(土) 23:14:29ID:vskJtjA7おまえ、偉そうジャン?
0383名前は開発中のものです。
2009/06/06(土) 23:46:26ID:+AmloxXp0384名前は開発中のものです。
2009/06/07(日) 00:27:15ID:jsaQKHFo努力しろとか、おまえ、何様ジャン?
0385名前は開発中のものです。
2009/06/07(日) 00:43:22ID:7g+XVYWNこれのメッセージの中身って、%dで変数表示したりできるんですか?
できるならどうやってやるんでしょうか、教えてください。
0386名前は開発中のものです。
2009/06/07(日) 00:47:04ID:jsaQKHFoリファレンス読む努力しろ
こんな簡単な事ができなきゃやめちまえ
0387名前は開発中のものです。
2009/06/07(日) 00:57:18ID:WlXcjgXY返答ありがとうございます。
どうも、うまく伝わってなかったみたいですね。
そうか、1つの建物なり乗り物を描画する時に縮小描画してるというわけですね。
それが普通ということですね。
>>386
あんたも努力しろって言ってるジャン
0388名前は開発中のものです。
2009/06/07(日) 00:57:54ID:fLd/zS9/俺も379読んで380と同じ意見だ
384は379だけでわかるのか?
>>385
できない、sprintfを調べてみるといい
0389名前は開発中のものです。
2009/06/07(日) 02:35:15ID:3sx78L/gまあ俺は2次元しか知らんから分からんが
0390名前は開発中のものです。
2009/06/07(日) 10:52:33ID:OFYyutYg0391名前は開発中のものです。
2009/06/07(日) 11:57:27ID:caHBoLjZある問題について出題者が回答者の質問にYes/No形式でヒントを与えつつ
解答を推理していくゲームか。
なるほど確かに、質問者がちゃんと状況を説明できず、情報も小出しにしかできないで
質問に答えようとする人間が、なんとか回答するに足るだけの情報を
引き出そうと四苦八苦するところが似ているな。
0392名前は開発中のものです。
2009/06/07(日) 12:07:51ID:OFYyutYgゲーム化したぜ(原作がスレって意味じゃないが)
スローンとマクヘールの体験版をプレイする作業に戻るんだ
0393名前は開発中のものです。
2009/06/08(月) 08:25:05ID:LOgaJ0S5敵を出すときって、マップ座標の一定値までプレイヤーが来たら敵を出現させるって感じでいいのかな?
今敵の出現関数の引数にマップ座標渡してやってるんだけど、それだと思った所に出すのがめんどくさい。
もっといい方法ない?
0394名前は開発中のものです。
2009/06/08(月) 08:29:40ID:sCESisPc他にもっと適切なスレがあると思うんだが。
>>393
それで特に間違いはないと思うが、
マップデータに敵の存在情報を埋め込むという手もあると思うな。
自由スクロールかどうか等で、いろいろ工夫がいるようになるだろうけど。
0395名前は開発中のものです。
2009/06/08(月) 09:03:31ID:5KFTi9VQ2Dスクロールゲームと言ってもいろいろあるからそれにもよる
0396名前は開発中のものです。
2009/06/08(月) 10:40:15ID:tSfMBcni確かにDXライブラリ以外の話題はスレ的によくないと思うし。
0397名前は開発中のものです。
2009/06/08(月) 11:12:30ID:WLx6NXXxそれらで別れるからなあ。
0398名前は開発中のものです。
2009/06/08(月) 11:33:19ID:cazy22G6【初心者】スレを立てる前にココで質問を【Part19】
http://pc11.2ch.net/test/read.cgi/gamedev/1236761855/
0399名前は開発中のものです。
2009/06/08(月) 13:24:46ID:5KFTi9VQ0400名前は開発中のものです。
2009/06/08(月) 13:44:11ID:1Ns/D0F70401名前は開発中のものです。
2009/06/08(月) 17:09:17ID:Q/bmJU+V■ このスレッドは過去ログ倉庫に格納されています