- 1 名前:名前は開発中のものです。 mailto:sage [2014/01/16(木) 00:00:31.27 ID:w6WW3hAo.net]
- ゲーム製作におけるC/C++全般に関するスレです。
元スレ DXライブラリ 総合スレッド その17 toro.2ch.net/test/read.cgi/gamedev/1383795645/ 前スレ C/C++ゲーム製作総合スレッド Part1 toro.2ch.net/test/read.cgi/gamedev/1337516528/ C/C++ゲーム製作総合スレッド Part2 toro.2ch.net/test/read.cgi/gamedev/1351015269/ C/C++ゲーム製作総合スレッド Part3 toro.2ch.net/test/read.cgi/gamedev/1357899040/ C/C++ゲーム製作総合スレッド Part4 toro.2ch.net/test/read.cgi/gamedev/1376262450/
- 425 名前:名前は開発中のものです。 mailto:sage [2014/03/24(月) 21:27:07.06 ID:rE2XsGEW.net]
- 最新のdirectx SDKってどこで入手したらいいですか?
ググっても場所がまちまちで
- 426 名前:名前は開発中のものです。 mailto:sage [2014/03/24(月) 21:41:34.76 ID:AEJao4UL.net]
- >>413
Windows8に標準でついてくるそうだ
- 427 名前:名前は開発中のものです。 mailto:sage [2014/03/24(月) 21:50:42.35 ID:WjXmoSNL.net]
- 2012以降のVisual Studioに標準で付いてくる、な
- 428 名前:名前は開発中のものです。 mailto:sage [2014/03/24(月) 22:39:54.92 ID:PqJgwAnT.net]
- マジレスすると>>415のやつ
それかWindowsSDKに一緒に入ってる この程度は自分で調べようぜ
- 429 名前:413 mailto:sage [2014/03/24(月) 22:44:31.69 ID:rE2XsGEW.net]
- インストール出来ました
ありがとです
- 430 名前:名前は開発中のものです。 [2014/03/25(火) 09:41:15.88 ID:KT+bOjyU.net]
- toro.2ch.net/test/read.cgi/gamedev/1175423459/719
↑ ↑ ↑ ↑ ↑ ↑
- 431 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 11:37:26.78 ID:+vTfvSPy.net]
- シューティングゲームを作る時、移動キー押下時に自キャラと他オブジェクトとの衝突判定を行うと思うのですが、
1フレーム移動毎に、敵や敵の弾や壁との衝突判定をしていると 画面上に敵の弾が100個とかあったりするとかなり膨大な数ループ処理が必要な気がします。 一般的なゲームの場合、画面上で動いているオブジェクトは全て1フレーム毎に衝突判定をしているのでしょうか?
- 432 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 13:20:48.84 ID:47820mJU.net]
- 2Dだけど
marupeke296.com/COL_2D_No8_QuadTree.html
- 433 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 13:22:14.35 ID:+vTfvSPy.net]
- >>420
レスした後でそこ見つけたんだけど私の頭では理解が・・・(´・ω・`) 皆この概念でシューティングゲーム作ってるんですかね?
- 434 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 13:23:52.42 ID:ghUA5KPp.net]
- >>420
今まで普通にやってたけど名前が付いてるの始めて知ったわ ありがとう
- 435 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 13:56:03.88 ID:xWjmtvj1.net]
- 俺もその理屈何度も読んだけど理解できないんだよなぁ。
素人に解るレベルに噛み砕いてくれてるとこあればいいのに。 結局座標で判定して分割してたりする。俺。
- 436 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 14:03:19.61 ID:+vTfvSPy.net]
- >>423
ttp://flash.polig.daa.jp/?eid=1242167 今さっき見つけたけどここと同じやり方ですかね? これならなんとなくわかる気がする。
- 437 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 17:00:06.09 ID:VxCnnAtl.net]
- >>419
100個くらいなら問題にならないっていう指摘と なぜ移動キーを押してる間しか当たり判定がないのかというツッコミと
- 438 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 17:08:48.02 ID:47820mJU.net]
- 質問はそこじゃないから
- 439 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 18:28:38.14 ID:VxCnnAtl.net]
- 質問に答えたつもりは無いのだが…
- 440 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 20:24:20.53 ID:Hvj0In47.net]
- ID:VxCnnAtl
その嫌われ者キャラは素なの? 治した方がいいよ。この先も友達出来ないよ。
- 441 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 20:29:33.08 ID:fl0FfJGt.net]
- 一般的なゲームをどのクラスで指すのか分からないけど、
時代やハードを問わない"基本"は力技というか、1フレームごとの全判定だと思うっす。 ベテランプログラマがざっくりと組んじゃうところじゃなければ、 とりあえずプロトタイプを作ってみて、そっから必要な機能を満たしつつ、 どんだけ不要な判定対象を省いて回数減らせるか、ってやり方が多い気はする。 負荷やループ数を気にしているのなら、最近の据え置き機や携帯ゲーム機の場合だけど、 C++使ってるなら、数万回のループ判定程度がボトルネックやオーバーヘッドになることは少なくて(余程複雑な判定をしてれば別)、 問題になるのは2D3D問わずグラフィックスコマンドの場合が圧倒的に多いと思う。 なので、研究目的とかじゃなくて今時のハードで遊べるものを作りたいというだけなら、 判定そのものはそこそこ効率化してれば十分だと思うお。 よくあるシューティング形式なら、>>423の考え方でも十分効率上がりまっせ。
- 442 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 05:30:55.80 ID:y42irIZJ.net]
- そういう変な聞きかじりは止めた方がいい。
>>423ならスクロールなし画面に入るサイズだから判定もせいぜい3000未満でしょ。 それなら普通にforループ回して十分だし、そこだけマルチスレッドにしても良い。
- 443 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 05:42:21.29 ID:66/qzmyK.net]
- 厨が頑張るスレw
- 444 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 10:43:42.33 ID:LEeCMwpD.net]
- 「効率の良い判定方法を教えて下さい」
「今どきのPCは高性能だからそんな事考えなくてもOK!」 じゃ会話にならないでしょ。 ていうか自分の環境を基準に考えるのは止めたがいいよ。
- 445 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 11:05:32.54 ID:tJdovPbY.net]
- 「そこに拘るよりは、他の場所がネックになってる可能性が高い」なら回答としてギリギリありかな
- 446 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:17:49.28 ID:68m9m0Mu.net]
- そうかなぁ。
私も>>425と同じ感想を持ったんだけど。 >>419が実際にそういう総当りをしてみて重かったから他のやり方を聞いてるなら>>432のいうとおりだけど、実際やってみたのかね? そういう感じには読めなかったけど。
- 447 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:21:35.48 ID:3O8ksg+h.net]
- 判定するまでもなく接触していないことが自明なものはそもそも判定しない、とか
あとは、シューティングゲームなら 「敵x敵、敵弾x敵弾、敵x敵弾の判定は不要だからしない」とかで 判定回数を減らせることがある (もちろんその判定がシステム上必要ならやるしかないけど) あと経験不足な人だと A→Bの判定とB→Aの判定を別個にやっちゃってて そのせいで速度が出ないってのもあるかも? これを修正するだけで判定回数を半分にできる
- 448 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:35:21.54 ID:NuLp7Gqa.net]
- >>434
馬鹿じゃないの?ほんと文章を文字通りにしか受け取れないんだね。 誰が100個限定の質問してんだか。どう見ても数多くのオブジェクトがあった場合の衝突判定の質問だろ。 お前以外は皆わかってそういう答え返してるのに、お前だけが100個という質問の中のどうでもいい部分に固執してるわけだがw ここを10000個とでも書かないと分からんの?アホだろw
- 449 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:56:33.60 ID:68m9m0Mu.net]
- >>436
まじか。 想定されるオブジェクトの個数というのは重要な情報だと思ってるんだが、他の人はそうじゃないのか。 1個でも42億個でも対応できるようなやり方を毎回してるの? 100個って書いてあったらだいたい100個くらいを想定してるんだと思うのが普通だと思うが、そうでもないんだなぁ。
- 450 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:59:39.14 ID:LaHWZeJX.net]
- そもそもプログラム組める奴が434みたいな的はずれなこと言い出す訳がないわけで…
つまり、相手するなカス荒れるから
- 451 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 13:17:49.49 ID:462b1dLf.net]
- 膨大な数のループを使う判定は書けるんだからさらに増えたらどうすんのって質問でしょ
- 452 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 14:43:18.93 ID:0LKTz7/0.net]
- >ここを10000個とでも書かないと分からんの?アホだろw
2Dの当たり判定の処理は軽いから、マンコでも同じ事。 やってみ
- 453 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 15:10:53.94 ID:2L1CAOZz.net]
- 話変わって悪いけど、レースゲームで車が高速移動しすぎて当たり判定が出来ない場合ってどうすればいいの?
- 454 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 15:51:52.80 ID:tJdovPbY.net]
- >>441
1ループあたりの移動速度を半分にして、ループ数を2倍回す。
- 455 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 19:51:32.13 ID:D4N08/V9.net]
- >>441
現在フレームをnとした場合、n-1フレームの情報を保持しておいて、nフレームとの線分を引く。 あるいは現在の位置と速度から予測されるn+1の未来予測位置とnフレームとの線分を引く。 この線分が障害物と接触していたら接触した際の処理へ移行するように書いておく。
- 456 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 20:07:57.55 ID:LEeCMwpD.net]
- >>440
PCスペックを限定してないのにその回答は無意味だってば。
- 457 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 21:19:31.28 ID:tdrncXK1.net]
- たとえ、 2MHz Z80であっても、ディスプレイは40x25のキャラクタ画面だから大丈夫だよ
- 458 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 22:05:12.78 ID:LEeCMwpD.net]
- 40*25のテキストエリアで10000個のキャラクター動かすのかw
- 459 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 00:17:11.93 ID:49hdQnYh.net]
- >>442
大丈夫かよ…
- 460 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 00:45:18.83 ID:1M6UES2K.net]
- >>447
俺は>>442じゃないけど大丈夫だと思う、むしろよくある手法じゃない? アクションの通信対戦で処理落ちする時の同期なんかで使われるのも似たようなやり方あるし
- 461 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 00:52:56.05 ID:bd0QOyAi.net]
- 一時期の同人げーって処理落ちしまくりで
「こいつら良いマシンで開発してるんだな…」って嫉妬してたw 最近はPCの性能頭打ちでそういうのなくなったからいいよねww
- 462 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 00:56:09.52 ID:cOG2DjHy.net]
- >>447
スレチかもしれんがUnityの物理演算部分の判定は秒間1000ループが推奨されてるんだからわりと平気なんじゃね?
- 463 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 12:11:43.53 ID:/j8PQ+jU.net]
- >>441
Point before, after; // 前回の座標、今回の座標 int count = 8; int ix = (after.x - before.x) / count; int iy = (after.y - before.y) / count; Point pos; pos.x = before.x; pos.y = before.y; for(int i=0; i<=count; i++){ bool is = collision(pos.x, pos.y); // 当たり判定 if(is) break; pos.x += ix; pos.y += iy; } count, ix, iyの値をもう少しきちんと平方根使って計ったほうがいいけど
- 464 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 12:15:19.93 ID:/j8PQ+jU.net]
- >>451はお絵描きソフトなんかでよく使うんじゃないかな
60fpsでマウス判定じゃ全然足りなくて線が破線になるし
- 465 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 13:16:45.63 ID:UXW64F/+.net]
- お絵かきならスプライン補間とかだろ2次元だとカクカクの直線になるぞ
あとそれバグ持ちだな
- 466 名前:名前は開発中のものです。 [2014/03/28(金) 22:13:02.97 ID:LlNhW3Yy.net]
- Windows APIにDirectXが搭載されたならいい加減にウィンドウ生成とかDirectXの初期化とかどんなジャンルでも必要なゲームエンジンの要素とか短縮しねえかな
コピペとはいえ毎回見るのが嫌になってくるよな ライブラリとかラッパー使えば済むんだろうけど理解するのは面倒だし
- 467 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 22:28:44.11 ID:cOG2DjHy.net]
- >>454
会社では無理だけど自分で作るようなら短縮用のヘッダーと関数とか自作しない 理解すればいろいろと便利だし
- 468 名前:名前は開発中のものです。 mailto:sage [2014/03/29(土) 09:51:35.35 ID:Pyp/eAfy.net]
- ウィンドウ周りは自分で適当にラッパー作ったな
都度調べてコピペするより精神衛生的に良い
- 469 名前:名前は開発中のものです。 mailto:sage [2014/03/29(土) 13:22:18.51 ID:CYqmosk/.net]
- さもありなん。
老害にはコードスニペットの概念がないからなぁ。
- 470 名前:名前は開発中のものです。 mailto:sage [2014/03/29(土) 21:21:25.19 ID:2TsE/LLz.net]
- 毎回書くような所だけ書いたプロジェクト作ってテンプレートとして登録しとけばいいんじゃないの
- 471 名前:名前は開発中のものです。 mailto:sage [2014/03/29(土) 21:48:25.68 ID:fyBJTsa/.net]
- そしてそのテンプレートが、ゲームを作るたびに更新されていく
- 472 名前:名前は開発中のものです。 mailto:sage [2014/03/30(日) 00:08:10.54 ID:mb7Whzhe.net]
- win32APIで別のプログラムを呼び出したいです
system関数は使ってみたんですがdos窓も一緒に出てきてしまいます
- 473 名前:名前は開発中のものです。 mailto:sage [2014/03/30(日) 00:14:44.76 ID:3L4NtrMF.net]
- >>460
CreateProcessだとDOS窓出なかった気がする
- 474 名前:460 mailto:sage [2014/03/30(日) 01:27:38.78 ID:mb7Whzhe.net]
- ドンピシャでした
ありがとうございます
- 475 名前:名前は開発中のものです。 mailto:sage [2014/04/01(火) 17:00:08.51 ID:1bXVipah.net]
- >459
これありすぎて吹く
- 476 名前:名前は開発中のものです。 mailto:sage [2014/04/01(火) 17:13:22.13 ID:mqOcie7s.net]
- 俺もテンプレートってほどいいものじゃないけど
「今回作ったシステム流用すればいくらでもゲーム作れるぜ!: と毎回思うんだけど、毎回まるまる作り直してるという……。
- 477 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 10:41:39.05 ID:QH7QljdQ.net]
- 自分で作った3Dゲームにめちゃくちゃ酔うんだけど、比較的酔いにくくする方法ってある?
- 478 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 11:13:17.38 ID:gG8rIG0W.net]
- >>465 ちょっと、見せてみ
- 479 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 12:36:37.68 ID:Y76EY8s4.net]
- >>465
別にそういう専門知識もってないから経験則になるけど。 酔いやすい人と酔いにくい人がいるけど、酔いやすい人は三次元把握能力の高い人だと思う。これはどうしようもない。 俺は酔いにくい側の人間なんだけど、それでもあるゲームではめちゃくちゃ酔った事がある。 そのゲームはTPSなんだけど「キャラの背後に壁などの障害物があると、それが邪魔にならないよう自動でアングルが変わる」というものだった。 「背後の障害物が透明になる」なら酔わないのに「勝手にアングルが変わる」だと凄まじく酔う事がわかった。 車の運転でも、「運転してる人は酔わない」と言われてる。つ まり「プレイヤー本人の意思とは関係なくアングルが変わる」と酔う事になる。 他にも、急激にアングルが変わる(目の処理が追いつかない)でも酔うと思われるので、ゆっくり視点を動かす工夫をすればいいのではないだろうか。 あと視点の方向を変えると遠景ほど早く動いて見えるから、遠景はあまり注視できないようにぼかすとか彩度を落とすとかするといいかもしれない。
- 480 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 16:48:09.93 ID:RKxy3xMo.net]
- ソニックアドベンチャーDXは何故かすごい酔った
- 481 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 17:07:31.12 ID:05HXNQtD.net]
- モニタを「風景の映ってる窓」として捉えると酔いにくい、なんて話も聞いたことがあるね。
- 482 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 20:57:32.09 ID:SSqz5QAv.net]
- FOVの設定が悪いとか
- 483 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 21:38:55.24 ID:Y76EY8s4.net]
- >>469
上でも言ったが俺は酔いにくい人間で、モニタに映る映像を「一枚の絵」としか認識してないんだよな。 頭のなかで3次元空間を構築しながら見ていない。 ガンブレードNYの動画を見てた時、ぐりんぐりん視界が動くのにまったく酔わなかったんだが、 ふと「一枚の絵としてしか認識してない自分」に気づいて、 頭のなかで方位を意識しながら(3次元空間を意識しながら)見なおしてみると、あっという間に気分が悪くなったw でもこれは個人の話であってゲームをどうやれば酔いにくくできるかって技術とは別の話だよね。
- 484 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 22:03:56.84 ID:yy3b+VRk.net]
- 3次元で意識してるけど酔ったことないな
酔うのが不思議でならない
- 485 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 22:29:30.77 ID:sgFJO2N4.net]
- 3D酔い
カメラの位置と回転中心位置の関係が悪い カメラ視野角の調整が悪い カメラ回転の応答速度が遅い
- 486 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 22:32:07.27 ID:6rTn9j+m.net]
- >>465
FoVが狭すぎてゲロゲロ カメラの動きでゲロゲロ この辺りは既に言われてるようなので、あとはレベルデザインかな。 ぐぐったら自レスが引
- 487 名前:っかかったのでリンクを貼っとく
http://unkar.org/r/gamedev/1223550808/423-452 > 452 : 名前は開発中のものです。[sage] : 2008/12/27(土) 00:34:33 ID:quq8i6DN > >>423 > 遅レスで更に>>425、>>426と微妙にかぶる内容だが > > (1)FOVの問題 > 酔いの原因は様々だが、FOVの調整で改善される場合は多い > プレイヤーの視野角を考えずに3D画面の投影変換行列を設定すると酔いやすい > > ・プレーヤー視点とディスプレイ間の距離 > ・ディスプレイの寸法 > > 以上のパラメータから違和感の少ないFOVを探ることができる > まぁ、既存FPSのFOV値を参考にするほうが手っ取り早いかもな > > (2)レベルデザインの問題 > 閉鎖空間を多用するマップは酔いやすい。これは(1)の問題との組み合わせでより悪化する > FOVをどんなに調整しても吐く奴は吐く。対策としては開放空間(屋外)を多用する方法がある > ただし、閉鎖空間の戦いをウリにするゲームではこの対策はとれない > > BFシリーズはオーケーだけどDOOM3とかHLシリーズは駄目、みたいな人に対処するのは困難 > 狭くて暗い閉鎖空間のスポーツFPSを作るつもりなら酔いやすいユーザーは切り捨てたほうが楽 [] - [ここ壊れてます]
- 488 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 23:05:42.17 ID:6rTn9j+m.net]
- >>473
>カメラ回転の応答速度が遅い これ、見落とされがちだけどあるよね ARMAでマウススムージングがデフォルトでONだったので視線の動きに 遅延が生じて気分悪かった。スムージングを切ったら何ともなかった
- 489 名前:名前は開発中のものです。 mailto:sage [2014/04/03(木) 00:12:27.55 ID:d8bZaMxb.net]
- 動き回る飛行船の上でアクションシーンを展開したゲームを作って見たいんだけど
着地判定というか、移動する床みたいなのってどうやってるんだ? 飛行船が上に進んでる時に急制動で下向いたら飛行船に乗ってたキャラクターが跳ねるチンフワ現象を取り入れたいんだけど 素直に物理エンジンに託した方がいい?
- 490 名前:名前は開発中のものです。 mailto:sage [2014/04/03(木) 00:41:04.11 ID:paQ+FHve.net]
- 物理エンジンが一番楽
正確じゃなくてもいいなら 飛行船が上に進んでいるときにキャラクターの下と飛行船の着地できる部分が接触してるか判定して 接触してるなら飛行船の上の移動量とキャラクターの上の移動量を比べて飛行船の移動量の方が大きいなら キャラクターの上の移動量を飛行船の上の移動量に書き換える こうすれば飛行船がいきなり止まったりしたときにふわって感じで浮くことは可能 ただ、違和感はある落ち方になると思うから物理エンジンをお勧めしとく
- 491 名前:名前は開発中のものです。 mailto:sage [2014/04/03(木) 01:07:35.19 ID:d8bZaMxb.net]
- >>477
わかったありがとう
- 492 名前:名前は開発中のものです。 mailto:sage [2014/04/04(金) 02:07:12.66 ID:iGGKX1Rj.net]
- 詳しいね
さすがチンフワ総合スレッド
- 493 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 17:41:08.13 ID:Wu1wSHql.net]
- クラス分けって具体的にどんな感じでやっていけばいいの?
関数分けまでは普通に出来るんだけど、メンバ変数がある以上クラス分けしたくても出来ないし・・・
- 494 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 18:16:26.54 ID:cqmzi82f.net]
- 「// ○○を△△する」ってなコメントが書けそうな関数が複数あったら
○○をメンバ変数に置いて、○○を操作する関数をメンバ関数にしたクラスにする ツッコミどころ多そうだけど大雑把にこんな原則で大体どうにかなるんじゃないかな
- 495 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 20:43:25.01 ID:nUDfpyEY.net]
- 例えばC言語みたいな手続き型の言語で攻撃の判定処理を作ったとする
1.判定対象を選択 2.判定対象の座標と大きさ、形を取得する 3.大きさや形に合わせて判定する 4.当たってたらhpをダメージ分引いたりノックバックさせたり双方の属性に合わせていくつかの処理に分岐する 5.繰り返し クラスを使ってオブジェクト指向的に処理する 1.対象を選択 2.対象に「お前この判定対象と当たってなる?」と確認する 3.繰り返し ここまで書いて何を言いたかったか忘れたのでこのまま投稿する
- 496 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 20:58:16.49 ID:TIaN2lJ/.net]
- 関数を実行するのに必要な変数をまとめたのが最小単位かな
変数として持つデータに依存する部分はメンバ関数にしたいけど std::stringみたいになんでも入れちゃうのと マイナーな機能は引数を取る静的関数や別クラスに分けるかはまた悩む
- 497 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 21:40:17.97 ID:nUDfpyEY.net]
- オブジェクト指向を完全に突き詰めると動詞の関数しかなくなるような気がしないでもない
ゲームなら特に
- 498 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 22:14:07.33 ID:k4ryh3Xy.net]
- >>482
ええー、そんな感じなの。想像してたのと違うなぁ。 あ、俺は480じゃないけど似たような問題に詰まってる者です。
- 499 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 01:53:43.72 ID:E+ECXvrW.net]
- まあオブジェクト指向の作法については
それだけで厚めの本が出るぐらいだし・・・
- 500 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 12:16:47.72 ID:kDoD0j2F.net]
- 自分のことは自分でやれってことだよ
- 501 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 16:07:09.03 ID:4sjYlVDb.net]
- だねぇ
>>480,>>485 完成させてからのリファクタリングの段階ということなら具体的に説明 できるだろうしコード片をうpってもいいだろうし、お話になるのでは 話の振り方次第ですお
- 502 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 16:50:44.66 ID:MlcK3xAD.net]
- 例えばだけど、こういう場合はどうした方がいい?
class Player { public: Player(); void update() { aClass_.update(); bClass_.update(); } private: A aClass_; B bClass_; };
- 503 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 16:51:17.53 ID:MlcK3xAD.net]
- class A
{ public: A(); void update() { //メンバ変数とBクラスのx_が必要 } private: int a_; int b_; int c_; }; class B { public: B(); void update() { //メンバ変数とAクラスのa_が必要 } private: int x_; int y_; int z_; };
- 504 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 17:03:11.51 ID:sV4Btc1C.net]
- >>490
class Aの前にclass B;を書けば良いんじゃね?
- 505 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 17:10:52.22 ID:7eM4W795.net]
- 横からだけど
とりあえず動作すれば良いってだけならクソ回答としてupdateの引数にそれぞれ渡してあげる 渡し方はゲッターとかクソだけど
- 506 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 17:34:28.11 ID:tqEQPRwf.net]
- 素人意見だがPlayerにabcxyz持たせて引数付きupdate作るとか
PlayerのupdateかprivateにupdateA,updateB作ってべた書きとか AとBくっつけるとか 俺はどうしても他で必要にならない限り分けない、 enemyで必要とかになればそもそも一つ前にcharacterとか作って両方に持たせるとか
- 507 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 19:31:11.73 ID:3nuwa43P.net]
- >>489
クラスAとBが相互依存してるから設計しなおす
- 508 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 20:11:48.21 ID:4sjYlVDb.net]
- 言いたい事は全部言われてた
@AとBは合体だ!フュージョン! AAとBで壁パスだ!ダブルディスパッチ! BPlayerが面倒見ろ!メディエーター! AとBが具体的に何なのか分からないとアレだよな プレイヤーの所有物で、相互作用(値のやり取り)がある二つのもの。 しかし、プレイヤーとの間に作用はない。 ダウジングのアレとか?
- 509 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 20:19:27.91 ID:kDoD0j2F.net]
- 合体魔法をプレイヤー複数人で打つとする
トリガーとなるプレイヤー一人が発動したら周囲のプレイヤーの合体魔法用のメソ
- 510 名前:ッドを呼ぶ
メソッドの中ではそのプレイヤーのmpを減らしたりクールタイムを追加したり硬直したりする トリガープレイヤーはそのメソッド呼ぶだけだから、もしかしたらプレイヤーによって処理は違うかもしれないが、とにかくそのプレイヤーは合体魔法に参加した メソッドの返り値で成否を確認してもいい その複数のプレイヤーの中心の座標に合体魔法を発動するなら、その計算処理はトリガープレイヤーがやる [] - [ここ壊れてます]
- 511 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 20:22:50.98 ID:kDoD0j2F.net]
- >>490
AとBの使用用途を書け シチュエーションによって考え方が変わり、考え方に依存するからオブジェクト指向が最も効率いいとされて普及してる
- 512 名前:489 mailto:sage [2014/04/07(月) 10:11:55.44 ID:/pjQGnIZ.net]
- >>497
Aクラスはキー入力の処理 Bクラスはキー入力後の移動処理と当たり判定
- 513 名前:名前は開発中のものです。 mailto:sage [2014/04/07(月) 12:25:22.90 ID:/OCJvUrM.net]
- 最近は全部hppで書くのか?
ちゃんと.hと.cpp分けろよ
- 514 名前:名前は開発中のものです。 mailto:sage [2014/04/07(月) 20:27:14.10 ID:bPq5EneU.net]
- >>498
A…キー入力の処理 ↑B.x_ ↓A.a_ B …キー入力後の移動処理と当たり判定 A→Bのデータの流れは分かるが、B→Aのデータの流れは何だ? フォースフィードバック? 俺はこういう小出しの後出しジャンケンは別に気にしないけど 完成後のリファクタリングの段階なら「具体的に」書けるっしょ? そろそろ誰かがキレると思うよ
- 515 名前:489 mailto:sage [2014/04/08(火) 07:12:29.49 ID:mcCDKO91.net]
- >>500
なんかごめん・・・ とりあえずこの質問はスルーってことでorz
- 516 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 00:58:15.38 ID:wd1GU5kL.net]
- テンプレートのせいか全部ヘッダ(h, hpp)に全部書く奴いるけど
面倒くさくてもC++としてはちゃんとヘッダとソースは分けるべきだよ
- 517 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 01:28:10.85 ID:f0hevqdx.net]
- >>502
あるべき論なんて一考にも値しない。 アホは、何故そう考えるのか理由を述べない。
- 518 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 08:02:26.21 ID:zim/sso+.net]
- 煽るだけで何も説明しない人による華麗なる自虐芸
- 519 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 10:52:16.89 ID:uf/6C2tB.net]
- レースゲームのAIってどうやってるの?
経路探索だけで市販のゲーム風に出来るの?
- 520 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 12:11:54.87 ID:0loekIA0.net]
- 幾つか方法はあるが、コース上に複数の「点」を作っておいて
順番にそれを通過するように組む……というのが単純かな?
- 521 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 12:53:17.52 ID:HhpB/vqN.net]
- 多数の車が走ってて接触しないようにコース補正とか大変そうだな。
- 522 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 13:04:35.78 ID:6ESwZ9mm.net]
- リアル思考でない限り見えないところは適当だろ
多少ぶつかってもペナルティがほとんどないとか ありえない速度でカーブ曲がってたりとか
- 523 名前:名前は開発中のものです。 mailto:sage [2014/04/09(水) 13:16:31.51 ID:ZCvd+vVA.net]
- カービィのウエライドのデバッグモードを録画した動画がニコニコにあるからそれを見るといい少しはマシになるだろう!
- 524 名前:名前は開発中のものです。 mailto:sage [2014/04/11(金) 00:20:28.36 ID:GEtB1yKl.net]
- 決められたパスを ヘ(^o^)ヘ
|∧ / / ただなぞるよりも (^o^)/ /( ) / / > (^o^) 三 選んだ自由に (\\ 三 < \ 三 ..\ (/∀・) 傷付くほうがイイ! ( / /く
- 525 名前:名前は開発中のものです。 mailto:sage [2014/04/12(土) 02:15:31.36 ID:fxOCMkQi3]
- こっちだと規制されてナインかいな
|

|