- 1 名前:名前は開発中のものです。 [2008/02/18(月) 12:02:20 ID:JNgyhRqZ]
- ゲームプログラマなら誰もが通る、もしくは、通った道。青春の香り?
それは「シューティングゲーム製作」・・・。 このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談 失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。 もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを 晒してみたり、プロジェクトをはじめてみるなどもOK! ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の スレでやってくれ。 過去スレ,関連スレは >>2-3で。
- 45 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 10:41:45 ID:N6wkyruI]
- 弾が消失したときの処理ってどうしてます?
Class Ammo{ //弾のクラス 〜〜 //弾のデータ static int Num //弾の数 }Ammo[N] として、弾Ammo[i]について判定して、敵にあたるなどして消失したとき、 Ammo[Ammo::Num]をAmmo[i]に代入し、Ammo::Num--する で、もう一度(代入後の)Ammo[i]について判定する としているんですが、リストとか使った方がきれいでしょうか?
- 46 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 12:35:05 ID:KCgRA2Oh]
- 弾に限らず敵でもなんでも当てはまるな
俺ならリスト使うけど それよりもAmmoクラスに弾の数を入れるのはちょっとおかしくないか Ammoを委譲するクラスを作って、その中で弾数を管理した方が・・・ class AmmoContainer { std::vector<Ammo*> ammos; public: int get_ammo_num() { return ammos.size(); } // 弾の数を返す }; とかさ
- 47 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 15:03:14 ID:N6wkyruI]
- なるほど、確かにその方が綺麗ですね
自機の弾と敵機の弾でクラスを分けていたのですが、弾のクラスをひとつにして、 MyAmmoContainerとEnemyAmmoContainerのメンバクラスにすることで、区別してみようと思います ただ、自機や敵機との衝突判定があるので、 >std::vector<Ammo*> ammos; はprivateじゃなくpublicの方がいいように思うのですが (privateだと自機クラス、敵機クラスから見えませんよね)
- 48 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 17:05:42 ID:KCgRA2Oh]
- わざと見えないようにしてるんだ
提案のための単純な例として書いたから端折ったけど publicなメソッドとしてアクセサなどを用意するのさ そこは俺の趣味なので、自分の思うように作るのがいいと思うよ
- 49 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 17:15:28 ID:N6wkyruI]
- >>48なるほど
極力メンバ外からメンバ内部を直接参照しない方が、 オブジェクト指向っぽいですし、管理もしやすそうですね その方向で作り変えてみたいと思います BASIC人なんで、現状staticな変数使いまくり、 構造体もクラスも最小限なアレなプログラム組んでるもので
- 50 名前:名前は開発中のものです。 mailto:sage [2008/03/08(土) 23:08:03 ID:KVGlCgOg]
- そしてゲッターセッターだらけのウンコクラスを作って
ゲロ吐いて人間は成長する
- 51 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 00:55:27 ID:mx6cSeWU]
- 友達が作ったクラスにゲットセットが12個以上あって見る気失せた事があるな
- 52 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 01:30:17 ID:jBNp8q5y]
- クラスに含むものは最小限にして、
単なる変数の分類代わりにしているのは俺だけか
- 53 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 01:45:53 ID:o3a80veI]
- 俺なんてC++をBASICみたいな使い方しかしてないぜ。
クラス? なにそれ?
- 54 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 01:51:21 ID:ieFCERy3]
- まぁstructでもメンバ関数作れるしな
- 55 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 02:09:14 ID:OuSoXFED]
- クラスの中でクラスをインスタンス化できるから、下記のような構造に
ゲーム世界クラス ├プレイヤー陣営クラス │ ├プレイヤーキャラクラス │ └プレイヤーの弾クラス(弾クラスを継承) ├敵陣営クラス │ ├敵キャラクラス │ └敵の弾クラス(弾クラスを継承) └当たり判定クラス(staticな関数のみ) ※キャラと弾は全て基本オブジェクトクラスを継承 作りすぎかも。陣営クラスはいらないかなぁ
- 56 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 02:12:36 ID:OuSoXFED]
- なお、ふたつの陣営クラスは
弾クラスと弾処理メソッドをメンバに持つ陣営クラスを継承している 可読性が酷いな
- 57 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 22:38:54 ID:ftNyIWMi]
- is-aとhas-aは区別したほうがいいって
Rubyのお兄ちゃんも言ってたよ
- 58 名前:名前は開発中のものです。 mailto:sage [2008/03/09(日) 23:36:37 ID:Uu2b4Hsz]
- An apple is a fruit.
→appleはfruitの性質と独自の性質を持つ →appleクラスはfruitクラスを継承する A car has an engine. →carはengineを持つ →carクラスはメンバengineを持つ って感じか
- 59 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 17:56:28 ID:/cPILZp3]
- >>55
ウチはこうかな シューティング管理クラス | ├Unitリストのリスト │ ├0リスト (プレイヤーリスト) │ ├1リスト (自機弾リスト) │ ├2リスト (エネミーリスト) │ ├3リスト (敵弾リスト) │ ├4リスト (エフェクトリスト) │ ├5リスト (ボム効果リスト) │ └7リスト (その他特殊用リスト) └敵出現データ管理クラス Unitは基本クラスのことね。 プレイヤー陣営とか敵陣営どころかプレイヤークラスや敵クラスの雛形が無い。 弾のクラスはあるけど、シューティング管理クラスから見た場合はUnitを継承していればいいので関係ない。 後々Unitリストの種類を増やすことを想定して、Unitリストをリストで実装してる。
- 60 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 21:45:22 ID:cJuRtDMu]
- ホーミング弾ってどうやって作ってる?
プレイヤーオブジェクトからホーミング弾発射 →弾に目標のエネミーオブジェクトのポインタを渡す →エネミーオブジェクトの座標めがけて飛ぶ こんな感じかな? でもこの場合、プレイヤーオブジェクトは エネミーオブジェクトのリスト(のポインタ)を持っている必要があるな なんかもう全部オブジェクト外(STG管理クラス)で処理するのが楽に思えてきた
- 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なら問題ないよ・・・な?
|

|