トップページgamedev
1001コメント353KB

C/C++ゲーム製作総合スレッド Part4

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。2013/08/12(月) NY:AN:NY.ANID:RPqvnGkC
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その12
http://toro.2ch.net/test/read.cgi/gamedev/1330000532/

前スレ
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
http://toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
0875名前は開発中のものです。2013/12/21(土) 15:01:24.06ID:wdGDIJgR
11との比較でXP捨てていいんなら9にこだわるメリットはないよ
ハードも9以降の物なら大丈夫だし
0876名前は開発中のものです。2013/12/21(土) 18:28:48.07ID:x0po72ng
俺3Dでも2DでもまだDirectX9ベースだ。
固定パイプライン使ってないけど。
0877名前は開発中のものです。2013/12/21(土) 21:06:16.05ID:AGiYWayc
んーと、10や11に2Dで使えそうな機能はないって事で良いのかな?
0878名前は開発中のものです。2013/12/22(日) 01:00:07.09ID:1+swQorc
Direct2Dを使うならVista以降に限られるので、まぁDirectX9に拘る理由はないな。
API的にはDirectX11の方が整理されてて使いやすくはなってる。
デバロスもないし。
自前で2D描画処理書くんなら9の機能で十分だから、XPをサポートしたいっていうんなら9でも良いと思う。
10や11の機能を2Dに応用はもちろん出来るんだけど、2Dゲーにはオーバースペック過ぎて必要ないかな俺的にだけど。
0879名前は開発中のものです。2013/12/23(月) 16:10:01.81ID:W/7UABWQ
11で2Dなら公式のが簡単でお勧め
https://directxtk.codeplex.com/
リンク先にあるDirectXTexも併用したほうが楽かも
0880名前は開発中のものです。2013/12/23(月) 16:15:39.79ID:W/7UABWQ
Audio - low-level audio API using XAudio2
人に勧めといてあれだけど・・いつの間に
更にC++版XNAみたいになってきとる
ついでに簡単なXNAモドキなフレームワークでも提供してくれればいいのに
0881名前は開発中のものです。2013/12/24(火) 09:16:42.97ID:6rDsVpQe
クリスマスの夜にリア充カップルを射殺しまくるFPSを作って公開するか
0882名前は開発中のものです。2013/12/24(火) 16:41:44.51ID:RffL/RYa
2Dのアクションゲームを作ろうと思っているのですが、ブロックと当たり判定したあとにブロックの位置まで戻すにはどうすればいいのでしょうか?
0883名前は開発中のものです。2013/12/24(火) 17:42:12.75ID:e/VGuWHA
きっと
当たり判定後に、ブロックにめり込まない位置(=ブロックに接する位置)に移動させたい
と言う事だとエスパー気味に
0884名前は開発中のものです。2013/12/24(火) 18:09:20.86ID:uUpHALH3
移動するときに移動後の位置で判定して、その移動はしない、じゃダメなのか
0885名前は開発中のものです。2013/12/24(火) 18:15:55.42ID:L2qvgLfJ
>>884
さらに言うと、その判定の後でどのくらいめりこんだかの差分取ってキャラの位置戻すだけだよな。
0886名前は開発中のものです。2013/12/24(火) 18:27:20.28ID:fizHiSzP
Box2Dをインストールして、判定全部を任せたら
今まで俺は何をやってたんだ!と思っちゃうレベルに楽チン
0887名前は開発中のものです。2013/12/24(火) 19:32:38.32ID:L2qvgLfJ
わからない事から逃げて楽チンになるのと、わかってる人間が楽チンになるのとじゃ大分意味違うけどな
0888名前は開発中のものです。2013/12/24(火) 20:47:42.39ID:JHDIB0t6
ブロックとの当たり判定は俺も悩むなぁ。
以前に作ったことはあるんだけど、色々と問題(課題)もあって
解決の糸口が見つからないままなんだよ。
0889名前は開発中のものです。2013/12/24(火) 21:08:19.97ID:GKhtGcW2
僕は取り敢えず移動させてめり込んでたら戻すって感じでやってる
0890名前は開発中のものです。2013/12/24(火) 21:29:12.06ID:SJQjNZFD
ドット単位で動かしてるときは、移動不可なら処理前の位置に戻すんじゃダメなんだよな
1フレームあたり移動距離の途中でぶつかることがあるからね
俺は悩んで結局投げた経験あるわ

