- 1 名前:名前は開発中のものです。 mailto:sage [2008/10/25(土) 17:37:53 ID:BCFbbKco]
- Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリの詳細ついては homepage2.nifty.com/natupaji/DxLib/ を参照して頂きたい。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。 過去スレ:DXライブラリ 総合スレッド pc11.2ch.net/test/read.cgi/gamedev/1197468399/
- 290 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 23:34:35 ID:Swo2xfir]
- >287
とりあえず、何でもいいので1つ完成させてからじゃないと 定番の書き方とかは説明しても意味が無いし、おそらく理解できないと思う。
- 291 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 23:42:11 ID:MCFYNnvA]
- #defineは計算式入れられるのがいいな
気を付けないと間違った結果が返ってくるハメになるが
- 292 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 00:49:54 ID:UsQn7VQk]
- >>287
おめでとう。お世辞にも綺麗なソースとは言えないけど、 モノとして動いているということはとても大事なこと、すごいことだよ。 作り続けていれば段々上手くなって行くはず。 あと>>285の修正をした段階で、今度は敵の消滅タイミングがおかしくなると思う。 敵のライフが-1になった瞬間には敵は消滅せず、その後自機が弾を発射した瞬間に消滅する、っていう風に。 これを修正するには、敵をデタッチ(殺す)処理をしている部分を移動させればいい。 /* ↓elseは消し、必要なら if ( enemy01_Life >= 0 && hitS < hit ) などとする。しなくても出来るが。 または if ( shotflag == 1 ) のところに敵の生死チェックを入れる。即ち if ( enemy01_Life >= 0 && shotflag == 1 ) とする。しなくてもでき(ry */ if(hitS < hit ){ //敵の画像と自機の玉を直角三角形結んだ時の斜辺が当たり判定より小さい時(hit!!) PlaySoundMem( hit_test , DX_PLAYTYPE_BACK ); shotflag = 0; enemy01_Life -=1; if(enemy01_Life < 0){ //敵死亡してる時 /* この3行を */ DeleteGraph( enemy01 ) ; /* ここに */ } /* 移動 */ } まずはインデント(ソースコードの段落処理)から始めよう。
- 293 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 01:24:21 ID:2jf1rfQx]
- そこでPythonとrubyの登場ですね
- 294 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 07:22:24 ID:HIyGZizO]
- >>286
さっき提示したコードの価値をただのサブルーチン呼び出しとか 言っちゃってる時点でなんかもう全然わかってない。 あれはShotオブジェクトにEnemyとの当たり判定を”頼んで”いるんだよ。 この違いがわからないんならいつまでたっても素人のまま。 というか >もっと具体的に言えばイベントハンドラ(やデリゲート)がオブジェクト指向だなぁって。 デリゲートなんか関数型プログラミング言語の概念の拝借だよ。 これがオブジェクト指向!なんてデザインパターンこそがオブジェクト指向!というのと同じくらい笑えるんだが。 >概念的に無理やり感があるのと、非オブジェクト指向でも書けるってので、 >GUIアプリと比べて相性がいい方ではないって事。 どこが無理やりなんだよw さっきのコード、Enemy,Player,Shotというクラスを抽出できるけど、これのどこが無理やりなんだよ。自然だろうに。 それとGUIアプリだって手続き型で書ける。イベントハンドラやデリゲートはオブジェクト指向の一機能を使って 実装されてるけれど、それ自体はオブジェクト指向じゃない。だからVBでもGUIアプリが組めるわけだ。 ここまで言ってゲームをオブジェクト指向で組むのは向いてないと言うならもうしらね というかもっと勉強してくださいいやマジで
- 295 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 09:52:32 ID:1zOFBaLD]
- C#6年やってるんだけど未だにオブジェクト指向わからねえ。
でもゲームとオブジェクト指向は相性いいと思うよ。
- 296 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 11:03:33 ID:DFScKmBl]
- イベントを使ってたところをEventListenerとか使ってobserver剥き出しに変更したら
オブジェクト指向になるのか? 実質的に全く等価なのに? >>294の言うオブジェクト指向って何なんだ
- 297 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 11:38:14 ID:NFgVN8d3]
- オブジェクト指向って単純に、人が走っても車が走っても同じ「走る」だ、ってだけじゃねーの
- 298 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 12:16:50 ID:h39ltAFv]
- オブジェクト指向って考え方が出る前からプログラム作って遊んでるが
未だにオブジェクト指向が理解できん。 273で言うならちょっと表へ出ろレベル以下だ。
- 299 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 17:59:02 ID:17g8Fdx4]
- >>294は釣りだよな?w
突っ込むところが多すぎるww 「ShotオブジェクトにEnemyとの当たり判定を”頼んで”いる」だけでオブジェクト指向とかww ところで、ゲームをオブジェクト指向で組むのは向いてないって話題は誰がしてるの?してない気がする。。
- 300 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 18:01:31 ID:17g8Fdx4]
- >>297
たぶんオブジェクト指向入門書にはそういう概念的な事が書いてあると思うけど、 オブジェクト指向って本当は概念の事じゃないよ。 もっと具体的なプログラミングの事。 「ShotオブジェクトにEnemyとの当たり判定を”頼んで”」も別にオブジェクト指向じゃないww
- 301 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 18:44:57 ID:CDnr1Yv3]
- >>300
そうなん? レシーバか引数が違えばそれは別物だっていう名前空間の概念がまずあって そいつを楽に実現するための補助がクラスやテンプレートやインターフェースなんだって認識だったが 具体的なプログラミングの事を言うなら言語がクラスベースかどうかで相当違ってくると思うし あと>>299最後の行は>>272
- 302 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 18:58:29 ID:AhiFoxCU]
- 構造体に関数がくっついただけのクラスのインスタンスを生成して
それで動かしたらオブジェクト指向。 そう思っている俺が通りますよ。
- 303 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 19:02:22 ID:ST598Jfh]
- 何もめてんだよ
>>272は基本的に用語を間違っているがそれに気付いていない で、親切に答えてくれた>>273と会話がかみ合っていない >>272はVBライクなコンポーネント貼りつけとプロパティ設定での プログラミングスタイルとオブジェクト指向を混同している また、Windowsのイベントドリブン構造を言語仕様と勘違いしてる -まとめ- Q.DXライブラリを使うとVBでアプリ作るみたいにコンポーネント貼ってプロパティ設定だけでプログラムできますか? A.できません Q.イベントドリブンがオブジェクト指向ですよね? A.違います Q.イベントドリブンでゲームプログラムは書けますか? A.書けます Q.オブジェクト指向でゲームプログラムは書けますか? A.書けます
- 304 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 19:18:54 ID:mrF69eoK]
- ん〜・・・?
>>272の >DXライブラリ使ってもOO(OO風ともいう)を意識して書いてるけど っていうのはDXライブラリ自体がC(非OOPL)で書かれてるけどって意味だろ >>303こそ勘違いしてるだろ
- 305 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 19:22:31 ID:17g8Fdx4]
- 厳密に言えばC/C++使ってる時点でピュアなオブジェクト指向は無理だけどな。
メッセージ呼び出しっていう機能はないし、それに似た機能はメソッド呼び出し(=関数呼び出し)でしかないし。 組み込み型もオブジェクトじゃないしいきなりint main(){}で始まるしww
- 306 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 19:33:16 ID:5menpJL8]
- 幸せって何ですか?
- 307 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 20:33:18 ID:P8eg6rH1]
- オブジェクト指向ってそんなに高度な事なの?
それとも人それぞれ考え方が変わるモノなの?
- 308 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 20:46:29 ID:uHyIUedU]
- CしかわかんなくてもDirextXゲームプログラムがさっくりできちゃうのがウリの
DXライブラリのスレでオブジェクト指向を熱っぽく語る男の人って……
- 309 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 21:04:56 ID:SEtb8HBj]
- ____
/ \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ < 厳密に言えばC/C++使ってる時点で | |r┬-| | ピュアなオブジェクト指向は無理だけどな。 \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // だっておwwwww | :::::::::::(⌒) | | | / ゝ :::::::::::/ | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / バ | | l||l 从人 l||l l||l 从人 l||l バ ン ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
- 310 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 21:23:33 ID:a4AnO2Cl]
- DXライブラリで質問が・・・
あ、スレ間違えました!すみません
- 311 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 21:47:10 ID:17g8Fdx4]
- >>309
int main()ってオブジェクト指向的になんなの?www
- 312 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 22:41:43 ID:ST598Jfh]
- >>304
何がん〜・・・?だ そんな事だから >>286 >んーていうかC#の件は、ライブラリが優秀で作りやすい=オブジェクト指向って事じゃなくて、 >コントロール一つ設置してイベントを呼び出すってだけでオブジェクト指向を感じる。 とかマヌケな事を書いてしまうのさ >>303のまとめでいいんだよ RADツールと言語の区別もついてない質問に対して、みんなにちゃんと答えてもらってる事をまず理解するべきだな 元々スレ違いだ、感謝こそすれ相手を見下すとか勘違いすぎるんだよww
- 313 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 23:20:03 ID:17g8Fdx4]
- なんか常に話がちょいズレの人いるな
- 314 名前:さらに話がちょいズレの人 mailto:sage [2008/12/15(月) 00:08:20 ID:JJfbOdAj]
- >>303には、同意だけど。 OOなんて元の発生が3つぐらいあって、
さらに様々な言語にそれらのOOが混同されながら導入される過程で どんどんと複雑に入り組んでいってる。 (しかも、良くも悪くも元がProgramming言語における概念だから、 普通の言葉に意味を汲み出す過程で色々とノイズや過不足が起こる。 さらに、OOAだ、OODだなんだので純粋なOOよりも とりあえず使える道具としてのOOが今のメインストリームだと思うし。) だから、結果的には、人によってOOの概念も色々な違いがある。 あと、そんな訳だからと言う訳じゃないがCだって、OOPLは可能。 ただし、言語的なサポートが対応してないから、 様々な工夫をする必要があったりする。 また、逆の意見としても>>305のint main()で始まるからオブジェクト指向じゃない。 ってのもどうかと思う。 OSも含めたアプリケーションをProgramとみるならば、 int main()は、ズバリそのアプリの呼び出しメッセージと見做しても誤解ではないしね。 あと、>>301の言ってる事は別にOOじゃないと思うぞ。 それらは単に多態性とかであって、OOとしてあったら好ましいが、 さらに>>300のプログラミングの概念と具体的なプログラミングが別モノっぽいのも違うんじゃない? 基本アセンブリでやるでもない限りは、プログラムは概念に概念を積み上げた産物だし、 それらの概念を如何につかうか?どのように解釈するか?がプログラミングでしょ。 だからこそ、gotoは悪!!やJavaにはポインタはありません!!みたいな話も出てくるわけでww
- 315 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 00:20:00 ID:xNu63hXk]
- 俺は別にピュアだか厳密だか理想的だかなOOじゃなくても
それなりに作れてメンテできればいいかな ピュアなのがいい人はその人が納得する言語なりなんなりを使えばいいし
- 316 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 00:48:36 ID:syJyrDB+]
- ついこの前DXライブラリでゲームを作り始めた初心者なんですが。
時間のとり方について質問があります ttp://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_other.html#R7N1 のサイトを見て時間所得して表示までできたのですが、ボタン(たとえばスペースボタン)を押して時間を最初からやり直すのはどうすればいいでしょうか?(キー入力状態の取得はできています) 日本語わかりずらかったらすいませんm(_ _;)m
- 317 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 00:52:41 ID:r0Y4Aqo3]
- int ゲーム内ではこっちを使う;
ゲーム内ではこっちを使う = GetNowCount(); if (ボタンが押された) ゲーム内ではこっちを使う = 0;
- 318 名前:317 mailto:sage [2008/12/15(月) 00:57:14 ID:r0Y4Aqo3]
- 間違えた。正しくは
int ゲーム内ではこっちを使う; int 前にリセットした時間; int now = GetNowCount(); ゲーム内ではこっちを使う = now - 前にリセットした時間; if (ボタンが押された) { ゲーム内ではこっちを使う = 0; 前にリセットした時間 = now; }
- 319 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 05:27:51 ID:dny0TB5O]
- >>148
いや、スレチでもないぞ。ライブラリ作者の古い作品だから
- 320 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 11:37:12 ID:gYDVxSnY]
- >>273
if( shot->hitTest( enemy ) ) { /*ヒット処理*/ } って書くとたしかに変更に強くわかりやすくなるけどそれがOOだっていうのは尚早だよ。 hitTest()の中身は結局上と同じ事してるんだから。 だからその部分がOOだって言われるとただのリファクタリング手法でしかない。 もしその部分だけでOOだっていえるならGUIアプリだって TextBox tb = new TextBox; list.add(tb); ほら、同じ。 でも両方ともただオブジェクトを渡してるって事実しかないよ。 それを推しておきながらデリゲートだけじゃOOじゃない!っていうのは横暴だなぁ。 ちなみにVBは今はOOPLだよ。 OOは議論が起きるくらい曖昧なところもあるけど、やっぱりカプセル化・継承・ポリモーフィズムの3つは最低限主張すべきだね。 個人的にはわざわざなんでカプセル化なんてあるのか疑問だけどw(隠蔽や最小の原則なんかは構造化言語からずっとあった)
- 321 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 11:46:55 ID:gYDVxSnY]
- >>303
煽るわけじゃないけど流れを読んできてなんでいきなりWindowsのイベントドリブンが出てくるのかなって思ったんだけど、 きっと>>305のメッセージ呼び出し機能って言葉からそう思ったのかな? たしかにイベントドリブンもメッセージっていうけどOOのメッセージっていうのは全く別物だよ。 純粋なOOPL(Smalltalkなど)ではメッセージ機能っていうのがあるんだ。 メソッド呼び出しに似てるけどちょっと違う。 C++ではメンバ関数、Javaではメソッド呼び出しで実現してるけどね。 詳しくは自分で調べてみて。
- 322 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 13:36:35 ID:Mi5wQEEl]
- >>321
>>286 >コントロール一つ設置してイベントを呼び出すってだけでオブジェクト指向を感じる。 >もっと具体的に言えばイベントハンドラ(やデリゲート)がオブジェクト指向だなぁって。 いや、Windowsのイベントドリブン構造の事だ 読めばわかる
- 323 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 17:20:30 ID:k3xYLtfr]
- オブジェクト指向は僕達の心の中にあります
- 324 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 18:27:06 ID:VbZykIE5]
- 俺の中でオブジェクトっつったらスプライトの事だ!
- 325 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 20:55:40 ID:0kk0L8Su]
- じゃあ俺は、この形。
int WINAPI WinMain(うんたらかんたら〜){ Application App; App.Run(); return 0; } Applicationのインスタンスが生成されてる間はアプリが生きてる。 App破棄と同時にアプリも終了する、この形がいちばん美しいと思う。
- 326 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 21:40:30 ID:fyQ9eFTJ]
- >>325
シングルスレッドであれば、確かに良いアイディアだと思う。
- 327 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 21:43:08 ID:WW1gkqvT]
- そこまでやる必要あるか?
- 328 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 23:22:35 ID:A6pVWDv7]
- >>326
中でタスクマネージャー的なものでCPU毎に負荷分散させているかもしれんぞ?
- 329 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 00:20:42 ID:fzHt/ZSS]
- >>325のやりかたにどこかまずいところあるの?
- 330 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 00:26:55 ID:JBSSxUHl]
- >>324
用語が適当すぎるよな。 メモリを占拠した実体→「オブジェクト」 コンパイルして出来るファイル→「オブジェクト」 自分自身で処理させる論理機構→「オブジェクト」 名前付けたやつちょっとツラ貸せっていうか 昔、書籍読んだときさっぱり意味わからんかったぜ・・
- 331 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 00:44:36 ID:o3pFEybH]
- メモリを占拠した実体ってインスタンスのこと?
- 332 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 01:58:01 ID:r2TMQqJU]
- 変数じゃないの?変数もオブジェクトだよね
- 333 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 04:02:55 ID:dNyohwYS]
- >324はもっと誉められていいと思う
- 334 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 11:37:43 ID:IA9CyF+N]
- 昔読んだ本には、OOPは
オブエクとは「物」と訳される。曖昧さの象徴である。 頭の中でイメージしなさい。 物と呼ばれる、段ボール箱「みかん箱」がたくさんある。 みかん箱の中身は隠されている、知らなくて良い。 みかん箱を紐で結ぶ事が「プログラム」である。 みかん箱には切替スイッチが付いている、それで位置、色、大きさが変化する。 みかん箱が「オブジェクト」である。
- 335 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 14:57:03 ID:j+OyGE8J]
- 基本的にOOやマイノリティ言語のウンチクや自分語りはスレ違いだな
- 336 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 01:37:25 ID:SDA7SaR9]
- >>334
簡単に言うと バカでも切り替えスイッチをポチって押せば変化する事が出来る。 けどその変化する「仕組み」を理解する必要は無い。 って事? オブジェクト指向あんまよく分からないけど、そうなると定数#defineって簡単なオブジェクト指向に入るの? 例えば #define SPEED 25//数値を変えると速度が変えられます。 ってあったら数字を変えるだけで変化が実装できるし。 なんか違うかw
- 337 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 02:09:42 ID:adQIUXL6]
- >>336
それだけだとただのブラックボックス化。 OOの一部ではあるけどCの関数だってブラックボックスでしょ?
- 338 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 02:33:05 ID:S1ZUobQv]
- グラフィック表示させる関数いろいろあるじゃない
DrawGraphとかDrawTurnGraphとかDrawExtendGraphとかDrawRotaGraphとかDrawRotaGraph2とかDrawModiGraphとか あれみんな同じ重さなのかな あと、やっぱ画像の大きさと重さにも関係あるのかな あと、同じ四角のグラを表示させるのでもその四角のグラ用意して読み込んで表示させるのと DrawBoxで表示させるとでは重さは変わらないのかな
- 339 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 02:38:22 ID:S1ZUobQv]
- 自分でOO使ってゲーム作ろうとすると結局グローバル多用したりパブリック多用しちまうんだよなあ
- 340 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 02:53:08 ID:dezoAnwU]
- >>336
>>337 ttp://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
- 341 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 02:59:26 ID:dezoAnwU]
- >>338
自分で実際に比べてみればいいんじゃね
- 342 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 03:20:54 ID:adQIUXL6]
- >>338
”重さ”ってなんだ?^^; ソース見てベンチ測って見ればいいじゃん。
- 343 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 06:22:20 ID:S1ZUobQv]
- なるほど
その発想はなかったわ そんなこといままでしたことなかったからな 面倒臭さと相談してやるかどうか考えてみる
- 344 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 07:31:49 ID:dezoAnwU]
- >>343
やるならGetNowHiPerformanceCount()を使うのはどうだ? で、計測した方法と結果をここに書けば聞きっぱなしじゃなく他のやつの参考にもなる
- 345 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 08:18:15 ID:/BQwBqZh]
- DXライブラリでスムーズに最大値合成できませんかね?
「画像を減算合成→重ねて加算合成」で実装すると、色深度が16ビットの時汚くなるし、描画コストも倍になるんですが……
- 346 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 20:28:28 ID:S1ZUobQv]
- VC6.0でLONGLONG型表示させるには%I64dでよかったかな
- 347 名前:名前は開発中のものです。 mailto:sage [2008/12/18(木) 10:36:19 ID:Gli++Azx]
- sprintfの話?
__int64 を使うならそれだね。
- 348 名前:名前は開発中のものです。 mailto:sage [2008/12/22(月) 14:30:15 ID:3lSGgVQC]
- DXライブラリいいね!
DXライブラリ3Dとは別ものなのかね?
- 349 名前:名前は開発中のものです。 mailto:sage [2008/12/22(月) 14:38:38 ID:fWgsLNUU]
- 3Dの方は派生verだな
- 350 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 10:53:03 ID:0Fgrfb5X]
- ゲームプログラムってMSXのころBASICでやってた程度だけど
DirectXっつーやつはすごいな ダブルバッファリングっつーのがあれば MSXのころ悩んでたことがほとんど悩まなくていいじゃんね。 スクロールすら画像を移動するだけって最強すぎ。
- 351 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 12:05:58 ID:UbzH2xVf]
- >>350
ちょっ、MSXの頃だってダブルバッファリングしてたっつうのw MSXはページ切り替えできたから、最高に楽だったわ まあ、ハードウェアスクロールがあればもっと良かったが仕方ない
- 352 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 12:16:16 ID:0Fgrfb5X]
- >>351
そうか それはすまんかった あー。そういえばあったような気がしないでもないな。 でも俺の技術では処理速度が遅くてスプライトを動かす程度しかできなかった スクロールとかもってのはか。
- 353 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 15:26:44 ID:9N5u30T9]
- してたっけ。
もう覚えてないやw
- 354 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 16:45:08 ID:SQBujvLn]
- つーか、毎回全画面書き換えに耐えられないからページ切り替えはヘルプ画面とかで
利用してた気がしないでもないが。
- 355 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 17:12:48 ID:VOrvPW1P]
- タイトル画面を一瞬で表示するために使ってた。
あとはAVGの絵や3D迷路の表示とか。 アクション系のゲームには使わなかったな。
- 356 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 17:42:12 ID:1h1OeV87]
- ページを切り替えないと、
ロゴとかが生成される様子が眺められるんだよな。あれはあれで楽しかった。
- 357 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 17:47:08 ID:0Fgrfb5X]
- やっぱりいろいろ工夫する必要あったよね。
でもDXライブラリ使ったらそんなことまったく考えなくてよかったから カルチャーショックだった。
- 358 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 19:15:26 ID:5et0/vdD]
- 流石に時代は変わったわ。
ま、MSXBASICのノリでかる〜く作っちゃえ。
- 359 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 20:09:58 ID:LP/OttsW]
- なんだこの40代スレ
- 360 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 22:47:31 ID:fMIdyvOB]
- How many pages ? ■
- 361 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 00:56:47 ID:DPn+CnyU]
- MSXが導入されて、それまでのマシンで頻発してた
「雑誌掲載のソースコードを打ち込んでも自分のマシンだと動かない」っていうのが 少なくなったって印象があったなあ。 まあ、MSX自体のバージョンアップがあって、その栄光も一瞬だったんですけどね! >359 まだ20代の真ん中くらいだよ!
- 362 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 01:58:38 ID:fELrH+/v]
- Windowsが導入されて、
「自分で作ったプログラムが他人のPCでは動かない」っていうのが 少なくなった…………かな?
- 363 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 05:58:03 ID:IOaM1VJp]
- 昔はスペックのわりにマシンも高価だったし
CPUやビデオをアップグレードするには、PCをまるごと買い換えるのが基本だったり お殿様商売の時代だったなあ
- 364 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 06:59:35 ID:S9NW4iC4]
- >>350
>>351 MSX1なのか2なのか2+なのかターボRなのかどのスクリーンモードなのかで話が違ってくるし ここはDirectXのスレじゃなくDXライブラリのスレだぜ!
- 365 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 09:24:20 ID:WpOVuCI5]
- VECTOR3 hoge;
hoge = mL.GetCameraEyePoint(); としてVECTOR3の中身をとりだしたいのですが hoge.x とかいうような形でとりだせないものでしょうか?
- 366 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 09:43:56 ID:WpOVuCI5]
- VECTOR3 cc;
cc.x=5; mL.printf("cc.x=%d", cc.x); としてもcc.x=0って表示されてしまいます。
- 367 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 09:51:25 ID:WpOVuCI5]
- すみません。
mL.printf("cc.x=%f", cc.x); にしたら表示されました。
- 368 名前:名前は開発中のものです。 mailto:sage [2008/12/28(日) 11:21:41 ID:DBaYT0uR]
- DXライブラリの描画をウィンドウハンドルを渡して
とあるウィンドウ内に表示することはできないでしょうか? こんな感じで blogs.wankuma.com/yo/archive/2008/01/25/119183.aspx
- 369 名前:名前は開発中のものです。 mailto:sage [2009/01/04(日) 19:04:03 ID:X40+Kh+H]
- 更新が止まってるようだけど
DXライブラリ3Dって完成したの?
- 370 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 13:47:48 ID:hCfaSDI/]
- 失礼ですが質問です。
DXライブラリでプログラムを作って起動し、終了させたのですが、 なぜかウィンドウは消えてもタスクバーに"DxLib"が残ってしまいます。 閉じようと何度も試しましたが消えてくれません(タスクマネージャでもダメ)。 以前同じことが起こった時はパソコンの電源をスイッチから直接切らないといけませんでした。 何か解決策はないでしょうか。 このトラブルが発生した時は自分の失敗で無限ループを脱せず、 ツールバーのデバッグの停止を使って終了させました。 たぶん原因はこれだと思います。
- 371 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 14:31:31 ID:etDOrpmF]
- DxLib_End()
を呼ばなかったからに1票
- 372 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 15:06:35 ID:hCfaSDI/]
- >>371
一応プログラムには書いてありますが、 その無限ループが発生したループ内では通ってないと思います。 これが原因なのでしょうか。 しかしDxLib_End()を通ると即プログラム終了だと思っていたのですが・・・
- 373 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 15:15:38 ID:aPIdrXEx]
- DxLib_End()はライブラリの終了であって、
ちゃんとその後ループから抜けてプログラム自体終了(WinMainからreturn)してるの?
- 374 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 15:16:28 ID:va+Hleat]
- >何か解決策はないでしょうか
>たぶん原因はこれだと思います。 >これが原因なのでしょうか。 ソースも晒さず、これだ、あれだと聞き返されても返答が難しいよね >失礼ですが質問です。 失礼だと思ったので、回答は出来かねます
- 375 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 16:13:33 ID:hCfaSDI/]
- >>374
私に誠意が足りませんでした。申し訳ございません。 どう書けばよいのか分からないのですが、 WINMAINの中でreturnさせる直前にDxLib_End()を置いています。 DxLib_End()は一度限りでいいと思っていましたがもしかして違ったいたのでしょうか。 私が尋ねたかったのは、プログラムの起動中、 もしくは無限ループで抜け出せない時にデバッグの停止を行うと、 上述のトラブルが発生するのでしょうか、ということです。 分かりづらくて本当に申し訳ございません。 ソースに関しては、プログラムの内容について尋ねていたつもりではなかったため、 晒さずに漠然とした質問になってしまいました。この点に関しても私に落ち度がありました。 抜粋するのが適当だとは思いますが、ソースを全部晒しておきます。 ttp://www6.uploader.jp/dl/falljohn/falljohn_uljp00026.zip.html ・・・喧嘩腰に見えるorz 敬語って難しいです。
- 376 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 16:20:42 ID:hCfaSDI/]
- これではただの丸投げですねorz
int WINAPI WINMAIN( 略 ){ (ここにプロトタイプ宣言した関数) ←ここの中で無限ループが発生している DxLib_End(); return 0; } という風にはしています。 ソースでは一応ですがループを自分で抜けられるようには少し変えています。
- 377 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 18:20:18 ID:P66gcfVh]
- ソースのヒドさがなんか好感もてるなw
>(ここにプロトタイプ宣言した関数) ←ここの中で無限ループが発生している > >DxLib_End(); それだと、 そのループから処理が抜けない限り、絶対にDxLib_End()には辿り着かない そんでデバッグツールでの停止ではもちろんDxLib_End()が呼ばれず、それが問題だというのは一応あってるかもしれない
- 378 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 19:02:24 ID:KsfcQKrh]
- Flashのムービークリップや、
JavaScriptのsetIntervalのように 毎フレーム実行させるようにセット・解除できるような機能はないでしょうか?
- 379 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 23:22:56 ID:etDOrpmF]
- >>376
ソース見るのだるいから見ないが、 ループを抜けられるようにしてあるなら、ループを抜けてみてプロセスが残ってないか確かめればいいじゃないか。 プロセスがしっかり終了してればDxLib_End()が呼ばれてなくてそれが問題だったって分かるんじゃないか?まぁ、これだけじゃそうとも限らないが。 それでもし終了できていたらDxLib_End()を書いたものと書かないものとを比べればちゃんと分かるが。 で、それが分かればおのずと質問に答えられると思うが。 ただ、ProcessMessage()だっけ?で処理してくれるような終了の仕方(ってある?)の場合には、そこらをしっかり書けばちゃんと終了できると思うが。
- 380 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 23:59:30 ID:V4nq/52k]
- >>376
while(CheckHitKey(KEY_INPUT_SPACE)==0){ battle(); WaitKey(); } ScreenFlip(); WaitKey(); DxLib_End(); return 0; } これだとProcessMessageで-1引いてもループ抜けられないような気がする。 whileの条件式にProcessMessageの判定加えたらいいんでは。 あと抜けた後のWaitKeyは、強制終了後も参照されてしまうのでやめたほうがいい。
- 381 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 00:18:40 ID:F/Rau1w+]
- >毎フレーム実行させるようにセット・解除できるような機能はないでしょうか?
何を毎フレーム実行させたいんだ? というか質問は一つづつにしろよ
- 382 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 07:35:09 ID:Oinf+8tR]
- >>381
情報が足りませんでした。申し訳ありません。 JavaScriptでは、 var set = setInterval(function(){ 〜〜処理〜〜 }, 1); のようにすると、1ミリ秒ごとにfunctionを呼び出すことができます。 また、clearInterval(set);で解除することもできます。 同じように毎フレーム実行させることはできるでしょうか。 whileに全て入れるのが面倒なのです。
- 383 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 08:50:13 ID:35IX/qYC]
- >>379,380
アドバイスありがとうございます。 ProcessMessage()を完全に忘れていました。 まだまだ基本がなっていないようなので、しばらくROMって学んでいこうと思います。
- 384 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 09:59:47 ID:eUx/xd8R]
- >>382
どうも、聞きたいことがよく分からん。 while文に入れるのが面倒なほどに大量に関数があるのか? 複数の関数を一つの関数の中にまとめて、まとめた関数をwhile文の中においておくってのじゃダメなんか? それとも、while文に全て入れるのが面倒じゃなくて、 フレーム管理とかプログラムの状態遷移が分からないってことか? ってか、それはライブラリというより言語の使用じゃないか? もし仮にDxライブラリで出来たとしても、登録、解除のし忘れとかでバグの原因になりそうに思えるんだが。
- 385 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 11:50:37 ID:WsDU+BU3]
- 設計の問題であってDXライブラリとは関係ないな
for (int i = 0; i < enemyCount; i++) enemy[i].Update(); こういうようなことを言ってるの?
- 386 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 15:00:44 ID:Oinf+8tR]
- >>384
whileに全て入れるのが面倒に感じていましたが、言われてみるとそうですね。 >>385 毎フレーム実行させるという意味でこちらにきましたが、観点がずれていたようです。 while文の中にforループを入れるという発想はありませんでした。試行錯誤してみようと思います。ありがとうございました。
- 387 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 15:06:41 ID:WsDU+BU3]
- >>385みたいなのって定石だから
試行錯誤するよりも初心者サイトでも見て素直に真似した方がいいよ
- 388 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 20:56:28 ID:Nr8kFssc]
- >>377
少なくともVSの「デバッグの停止」ならDxLib_End()が呼ばれなかろうとなんだろうとちゃんとリソースを解放してくれるはず。 >>370がいつまでも終了しなかったのはexeを直接起動したかリリースビルドだったのでは? >>380 WaitKey()は別に問題ないよ。 あとScreenFlip()がWhileの外にあったら画面更新されないから中へ。
- 389 名前:名前は開発中のものです。 mailto:sage [2009/01/11(日) 09:44:15 ID:fWlpK7Co]
- DXライブラリを使用つつ、DirectXを直接使用することは出来ないでしょうか?
○○->(うんたらかんたら) という処理が入っていると、エラーが発生して終了してしまいます。
- 390 名前:名前は開発中のものです。 mailto:sage [2009/01/11(日) 11:16:24 ID:yJOODiUh]
- >389
その例文だと全く意味が伝わらない
|

|