- 1 名前:名前は開発中のものです。 [2008/02/18(月) 12:02:20 ID:JNgyhRqZ]
- ゲームプログラマなら誰もが通る、もしくは、通った道。青春の香り?
それは「シューティングゲーム製作」・・・。 このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談 失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。 もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを 晒してみたり、プロジェクトをはじめてみるなどもOK! ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の スレでやってくれ。 過去スレ,関連スレは >>2-3で。
- 61 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 00:45:00 ID:xY1/GxLx]
- STG管理クラスをシングルトンにして直接参照する
オブジェクト指向っぽくないけど、一番楽な方法じゃないかな
- 62 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 01:14:13 ID:bHXyTii9]
- 弾つながりでちょっと質問です
アルゴリズムマニアクスパラ見したんだけど 反射レーザーの反射部分グラフィックってどう処理してるの? \/ ‥レーザー ━━━━‥壁 ↑ ココ 本だと\の先端と/の後端を壁にめり込ませている でもそれだとめり込んだ分、全体の長さが縮むと思うんだ 考えたけどわからない・・ 反射部分だけ別グラフィック?
- 63 名前:59です mailto:sage [2008/03/11(火) 01:23:43 ID:bfRz6y+k]
- >>60
STG管理クラスのインスタンスと、Unitを継承したインスタンスを相互参照になるように作る。 STG管理クラスに指定したUnitリストを取得できるようにしておく。 (自分の座標と、指定したいUnitリストのindexを引数にし、最も近いUnitを戻り値に返すメンバ関数でも可。 というか使う機会も多いので推奨。) 自弾→敵機の場合、管理クラスのメンバ関数に敵のUnitリストを指定して、最も近いUnitを返してもらえばいいし、 敵弾→自機の場合、同様にして自機のインスタンスを返してもらえばいいよ。 こうすれば目標の座標は取得できるから、後は適当に誘導するような処理を記述すればおk。
- 64 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 14:55:11 ID:tPQccVPP]
- >>59=63
そういうクラス構造してると、 たとえばエネミーはメンバ変数HPを要るけど、エフェクトや弾は要らないから、 UnitクラスにHPがあると、エフェクトや弾に無駄なメンバ変数が生産されない?
- 65 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 15:15:48 ID:5rHfGsEC]
- エフェクトたんやバレットたんだって命ある生き物です><
- 66 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 18:01:29 ID:pc0n0f/t]
- 正確なレーザーを表示したくてグラディウス外伝が作れるか
- 67 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 18:08:48 ID:RgITvACC]
- ??
- 68 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 20:18:19 ID:bfRz6y+k]
- >>64
ウチの場合Unitは完全な抽象クラス。実装が一つも無い。つまり抽象メンバ関数しかないのさ。 で、メンバはこんな感じ。・・・と思ったが、こっちはC#だからint配列とか戻り値に指定するのは直感的だけど、 C++だとちょっとめんどいな。やり方わからんから適当に察してくれ。 Stg管理クラス GetOwner() float GetAttackPower() int GetBelongKind() VECTOR3 Get/SetPosition() int[] GetTargetKinds() // C++の場合はどうすりゃいいんだっけ?覚えてないや。 VECTOR2 GetTouchRange() void Act() bool CanExist() void Fire() bool CanStand(Unit toucher) void Indicate() この5つは上から順番に、 動作管理、 デストラクタ対象判定、 動作管理で射撃判定boolを作っておいてそれを利用した処理を、 描画処理
- 69 名前:名前は開発中のものです。 mailto:sage [2008/03/11(火) 21:09:11 ID:bfRz6y+k]
- 4つ目の補足書きわすれたww
CanStand は当たり判定をStg管理クラスのインスタンスが行い、あたった時Stg管理が呼ぶ関数。 たたった相手のインスタンスを引数として渡してくる。
- 70 名前:名前は開発中のものです。 mailto:sage [2008/03/12(水) 00:33:20 ID:v0/NzbC7]
- 座標とかの管理はどこで?
- 71 名前:名前は開発中のものです。 mailto:sage [2008/03/12(水) 05:56:34 ID:/xH4cY3u]
- >>70
Stg管理クラスがRectangle(x、y、width、heightで矩形を表す構造体)を何種類か保持してる。 そして各UnitオブジェクトのPositionが、CanExistで矩形の中にいるかを判定してるだけ。
- 72 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 01:20:40 ID:Qya/6v1U]
- 弾同士の相殺判定つけたら処理落ちしてワロス
いい加減当たり判定の方法を最適化して、 オブジェクトの配列をvectorからlistに変えるべきだな
- 73 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 02:07:01 ID:eNzI/Vyy]
- 総当りでやってるから重たいってだけの話でねの?
コンテナがvectorだろうがlistだろうが総当りは回避できるべ と寝る前にエスパーレス
- 74 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 03:36:05 ID:8tJfVTvY]
- >>73
とりあえず次のことを行ってないかチェックすべし。 Vector変数 − Vector変数 などの構造体同士の直接演算。ちゃんとメンバをそれぞれ計算するべし。 int4つ分相当超過の構造体/クラスの値返し/値コピー等。 参照渡しのほうが高速。
- 75 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 03:38:41 ID:8tJfVTvY]
- レスミス。>>73じゃなくて>>72
- 76 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 09:42:10 ID:wQ66BM6P]
- exceptionが弾(破片)同士の衝突判定やってたな
あれは単純なマス目状の空間分割とマルチスレッド化で高速化してるぽい
- 77 名前:名前は開発中のものです。 mailto:sage [2008/03/14(金) 10:45:56 ID:Qya/6v1U]
- しょうもない愚痴にレスくれてdクス
>>73 一応、自機、敵機、自分の弾、敵の弾、アイテム(、エフェクト)で配列を分けてる >>76のいうように、空間分割した方がいいかもしんない >>74 大丈夫なはず
- 78 名前:名前は開発中のものです。 mailto:sage [2008/03/15(土) 00:13:20 ID:FwUg+nN/]
- 空間分割はともかくマルチスレッドはどうなんだろうか・・・
クアッドコアなら効果ありそうだけど。
- 79 名前:名前は開発中のものです。 mailto:sage [2008/03/15(土) 01:22:59 ID:lDsY0+o2]
- ウチの環境だと、CoreSoloってこともあってかほとんどマルチスレッドは効果が出なかったな。
処理内容によって早かったり、かえって遅くなったりまちまち。 CoreDuoとかだと普通に恩恵が得られそうだけど、そんなPCならGPUもよさそうだしなぁ
- 80 名前:名前は開発中のものです。 mailto:sage [2008/03/15(土) 02:34:54 ID:Lrw9CI3F]
- マルチスレッド興味あるんだが、マルチスレッドを前提にした設計の仕方が思いつかん。
ゲームオブジェクトを非同期に更新する上手い方法なんかないかな。
- 81 名前:名前は開発中のものです。 mailto:sage [2008/03/15(土) 10:26:44 ID:Q/W+AhbK]
- FPSとかは知らないけど、2DSTGでマルチスレッドが有効利用できる
場面って少なく無いか? 総当り系の判定をスレッドに割り振るのも大変そうだし。 ローディング画面でディスクアクセスしながらアニメーション流す位しか 思いつかないんだが、他になんかある?
- 82 名前:名前は開発中のものです。 mailto:sage [2008/03/15(土) 14:21:34 ID:Lrw9CI3F]
- ジオメトリウォーズのエフェクトや背景はマルチスレッドで処理してるとどっかに書いてあったような。
エフェクト類は他のオブジェクトに干渉しないのも多いから、 そういうのはまとめておいて別スレッドで処理すればいいかもしれん。
- 83 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 17:45:56 ID:PCJP7SA4]
- >>80
DDR2メモリ4GBが数千円で買える今なら大声で言える ゲームオブジェクト全てをダブルバッファリングだな フレーム(t)バッファはリードオンリー フレーム(t+冲)バッファはライトオンリー オラ(t+冲) = オラ(t) + (世界(t)がオラに元気を分けた。差分)(冲) + (オラのパワー。差分)(冲) 差分スキームは好きなの使え。ここでは単に一次オイラー 同一フレーム内オブジェクト同士の相互参照は一切ないから 更新順序も排他アクセスも一切不要 メモリが2倍要るという欠点は先述のPC環境なら無視でいいだろ 動作環境 メインメモリ1GBで動かない時は2GB積んでみてください メインメモリ2GBで動かない時は4GB積んでみてください …etc…
- 84 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 19:25:31 ID:+53rIC4V]
- あなた起動時に全ての画像読み込んでそうですね
俺はちまちまやってます
- 85 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 23:57:27 ID:PCJP7SA4]
- 富豪厨の俺でも流石にそれはないが
ステージ単位でドカっと読み込んでる boost::progress_displayのゲージがジリジリと動く様を ティーカップ片手に優雅に待てば良いのだ それすら我慢できない低属性プレイヤーはrejectだ
- 86 名前:名前は開発中のものです。 mailto:sage [2008/03/17(月) 23:58:50 ID:zSjwTnFq]
- はいはい、boostスレに帰ろうなw
- 87 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 13:52:14 ID:zi8sXJbl]
- 敵弾をCPUごとに振り分ければよくね。どんな鬼畜弾幕になるのか知らんが。
- 88 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 14:26:14 ID:kWeEHiH7]
- 弾同士が干渉しないならそれが良さそうだが、
2DSTGで複数コア使う必要があるような処理って弾同士の干渉くらいな気がする。 >>83は汎用性あって良いかもしれん。
- 89 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 14:34:56 ID:h/08ARO0]
- >敵弾をCPUごとに振り分ければよくね
よく分からんが 2DSTGでゲームオブジェクトを並列化しようって話をしてるなら エフェクトや弾が真っ先に候補に上がるのはごく自然なことだよ エフェクトや弾同士は相互作用が基本的に無いから実装も単純
- 90 名前:名前は開発中のものです。 mailto:sae [2008/03/18(火) 14:35:40 ID:h/08ARO0]
- レスがかぶっちった
- 91 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 18:20:56 ID:PQFbQVbE]
- 2Dシューティングを作りたいなと思ってここにたどり着いたのですが、
フリーソフトで何を使えば一番簡単に始められますか?
- 92 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 18:25:47 ID:+UFwrO/v]
- HSP
- 93 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 18:31:16 ID:kJphN6cj]
- STGビルダー
- 94 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 19:18:33 ID:UdPg6oix]
- 両方捨てがたいな
- 95 名前:名前は開発中のものです。 mailto:sage [2008/03/18(火) 20:05:42 ID:PQFbQVbE]
- >>92-94
ありがとうございます。 両方調べて出直してきます。
- 96 名前:名前は開発中のものです。 mailto:sage [2008/03/20(木) 18:13:51 ID:zMjnThxP]
- ゲーム中のオブジェクトの基本となるクラスがあるとして、
そのクラスの配列を作り、メンバ変数でオブジェクトの種類を区別するか、 そのクラスへのポインタの配列をつくり、放り込む派生クラスの種類で区別するか どっちのやりかたで作ってる? 前者の方が複雑なポインタを考えない分、簡単かもしれないけど、 後者の方がオブジェクト指向的に綺麗かなぁ
- 97 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 00:45:59 ID:Y2tGkS1P]
- 判定アリ背景(接触しても死なない)の処理がとてもめんどうなんですが
こういった処理をしている方、どんな風にやってますか?
- 98 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 07:09:36 ID:zfnOUqWA]
- どういう処理にしたいのかもうちょっと詳しく
- 99 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 11:47:21 ID:Hgv+vM2A]
- すみません
・接触しても死なない/めり込まない ・縦の壁に対して斜め入力をし続けると、空いてる方向に移動する ・スクロール等で壁が移動する場合、キャラは押される ・画面端に挟まれると死ぬ こんな感じです 2番目3番目がさっぱりです
- 100 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 13:08:41 ID:kWp5gXWi]
- 2は横移動先が壁にめり込んでたらめり込んだ分横に押し戻し
3はスクロールしてめり込んだらめり込んだ分スクロール方向に押し戻し とか
- 101 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 13:44:46 ID:XmgrQpyE]
- 2は普通に作ればたいてい空いてる方向に移動すると思うぞ
要するに、キー入力方向に壁があったら、その方向の移動量をゼロにする あと、地形を重視するなら大きなマップの中で視点がスクロールすると考えるといい 一度アクションゲームを作ってみるといいよ 4点とも簡単に解決できる
- 102 名前:名前は開発中のものです。 mailto:sage [2008/03/21(金) 23:10:22 ID:Y2tGkS1P]
- ありあとうございます。
>>100 今やっているのだとそんな感じなのですが、斜めの壁のとき おかしくなる気がします。X方向とY方向を別々に判定してるんで 順番によっても変になってる気がします。 >>101 その場合先に壁と隣接しているかどうか判定するのでしょうか 今考えてるやり方だとめり込んでから戻すって感じなのですが。
- 103 名前:名前は開発中のものです。 mailto:sage [2008/03/22(土) 00:30:26 ID:YjjlX8do]
- >>102
縦壁だけじゃなく斜め壁もあるのか そしたら斜めの当たり判定のとり方から説明が必要? それとも壁の角に斜めにぶつかった場合ってことだろうか >>100はx方向を先に判定すれば壁の角から横に進むしy方向なら縦だし どっちにも進みたくないなら別の処理が必要だし どっちにしてもどういう挙動がおかしい挙動なのか仕様がわからいとなぁ
- 104 名前:名前は開発中のものです。 mailto:sage [2008/03/22(土) 00:43:49 ID:8Y+Va9zt]
- めり込んだら押し戻すで全部解決するはずだがなあ・・・
接触判定がおかしいんじゃないのか?
- 105 名前:名前は開発中のものです。 mailto:sage [2008/03/22(土) 05:42:47 ID:44zgMaPM]
- >>102
「壁ずり」で検索
- 106 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 13:04:48 ID:VlbCWj/H]
- 当たり判定ってどんな形にしてる?
円形または矩形で統一するのが楽だけど、 円形だと細長い弾やレーザーが、矩形だと斜めの弾の表現が難しい 複数の矩形とか?
- 107 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 13:25:23 ID:d2zOUJKL]
- 俺は基本的には矩形以外使わないな
ところで斜めの弾ってなんだ?
- 108 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 13:40:58 ID:XpxtelVy]
- 俺は楕円にしてる
- 109 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 13:43:51 ID:9Ostvv4d]
- 矩形だけだな
斜めは回転で対応
- 110 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 13:46:52 ID:VlbCWj/H]
- 斜めの弾=斜め方向に飛ぶ弾、斜め方向に長い弾
矩形だと見た目とずれるし、矩形を回転させるのは手間。楕円も同じ 円形だと、斜め向きでも縦向きでも 尖がった部分に当たり判定が無いのは共通だからまあマシかな、と
- 111 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 14:02:08 ID:DkU5E/rv]
- 円形で細い弾は作らない。
- 112 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 14:14:31 ID:d2zOUJKL]
- >>110
針弾のこと? 矩形回転くらいやんなさいよw それが面倒なら針弾なんか使わなければいい。 丸い弾だけなら正方形判定だけで出来る。
- 113 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 15:33:05 ID:SMEFBCL/]
- 俺は斜めだろうと楕円だろうと何だろうと正方形で済ませてるど素人です。
自分でプレイしてて全然気にならないんですが、 やっぱ弾幕シューとかだと重要なんでしょうかね。 自分は緻密な弾避け行為にこだわってないから解んないけど そういうのが好きな人は違うのだろうか。
- 114 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 15:40:46 ID:ZbRSLUlC]
- まぁ、好きな人はそういう仕様まで利用していくから良いと思うよw
- 115 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 15:58:42 ID:4ckcNna2]
- 弾幕目の敵にしすぎワロタ
弾幕ゲーじゃなくても、見た目と違うあたり判定はどうも嫌いだな 某同人弾幕ゲーは見た目と当たり判定の乖離がひどいが 俺は矩形の当たり判定を複数持たせて近似している 地面とかは円形だとうまく表現できないし 本当はビットマップを走査して判定したいけど、さすがに重過ぎる
- 116 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 16:14:15 ID:XpxtelVy]
- 線分交差判定か何かでいいんじゃないか
- 117 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 18:40:14 ID:d2zOUJKL]
- 見た目と違うというが、昔からゲームやってる人間なら
むしろ見た目どおりの判定のほうがおかしく感じるハズだw
- 118 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 20:14:18 ID:2cPCy0BJ]
- 何回もやってりゃなれるしな
- 119 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 21:27:48 ID:cK7bOzt5]
- 自機の当たり判定が点なのに
弾の判定が見た目と違うと文句をつけるのもおかしな話だ
- 120 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 22:14:24 ID:/kBQhQQw]
- んだな
針弾の当たり判定オブジェクトが矩形(正方形のAABBの数珠繋ぎ)でも 判定が甘め(針弾イメージからAABBが飛び出ない)なら俺は気にならん だが矩形回転(OBB)が面倒とかいうのも ちと情けないというか。高校レベルの算数だろ
- 121 名前:名前は開発中のものです。 mailto:sage [2008/03/23(日) 22:17:16 ID:/kBQhQQw]
- あと針弾をAABB数珠繋ぎでやるくらいなら
円の数珠繋ぎのほうがマシな気がしないでもない
- 122 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 00:08:41 ID:+0T08afk]
- >>120
×算数 ○数学 回転矩形同士の当たり判定は結構面倒だと思うが 難しいんじゃなくて面倒
- 123 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 00:29:47 ID:Yr94LLRU]
- STGスレだから
OBB vs 点 の判定という前提で 簡単と書いたったのゆーしてくらはい
- 124 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 10:01:29 ID:IupNpfeC]
- 俺は先端に矩形を一個だけww
手抜きサーセンwwwww
- 125 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 11:24:17 ID:mEuEcy6w]
- それで良いんじゃね
- 126 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 12:08:38 ID:fwLvQ6Ft]
- 難しいとか面倒とかでもあるけど
比較的どうでもいい事に処理を食わせたくないという旧い人間な俺。
- 127 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 12:35:06 ID:mEuEcy6w]
- たとえば中型のプロペラ機の機体後部とか尾翼とかに判定なんか要らんのですよ
主翼部分だけで良いんです
- 128 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 13:17:05 ID:sI3+U67E]
- >>115
どうでもいいけど、確かひとつのオブジェクトに複数の当たり判定を持たせる、 という方法はセガが特許をとっていたはず
- 129 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 13:27:41 ID:mEuEcy6w]
- 知らんがなそんなもんw
- 130 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 14:00:30 ID:3DNtnzJR]
- >>128
3Dオブジェクトの周りに球形の当たり判定を複数つけるというのがセガの特許だから 2Dなら大丈夫なんじゃないか?
- 131 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 14:31:02 ID:fwLvQ6Ft]
- そんなんで特許取れるのか……。
- 132 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 14:34:58 ID:GL5PdgnZ]
- >特許3603898
>特開2003-299877 >交差判定方法及びこれを用いたゲーム装置 この辺かなぁ これ普通に既知・公知の基本技術だよねぇ 趣味野郎にとっては完全無視しても事実上無問題の話だけど ゲームで飯食ってるその手の業界の競合他社の法務部門は こういうナメた特許を取られて異議申し立てもせずに 完全スルーしてて大丈夫なのか?タダ飯食って寝てるだけだろ
- 133 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 16:20:11 ID:mEuEcy6w]
- アメリカで「入力装置による操作で画面の絵が動く」とかいうサブマリン特許で
ゲームメーカー各社が訴訟起こされたりしたからな。そこら辺は防衛手段だと思われ。
- 134 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 20:09:54 ID:RTOqTDW3]
- もういっそ
「誰でも考え付くくだらない技術で特許を取る方法」という特許を取ればいいのに
- 135 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 22:03:31 ID:nPahSoi8]
- 普通に矩形判定の回転とかやり方が思いつかない理系の俺はどうしたらいい?
- 136 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 22:22:10 ID:sI3+U67E]
- 回転した矩形の衝突判定なら、多角形の衝突判定でいいと思う
- 137 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 22:23:12 ID:k9aWkyJr]
- >>135
中学生?
- 138 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 22:31:04 ID:YAOqhvfe]
- 敵キャラの基本と思ってスライムを作った
あー、STGの空飛ぶ世界でスライムって使いどころが……
- 139 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 22:33:21 ID:V5wQxKJV]
- 横シューでグラVのバスクリン見たいに落ちてくるとか
- 140 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 23:21:17 ID:nPahSoi8]
- >>137
えぇ。適当にベクトルの式の立てて解くっぽいことしか想像できないw しかもやり方わからんし 数Cもっとまじめにやるんだったかな・・・ちょっくら高校の教科書とにらめっこしてくる。
- 141 名前:名前は開発中のものです。 mailto:sage [2008/03/24(月) 23:44:00 ID:YAOqhvfe]
- 一方がもう一方に入り込む可能性を無視するなら、各辺が交わっているか判定する
入り込む場合は、一方の頂点がもう一方の領域に入っていることを判定する 頂点が領域に入っている判定は、 矩形に限定するなら、座標変換した後、普通に矩形と頂点の判定をするとか 凸多角形なら、辺と頂点の位置関係(常に頂点が辺の左側にあるか)を判定すればOK こんな感じ? >>139 背景の当たり判定考えてないんだよねぇ 何か土台でも作ろうかな
- 142 名前:名前は開発中のものです。 mailto:sage [2008/03/25(火) 00:22:40 ID:+WqpoOyM]
- ライフゲージをスライムの大きさで表示
そしてアイテムは全部スライム
- 143 名前:名前は開発中のものです。 mailto:sage [2008/03/25(火) 00:32:40 ID:9+3bwAjS]
- 普通に地上キャラでスライムだせばいいのでは・・・
- 144 名前:名前は開発中のものです。 mailto:sage [2008/03/25(火) 00:39:21 ID:BjCc4re0]
- 接触したら、コマンド入力方式戦闘シーンに突入すればいいのでは……。
- 145 名前:名前は開発中のものです。 mailto:sage [2008/03/25(火) 01:38:38 ID:uFzRVnSV]
- ゲーム中の物体は全てオブジェクトで、
登場するたびにnewでメモリ確保してlistに突っ込んでるんだが、 newは自重したほうが速度的に有利なのかな いまどきのPCなら問題ないよ・・・な?
- 146 名前:名前は開発中のものです。 mailto:sage [2008/03/25(火) 11:55:46 ID:mSvRfoAk]
- そのぐらいの最適化、ちょっと手を加えれば済むんだからやっとけよ
プールして再利用、あとは事前にまとめて確保しておけ
- 147 名前:97=99 mailto:sage [2008/03/25(火) 12:04:14 ID:pBCIUDY5]
- 遅くなりましたがいろいろありがとうございました
今試行錯誤中です
- 148 名前:名前は開発中のものです。 mailto:sage [2008/03/25(火) 19:28:38 ID:njfgxTgM]
- >>141
まさにその形で組んだ所だったよ。 内包する場合も141と同じ方式。 前にどこかで拾った式コピペしときま。外積使って頂点が左にあるか。を求めてるのかと。 828 2008/01/25(金) 18:20:24 ID:wCWKO3oH 名前は開発中のものです。(sage) 四角形ABCDと点Pの当たり判定 (Px-Ax)*(Py-By)-(Py-Ay)*(Px-Bx) > 0 and (Px-Bx)*(Py-Cy)-(Py-By)*(Px-Cx) > 0 and (Px-Cx)*(Py-Dy)-(Py-Cy)*(Px-Dx) > 0 and (Px-Dx)*(Py-Ay)-(Py-Dy)*(Px-Ax) > 0 の時は当たり
- 149 名前:名前は開発中のものです。 mailto:sage [2008/03/25(火) 20:47:36 ID:ZVswnUkG]
- >>146
ぶっちゃけSTGに可変長配列は要らないな オブジェクトの配列を最初にまとめて確保して、存在フラグをメンバ変数に持たせる 派生クラスも作らないで、オブジェクトの種類はメンバ変数で管理 ぜんぜん美しくないけどな
- 150 名前:名前は開発中のものです。 mailto:sage [2008/03/26(水) 17:47:55 ID:H5DuUJqf]
- オブジェクトのプールってどのように実装しているんでしょうか?
まとめて確保したオブジェクトのポインタをstackに積んでおいて 取り出したり使い終わったら戻したりみたいなやり方と プールのlistと使用中のlistでやりとりするみたいなやり方 を思いついたんですけど・・・ もっとかっこいいやり方あるんでしょうか?
- 151 名前:名前は開発中のものです。 mailto:sage [2008/03/26(水) 18:31:19 ID:kiBU8E/6]
- STLは使って無いんだけど、後者と同様の事をしてる。
任意サイズメモリを確保してそれをローカルヒープとして管理し、 そこからAlloc/Freeってのをやってたこともあったけど、可変サイズに対応可能だけど メモリ管理ブロック分がもったいないとか、微々たるものだが処理コストが気になる、とか一長一短。 PCなら気にしなくてもいいかな?
- 152 名前:名前は開発中のものです。 mailto:sage [2008/03/26(水) 19:28:28 ID:GuggIAK/]
- PCなら気にする必要は全く無しというのが俺の実験結果
ボス、弾、破片(パーティクル)に至るまで一個一個new(LocalAlloc)してdeleteして 24時間デモシーンをぶん回しても異常なしだったんだぜ
- 153 名前:名前は開発中のものです。 mailto:sage [2008/03/26(水) 20:34:31 ID:59FgdjS6]
- 物理演算とか相当煩雑な処理させない限り、
現在のPCの処理速度では最適化の意味がない、ってのは常々言われてるな 処理速度より、生産性とかソースの可読性とかを優先していいと思われ
- 154 名前:150 mailto:sage [2008/03/26(水) 22:29:36 ID:BPyz/7I/]
- 自分も今はそのままnewを使っているんですが
同じ動作をするなら少しでも軽いほうが精神衛生的に良いかなと。 処理もそんなに難しそうじゃないし。 まあ、一人でしこしこ作ってるので自分が納得できるようにやります。
- 155 名前:名前は開発中のものです。 mailto:sage [2008/03/26(水) 23:10:59 ID:u3R/2Gep]
- それが一番だな。>自分が納得
- 156 名前:名前は開発中のものです。 mailto:sage [2008/03/26(水) 23:18:09 ID:pNomGL32]
- 俺は配列で確保してる
- 157 名前:名前は開発中のものです。 mailto:sage [2008/03/26(水) 23:37:23 ID:59FgdjS6]
- クラスのサイズがバラバラだから、使いまわし出来ないなぁ
最大サイズで確保するのはなんか癪だ
- 158 名前:名前は開発中のものです。 mailto:sage [2008/03/27(木) 00:08:07 ID:sUf83WPb]
- しかし最大サイズで確保するのが最も現実的な罠
断片化を抑えるために色々小細工してるから遅い、という原因には効く
- 159 名前:名前は開発中のものです。 mailto:sage [2008/03/27(木) 01:08:19 ID:V2zSEp+V]
- >>157
>癪だ 富豪厨の俺に言わせれば boost::simple_segregated_storageでガバッと確保して固定サイズでジャブジャブ融資 原資(メモリ)が足りない?そんなしみったれた貧弱PCユーザーは今すぐrejectだ!
- 160 名前:名前は開発中のものです。 mailto:sage [2008/03/27(木) 01:33:36 ID:PgdiK5wh]
- アジャイル、UML,オブジェクト思考、階層化・・・
色々悩ませてくれたが・・・俺は最大の手段を使うことにした そ れ は ・ ・ ・ goto文
- 161 名前:名前は開発中のものです。 mailto:sage [2008/03/27(木) 05:29:56 ID:/WF5Ry8k]
- >>157
使いまわせるように作るんだよぅ
|

|