シューティング系のコモン探して参考にしてみたらどうかな
0891名前は開発中のものです。2013/12/24(火) 21:29:29.81ID:JHDIB0t6
俺が悩んだ(悩んでる)のは二つのブロックを経由した場合だ。
例えば下図のように、斜めブロックと四角ブロックが並んでいて

A ______
/| |
/_|_B _|

A地点からB地点まで1フレームで移動した場合に、右の四角ブロックだけ判定して移動を戻してたから
両方のブロックの間に挟まってしまってた。
0892名前は開発中のものです。2013/12/24(火) 22:26:58.00ID:jnOze0P5
止めろ!
2Dのアクションゲーでのブロック判定とか超絶黒歴史を思い出させるな!
1フレームでの移動距離を一気に移動させるんじゃなくて1フレームの中で少しずつその距離になるようにループで移動させて
表示的には1フレームで移動してるけど内部的には1フレーム内で何回も移動してるとか
そんなクソ処理しか書けなかった黒歴史は忘れさせてよお!
ちなみに今でもどうするのが正解かわからん
0893名前は開発中のものです。2013/12/24(火) 22:35:04.90ID:bbz6Sep5
一気に移動させて引っかかったら1ドットずつ移動に切り替え、じゃだめなの?
なお壁に向かって走ると重くなるもよう
0894名前は開発中のものです。2013/12/25(水) 03:10:45.93ID:0d//DW0c
地面の法線と落下ベクトルの内積やら外積やらで、着地時に少し前に滑るようにする
0895名前は開発中のものです。2013/12/25(水) 04:06:58.17ID:FupEURWJ
ブロックとの当たり判定をするオブジェクト(プレイヤーキャラや敵キャラなど)は数十個くらいなら
「ぶつかったら移動速度を-1して再判定」でも問題なく動く。

さすがに数百個でそれやったら重かったので、二分木もどきに改造したけど。
0896名前は開発中のものです。2013/12/25(水) 08:58:32.32ID:xJny3ejo
pos_x += idouryou;
if( atari() )
{
  pos_x -= idouryou;
}
ってやるから駄目なんだろ

for(int i=0; i<idouryou; i++)
{
 pos_x++;
 if( atari() )
 {
  pos_x--;
 }
}
ってやればいいじゃん
0897名前は開発中のものです。2013/12/25(水) 08:59:37.02ID:xJny3ejo
この程度も思いつかないとかなんなの
向いてないから死んだ方がいいよ
0898名前は開発中のものです。2013/12/25(水) 09:07:38.39ID:nCzBXRKQ
>>896
これって>>892が発狂してたやつと同じやり方じゃね?
後、せめてbreak書こうぜ(ドヤッ

>>897
この程度も思いつかないとかなんなの
向いてないから死んだ方がいいよとか書いてるくせに
この程度の処理を軽くすることすら思いつかないとかなんなの
向いてないから死んだ方がいいよ
0899名前は開発中のものです。2013/12/25(水) 09:20:17.32ID:9WcWfovO
 発 者 同         . 。_   ____           争
 生 同 .じ     .    /´ |  (ゝ___)          い
 .し 士 .レ      .__/'r-┴<ゝi,,ノ   ro、      は、
 .な で .ベ      ∠ゝ (ゝ.//`   ./`|  }⌒j     
 .い し .ル        } ⌒ /`ヽ、_∠l,ノ ・ヽ´
 .! ! か の       /  ´..:.} >、、___,  .r、 ソ、`\
             /   ..:.:.}   /   |∨ ` ̄
            /   ..:.:./    |   丶
           / _、 ..:.:.:.{    .{.:.:.   \
          {   ..:Y  .ゝ、   {.:.:.:.:.    ヽ
          |、  ..:/ 丿 .:〉   >.- ⌒  .  ヽ
          / {. ..:./ ソ ..:./  .(    ..:.:.:`  ..:}
         ./..:.:}.:.:./ ヘ、 ..:./   .\ ..:.:r_,ノ、.:.:}
        ./..:.:/|.:/   {.:./     X.:.:}.}   X X
        /..:.:/ .}.:|    }:/       .Y丶ヽ  Y.:Y
  . __/.:/ { }  《.〈、     _,,__>.:》丶   Y.:\
  /.:.:.:.:.::/   !.:.:ゝ  ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ   \.: ̄>
0900名前は開発中のものです。2013/12/25(水) 09:39:38.15ID:Zg4NIAsR
breakなんて女子供がやるもんだ
男は黙ってcontinue
0901名前は開発中のものです。2013/12/25(水) 10:08:54.97ID:FupEURWJ
なんでatan()なんか使ってるんだ?と思ったが、atari()か……疲れてるのかな。
0902名前は開発中のものです。2013/12/25(水) 10:09:07.15ID:MUlFxvaY
>>896
上にあるし…うわぁ…
0903名前は開発中のものです。2013/12/25(水) 10:17:42.98ID:gB5lV3uA
そういえば左下から右上のブロックにジャンプしたときに、X軸とY軸のどっちを戻せばいいかってどうやればいいんだろう・・・
0904名前は開発中のものです。2013/12/25(水) 10:25:40.90ID:CUbWJvC8
>>903
どっちの軸か、じゃなくて方向ベクトルに対して逆向きにするだけじゃないの?
0905名前は開発中のものです。2013/12/25(水) 11:11:41.57ID:FupEURWJ
>>903
基本は、めり込んだ距離の短い方に合わせる。
ただ個人的には、よほど差がなければy方向(上下)に優先的にずらす方が好み。
0906名前は開発中のものです。2013/12/25(水) 11:20:22.37ID:xJny3ejo
何でxとyを同時に処理するんだよ
xとyは別々に処理する
xを処理したときはxを戻せばいいし
yを処理したときはyを戻せばいい
この程度も思いつかないとかなんなの
向いてないから死んだ方がいいよ
0907名前は開発中のものです。2013/12/25(水) 11:49:07.39ID:j1ogVw80
>>906
それXとYどっちを先に処理するかって事だから903の言ってるXとYのどっちにするかという問題の解決にまったくなってないわけだが。
0908名前は開発中のものです。2013/12/25(水) 12:04:44.50ID:nCzBXRKQ
>>900
無駄な繰り返しをしないように
typedef struct position {
int x;
int y;
} position;

position pos;
for(int i=0; i<movement; i++) {
pos.x++;
if(hit()) {
pos.y--;
break;
}
}

このほうが無駄な繰り返しが発生しなくなるからその分軽くなると思うんだが
continueだと結局無駄に繰り返すから意味無いし
0909名前は開発中のものです。2013/12/25(水) 12:07:03.91ID:MUlFxvaY
そもそもゲームって常に処理してるからね
処理分岐の中に入るかどうかで決まる
0910名前は開発中のものです。2013/12/28(土) 14:45:57.99ID:aLH6Im8H
メンバ変数の配列を初期化したい時ってどうすればいいの?
0911名前は開発中のものです。2013/12/28(土) 15:33:11.78ID:XE/X4C7O
コンストラクタにfor文でどうぞ。
0912名前は開発中のものです。2013/12/28(土) 15:41:39.94ID:uwB+NH0s
適用にググればいろいろでてくるやろ・・・
0913名前は開発中のものです。2013/12/28(土) 15:51:47.55ID:aLH6Im8H
やっぱりstaticを使うしか方法はないのかな?
0914名前は開発中のものです。2013/12/28(土) 16:11:33.83ID:XE/X4C7O
え、なんで俺スルーされてんの?
0915名前は開発中のものです。2013/12/28(土) 16:21:18.45ID:aLH6Im8H
>>914
ごめんorz
とりあえずソース書いてもらえると助かる
0916名前は開発中のものです。2013/12/28(土) 16:59:11.51ID:i2BOVD4X
はい釣りきたー
0917名前は開発中のものです。2013/12/28(土) 17:23:47.64ID:XE/X4C7O
>>915
メンバ変数とか関係なく、普通に配列へ代入するつもりでやる。ほんと普通に。

MyClass :: MyClass()
{
  for(int i=0; i<MAX; ++i) array[i]=0;
}
0918名前は開発中のものです。2013/12/28(土) 20:05:03.83ID:pCtwY2nW
array アライー
default デファウルト
0919名前は開発中のものです。2013/12/28(土) 22:12:30.45ID:os0Do0OO
プリミティブ型なら違う楽な書き方もあるけど
引数付きコンストラクタをもったクラスの配列とかもありえるから
>>917のやり方で統一するのは一貫性があって良いと思う
0920名前は開発中のものです。2013/12/29(日) 13:02:30.27ID:iivLZ8bD
>>919
> プリミティブ型なら違う楽な書き方もあるけど

よかったらそのやり方教えて
0921名前は開発中のものです。2013/12/29(日) 13:05:59.62ID:hFtnegM4
これは
「なぜ>>917が推奨されてるか理解しないまま、見た目がそれっぽいからという理由だけで楽な書き方を導入してその後どつぼにはまる」
流れ
0922名前は開発中のものです。2013/12/29(日) 16:46:30.01ID:HeVOdclw
memsetとかじゃね
>>919のこともあるしそもそもC++なんだから使うなって感じだけど
0923名前は開発中のものです。2013/12/31(火) 07:47:28.85ID:bQaohfnR
やる気を出すにはどうしたらいいですか
モチベーションはどうやって保ってますか
0924名前は開発中のものです。2013/12/31(火) 07:58:30.67ID:W1ftg64k
スレチだが真面目な話ちょっと体を鍛えるといいよ
身体動かすと視床下部が刺激されてやる気出るし
0925名前は開発中のものです。2013/12/31(火) 10:03:52.57ID:B8nb+CLa
やりたくないことをやるといい。
勉強とか仕事とか。
現実逃避してこっちをやりたくなる。
0926名前は開発中のものです。2013/12/31(火) 10:09:41.40ID:MF4G8rMr
そんな無理してやらんでもw
0927名前は開発中のものです。2013/12/31(火) 14:52:14.77ID:sUWQv5G4
セーブ&ロードのための凄く単純なシリアライズくらいはできるようになったんだけど
ロード画面でセーブデータのプレイ時間とかちょっとした情報を表示するにはどうすればいいのかな?
というか俺のシリアライズのやり方次第で詰んでる可能性も?

シリアライズ時にゲームオブジェクトから直接ストリームに順番に書き出して、
デシリアライズ時にゲームオブジェクトに順番に直接復元する方式にしちゃったんだけど、
もしかしてここは、ゲームオブジェクトのデータから「セーブデータクラス」をいったん生成して、
そいつをシリアライズ対象にして、復元時はセーブデータクラスの値からゲームオブジェクトを復元しないといけなかった?

でもそうするとポインタの復元が難しいというか、Mementoパターンとか深く考えずに、
Boostシリアライズのパワーに頼ってしまったんだが、セーブデータからは極力ポインタを
排除するようにしたほうが良かったんだろうか
0928名前は開発中のものです。2013/12/31(火) 14:54:28.55ID:LVQwhj61
ヘッダと本体をわけろ
0929名前は開発中のものです。2013/12/31(火) 15:23:07.56ID:sUWQv5G4
>>928
迅速な回答ありがとうございます!

なるほど「セーブデータクラス」ではなく「セーブデータヘッダークラス」で十分なんですね、
これにBoostパワーで得たストリームをくっつけてみます、ありがとうございました
0930名前は開発中のものです。2014/01/01(水) 23:41:19.87ID:ZZixNcFD
なぜ初心者は専門用語を使いたがるのか
0931名前は開発中のものです。2014/01/01(水) 23:47:52.86ID:TDYNLr8C
いずれリフレクション付き言語でObjectStream使ったら
boostなんて大して便利ではないことに気づくだろう
0932名前は開発中のものです。2014/01/03(金) 23:44:33.00ID:SeRszv4P
セーブデータってやっぱりキャラクタークラスのポインタからスカラにまで落としてテキストで保存した方がいいの?

セーブデータ用のクラスの作ってセーブする時にデータぶっこんでバイナリしゅわーんして
ロードする時にクラスのインスタンスの先頭アドレスあたりからバイナリどかーんってやってその後しこしこ値を取り出せたらかっこいいんだけど
vectorとか可変長データ扱えなさそう
0933名前は開発中のものです。2014/01/04(土) 01:24:45.05ID:T7k3xx9e
>>932
Boostパワーでしこしこシコりまくってドカーン、アヘーって保存したほうがいい
ポインタに関連する全てが壊れるが
0934名前は開発中のものです。2014/01/06(月) 00:34:31.58ID:eOuf/sxJ
意味ねぇ
0935名前は開発中のものです。2014/01/06(月) 08:45:40.08ID:Db3wqsOf
ポインタ壊さないのがBoostパワーだろ
0936名前は開発中のものです。2014/01/06(月) 08:49:45.11ID:g6N0ueBX
>>931
便利だけど
0937名前は開発中のものです。2014/01/06(月) 11:42:45.19ID:VBpdL55v
言語仕様の限界であの程度のことしかできないのは仕方ないさ
0938名前は開発中のものです。2014/01/06(月) 17:24:43.54ID:eOuf/sxJ
雲ってどうやって表示してる?
板ポリ一枚だとPS1みたいになっちゃうね
0939名前は開発中のものです。2014/01/06(月) 18:15:44.70ID:P4CMWCe+
http://game.watch.impress.co.jp/docs/20070307/cry2.htm
雲のレンダリング〜自然に見える工夫とは?
0940名前は開発中のものです。2014/01/06(月) 18:18:03.96ID:x7/aJO38
海の波ってどうやって自然に表示してる?
0941名前は開発中のものです。2014/01/06(月) 18:33:28.69ID:g6N0ueBX
その辺はもう初心者向けの内容じゃないので、NVIDIAのGemsとか読むとヒントがあるかも。
俺も一冊持ってるけど。
0942名前は開発中のものです。2014/01/07(火) 00:45:34.95ID:NZ+rg5Nj
ゲームとしては水や雲ってすごく基本的なことなのにやたら難しいよね
参考サイトもろくに無くて挫折ポイントですよ
水って透明なブロック状3Dモデルに青いテクスチャーはっ付けてテクスチャー滑らせてるだけかと思ってた
0943名前は開発中のものです。2014/01/07(火) 09:24:51.89ID:NXlvb1xx
リアルな水や雲がゲームの基本的な事って言う発想が既にかなり間違ってる。
その辺は完全にビジュアルとしての演出処理の範疇で、さらにその辺は設計者やプログラマの創意工夫の分野なので、
特に教科書的な単一の正解も無いから、方法も様々だし書きようがない。

ただ、ジュンク堂みたいなでかい本屋行くと、NVIDIAが出してる技術書とか置いてると思うので、読んでみるといい。
考え方や部分式が書いてあるから。
0944名前は開発中のものです。2014/01/07(火) 09:37:17.00ID:NXlvb1xx
ちなみにGemsのその辺の文献は、見ればわかると思うけど初心者向けの内容じゃなく、応用編の先の先の世界なので、
プログラミングに熟練してる事がまず大前提で、特にシェーダプログラミング当たり前。
その中で最低限高校数学B以上の知識も必要でそれ以上が無いと多分説明そのものが理解できない。
何も前提が無い人向けにあれの説明始めたら、何倍のテキスト量になるかわからないほどの内容。

もしもあなたが理系の大学生かまたはビジュアル処理の研究者だったら、かなり参考になると思う。
そうじゃなくても知識と想像力と実験力持ってれば行けると思うけど。
とにかく、興味あったら一度手にとって実際に自分で目を通して。俺が言ってる意味がわかるから。
0945名前は開発中のものです。2014/01/07(火) 11:26:35.53ID:8Imh3hEk
そんなレベルの奴が雲だの水だの言ってんのかよwww
0946名前は開発中のものです。2014/01/07(火) 11:35:52.88ID:d36JERXj
あかん
数学の知識は因数分解の所で止まっとる

知恵袋にプログラミングは数学や英語の知識なんて必要ないって書いてあったのに嘘つかれた
今から独学で勉強するのキツイだろうな
0947名前は開発中のものです。2014/01/07(火) 11:37:24.42ID:d36JERXj
何でも難しい計算は全てコンピュータがやってくれるから人間が考える必要ないとか何とか言ってた
0948名前は開発中のものです。2014/01/07(火) 12:04:12.55ID:8Imh3hEk
×難しい計算
○めんどくさい計算
0949名前は開発中のものです。2014/01/07(火) 12:22:01.86ID:n8ArE3NN
言っても初等数学だし
むしろ因数分解のほうがコンピュータ的には難しいくらい
0950名前は開発中のものです。2014/01/07(火) 17:16:08.90ID:PeCFLZx5
計算はコンピュータがするが、
計算手順は人様がコンピュータに教えてやらねばならん。
0951名前は開発中のものです。2014/01/07(火) 17:45:36.74ID:3gFkFxX8
メンバ関数を持つクラスを、配列で宣言した場合、
そのメンバ関数内で自分が配列の何番目であるかを取得するにはどうしたらいいでしょうか?
0952名前は開発中のものです。2014/01/07(火) 19:03:53.37ID:1ME8U7de
クラスのメンバ変数として番号を保持すれば良いのでは
0953名前は開発中のものです。2014/01/07(火) 19:54:00.03ID:3gFkFxX8
レスありがとうございます。
それはもちろん考えたんですけど、いちいち設定するのってスマートじゃないから他に方法があるかなと思いまして。

そもそも配列の番号を頻繁に必要とする時点で設計を間違ってるとは思うのですが、まだ力不足でして……。
0954名前は開発中のものです。2014/01/07(火) 20:00:24.75ID:PeCFLZx5
配列のポインタをそのクラスに持たせて
自身のポインタかなんらかのID値を配列から検索して割り出す。
0955名前は開発中のものです。2014/01/07(火) 20:05:26.71ID:/OJHyl0l
アドレス解ってんなら引き算するだけだろ
0956名前は開発中のものです。2014/01/07(火) 22:49:15.44ID:sv99VL0o
>>779
遅レスだが
ttp://www.youtube.com/watch?v=Y4PNIzOoZ3Q
ttp://j-lyric.net/artist/a055706/l025d97.html
0957名前は開発中のものです。2014/01/08(水) 01:05:19.44ID:RZLLvdiF
それ、番号を使用している場所を
番号の代わりにポインタを使うようにすれば
すっきりしそうに思える
勘で言うけど
0958名前は開発中のものです。2014/01/08(水) 01:15:34.47ID:GhGooqG2
>>947
その辺の話は、>>950 も言ってるけど、もともとコンピュータに何をやらせたいのかって話と、
単純にプログラミング行為そのものの話を一緒くたにしてる一般の人が陥る話。

簡単な例で言えば、会社会計の処理をするプログラムを作ろうとしたら、会計士が求めるような用件しらないと作れない。
でも単純にプログラミングする上で会社会計や決算についての知識は必須か?って言われたら明らかに不要。
それと同じ。やらせたい事自体の本質は何で、そこになんの知識が必要かってのは目的によるって事。

それが違えば高度な数学がいる事もあるし、まったくいらない事もあるってだけ。
0959名前は開発中のものです。2014/01/08(水) 07:29:15.57ID:BLQUEdhx
一般的なプログラマが作る業務アプリなんかはゲームで使う幾何計算とか無縁だからな
ワークフローにそった処理作るだけだからそりゃ数学は必要ない
0960名前は開発中のものです。2014/01/08(水) 20:23:42.14ID:+GfACctw
でも原理は知っておかないと。
例えば三角関数の軽量版が作れないなら、ゲームプログラミングでは意味が無い。
0961名前は開発中のものです。2014/01/08(水) 22:34:47.56ID:RZLLvdiF
そうなんだすごい
0962名前は開発中のものです。2014/01/08(水) 23:57:43.70ID:tURBup32
ごめん流れ変わるけど
よく当たり判定用のフレームを用意して判定すると軽いっていうけど、
一発で判定用フレームって作れないもんかなぁ
Metasequoiaでやってるけどなんかスムーズにいかない
0963名前は開発中のものです。2014/01/09(木) 09:01:51.31ID:cr9CxzXm
頂点の数を減らすだけでいいんじゃないかな
0964名前は開発中のものです。2014/01/09(木) 09:21:22.68ID:HCIaBE+5
>>962
convex-hull でググれ。
ちなみにbullet にその計算生成処理を実装した機能あるよ
0965名前は開発中のものです。2014/01/09(木) 18:11:14.52ID:u/5Mkl0f
>>963
それだと形が変わっちゃうからなぁ
>>964
物理エンジンか・・・プログラム側でやるのか
0966名前は開発中のものです。2014/01/10(金) 03:11:17.85ID:MSpxeAqe
http://toro.2ch.net/test/read.cgi/gamedev/1175423459/691
  ↑  ↑  ↑   ↑  ↑  ↑
0967名前は開発中のものです。2014/01/10(金) 09:29:44.91ID:YP8fX2qG
>>965
プログラムでやらずにどこでやるつもり
データとして最初から用意しておきたいって話なら、例えばその生成データを自分でファイルに書き出してもいいし、
あるいはBlenderのShrinkWrapでも使って作っても良い訳だし
0968名前は開発中のものです。2014/01/12(日) 18:08:59.19ID:MPtGFllK
あるクラスの集合を表すクラスってなんて命名したら良いのかな?

今個別のキー入力を確認できるクラス作ってたんだけど
class KeyState {

}
09699682014/01/12(日) 18:17:38.04ID:MPtGFllK
すまんミスった。


今のところ(かなり簡略化してる)
class KeyState {
 bool isKeyDown();
}

class KeysState {
 bool isKeyDown(int keyNo);
}

class KeysStateManager {
 bool isKeyDown(int joypadNo, int keyNo);
}

って感じなんだけど、上2つがかなり紛らわしい。
0970名前は開発中のものです。2014/01/12(日) 18:33:44.45ID:Z1XqjjE5
Win32APIだと
GetKeyState() // 引数で与えた特定のキーの状態を取得
GetKeyStates() // 全部のキーの状態を取得
だな。
まぁ集合って意味なら安直にKeySetStateとか。
あるいはKeyboardState、GamepadState、InputDeviceState
みたいな、デバイスのステートって感じにするとか。
0971名前は開発中のものです。2014/01/12(日) 18:35:46.99ID:n6PHKqWH
>>969
上2つの動作の違いを書いてくれ
クラス分けする必要が無いように感じる

とりあえずエスパーで回答すると
1、1つ目の方には引数が無いから何かしら押している状態で2つ目が引数が1つあるから特定のキーを押した場合と考える
そうすると1つ目にはisAnyKeyStateクラスのisKeyDown関数で2つ目にisKeyStateクラスのisKeyDown(int keyNo)関数とする

2、何かもう色々とアレだから違うこと書く気がするから参考にしないでくれ
class Keybord {
 bool isAnyKeyDown();

 bool isKeyDown(int keyNo);

 bool isKeysDown(const char *keyNo, ...);
}

class Joypad {
 bool isButtonDown(int joypadNo, int buttonNo);
}

class Input {
 Keybord keybord;
 Joypad joypad;
}
0972名前は開発中のものです。2014/01/12(日) 18:37:37.90ID:n6PHKqWH
>>970
2.5秒程で訳わからんこと書いてすまん

>>969
>>970言ってる事が合ってる気がする
0973名前は開発中のものです。2014/01/12(日) 18:49:50.88ID:MPtGFllK
>>970-971
即レスサンクス!

>>970
>KeySetState
おおなるほど、このやり方があったのね。
接尾にListとかSetとか来るとコンテナの派生と紛らわしいかなーと思ったけど
このやり方ならそれらと区別が付いて良さそうだね。

>>971
わざわざ詳しくありがとう
ごめん、AnyKeyの判定をするんではなくて「ある1つのキー」のクラスだったね
0974名前は開発中のものです。2014/01/13(月) 00:25:18.86ID:8rTnWJUa
そして複数形が同じ単語にハマるところまでがワンセット(笑)
0975名前は開発中のものです。2014/01/13(月) 00:58:21.33ID:+6YQ2j+G
まつ毛の動かし方分からなくて詰んだ
最近のゲーム(というかPS2あたりから)で目ぱちぱちとかあるけど
あれプログラムで動かしてるの?それともボーン仕込み・・・?
レス数が950を超えています。1000を超えると書き込みができなくなります。