シューティングゲーム ..
14:名前は開発中のものです。
08/02/23 17:29:00 xkbF394I
BGMは場面に関連付けるものだから
ボスとか道中とか関係ない
15:名前は開発中のものです。
08/02/23 18:15:46 gNTursnn
ボスの個体のテーマ曲があってもいいじゃないかと思ったこともある。
道中は面の曲でライバルならライバルの曲、再登場するたびにアレンジが変わったりさ。
16:名前は開発中のものです。
08/02/23 18:43:21 50ibBEMg
特攻空母ベルーガ
17:名前は開発中のものです。
08/02/23 21:17:44 50ibBEMg
URLリンク(www.nicovideo.jp)
18:名前は開発中のものです。
08/02/24 00:02:57 E3UBAVWs
>>14
日本語でおk
19:名前は開発中のものです。
08/02/24 05:21:56 cYgwQ17A
めんどうくさい。
20:名前は開発中のものです。
08/02/24 16:35:26 bNMmtgLE
>>18
BGMはどう使ってもいいのではないか
道中もボスも共通のBGMにしてしまうのもアリ
道中にもボスにもいくつものBGMを使うのもアリ
21:名前は開発中のものです。
08/02/24 16:57:23 WAJduLb6
>>20
そういう意味か 把握した
22:名前は開発中のものです。
08/02/24 17:32:07 1n7OxH2P
釣りじゃないなら言葉遣い自重
23:名前は開発中のものです。
08/02/25 22:08:07 muaGgCrL
>>22
日本語で(ry
24:名前は開発中のものです。
08/02/28 08:07:55 R9ZA919j
前スレ落ちてたのか…。
25:名前は開発中のものです。
08/02/29 15:22:02 G8Sp5cnc
好き嫌いによると思うけど・・・
ファミコンのギャラクシャンみたいなゲームを作るとしたら
オブジェクトは
自機。敵。自ショット。敵ショット。ってあるけど
classはどういう風に定義します?
今まで
自機クラス、敵クラス、自ショットクラス、敵ショットクラスってやってたけど流石に細かすぎかと思って
どうすれば、いいのかなと思って質問させていただきます
ていうか、ゲームの規模によっても分け方違ったりするんでしょうか
26:名前は開発中のものです。
08/02/29 15:39:14 3F0w0otU
普通に全部分けるだろう上皇
煩雑に見えるかもしれないけど、大規模になるにしたがって恩恵が出てくるよ。
27:名前は開発中のものです。
08/02/29 15:54:30 G8Sp5cnc
そうなんですか。。。。ありがとうございます。
聞かなかったらステージクラス作って全部突っ込んでたかもw
28:名前は開発中のものです。
08/03/01 21:30:47 MvitneFw
ライブラリのIrrlichtかLuna使ってる人いる?
これからC++と合わせて作っていこうと思うんだけど
気をつけたほうがいいことってある?
29:名前は開発中のものです。
08/03/04 22:27:16 8F9iAQrc
どっちもイイものだから是非使うといい。俺はDXライブラリ派だけどなw
イアリヒトは3Dゲーには素晴らしいが簡易な2DSTGにはややオーバーキルな
気がしないでもないかもだが。まぁ一度要領覚えちゃえば関係ねーだろ頑張れ
30:名前は開発中のものです。
08/03/05 03:08:07 83HLj8hd
>>29
まとめ見たらなんか良さげなんだけどチュートリアルがさっぱり分からん
DXライブラリは3D対応になったみたいだね
31:名前は開発中のものです。
08/03/07 09:37:47 0A/QoggI
どっちでもいいといえば どっちでもいいのですが、
現在ゲームを作ってまして、敵の動きを実装するのですが、
C言語で関数のポインタを保持し、タイミングが来たら 保持していた関数を呼び出すのと
C++で、基本のクラスを用意し、それから派生してポリモーフィズムで呼び出すのと どちらが良いでしょうか
開発規模は個人なのでそれほど多くならないです、ですがまだ、仕様が決まってないのでなんともいえないのです。
なにが不満かというと
Cだと 関数だらけになってしまう
C++だと 開発に時間がかかったら保守が大変そうなことです
32:名前は開発中のものです。
08/03/07 11:17:43 Z9EEIYSH
498デフォルトの名無しさん2008/03/07(金) 08:49:37
どっちでもいいといえば どっちでもいいのですが、
現在ゲームを作ってまして、敵の動きを実装するのですが、
C言語で関数のポインタを保持し、タイミングが来たら 保持していた関数を呼び出すのと
C++で、基本のクラスを用意し、それから派生してポリモーフィズムで呼び出すのと どちらが良いでしょうか
開発規模は個人なのでそれほど多くならないです、ですがまだ、仕様が決まってないのでなんともいえないのです。
なにが不満かというと
Cだと 関数だらけになってしまう
C++だと 開発に時間がかかったら保守が大変そうなことです
33:名前は開発中のものです。
08/03/07 11:30:59 YTaoJ1tk
どっちでもいいといえば どっちでもいいのですが、
現在ゲームを作ってまして、敵の動きを実装するのですが、
C言語で関数のポインタを保持し、タイミングが来たら 保持していた関数を呼び出すのと
C++で、基本のクラスを用意し、それから派生してポリモーフィズムで呼び出すのと どちらが良いでしょうか
開発規模は個人なのでそれほど多くならないです、ですがまだ、仕様が決まってないのでなんともいえないのです。
なにが不満かというと
Cだと 関数だらけになってしまう
C++だと 開発に時間がかかったら保守が大変そうなことです
34:名前は開発中のものです。
08/03/07 11:47:43 aLFEaNMu
どっちでもいいといえば どっちでもいいのですが、
現在ゲームを作ってまして、敵の動きを実装するのですが、
C言語で関数のポインタを保持し、タイミングが来たら 保持していた関数を呼び出すのと
C++で、基本のクラスを用意し、それから派生してポリモーフィズムで呼び出すのと どちらが良いでしょうか
開発規模は個人なのでそれほど多くならないです、ですがまだ、仕様が決まってないのでなんともいえないのです。
なにが不満かというと
Cだと 関数だらけになってしまう
C++だと 開発に時間がかかったら保守が大変そうなことです
35:名前は開発中のものです。
08/03/07 12:50:59 0A/QoggI
そんなに暇ならこれでも見ていやがれ
URLリンク(www.nicovideo.jp)
36:名前は開発中のものです。
08/03/07 15:17:26 0A/QoggI
IDがogg
歌っちゃおうかな〜
UGA
UGAUGAUGA
カラオケ
UGA
37:名前は開発中のものです。
08/03/07 20:57:12 0A/QoggI
けっ素人童貞の群れか ここは
38:名前は開発中のものです。
08/03/07 21:10:50 wFu1vrhW
誰か相手してやれよ
39:名前は開発中のものです。
08/03/07 21:43:35 0A/QoggI
つかえねぇゴミ蟲
40:名前は開発中のものです。
08/03/07 21:53:33 ONCQtaX8
そう言うな・・・・・。
個人製作なんしょ
自分で管理しやすいほうにすればいいんだよ
ゲーム作ってくうちにそういう局面はいくつもある
何通りも何十通りものやり方から一々2chでレスきいてたんじゃ全然進まないぜ
まぁ最近このスレは過疎っているから変なの沸いてるのは許して欲しい
41:名前は開発中のものです。
08/03/07 22:14:44 2OqKUBaL
どっちでもいいんだったら
好きなようにしろとしか言えんしなぁ
42:名前は開発中のものです。
08/03/08 00:45:37 LX7lEYpp
>>37
悪口って、
自分が言われて痛いことをつい言っちゃうんだってさ
43:名前は開発中のものです。
08/03/08 01:11:59 YtYPc4bI
このイケメンどもめ・・・っ!!
44:名前は開発中のものです。
08/03/08 03:16:49 l4R4lp4I
みんなに言われる
45:名前は開発中のものです。
08/03/08 10:41:45 N6wkyruI
弾が消失したときの処理ってどうしてます?
Class Ammo{ //弾のクラス
〜〜 //弾のデータ
static int Num //弾の数
}Ammo[N]
として、弾Ammo[i]について判定して、敵にあたるなどして消失したとき、
Ammo[Ammo::Num]をAmmo[i]に代入し、Ammo::Num--する
で、もう一度(代入後の)Ammo[i]について判定する
としているんですが、リストとか使った方がきれいでしょうか?
46:名前は開発中のものです。
08/03/08 12:35:05 KCgRA2Oh
弾に限らず敵でもなんでも当てはまるな
俺ならリスト使うけど
それよりもAmmoクラスに弾の数を入れるのはちょっとおかしくないか
Ammoを委譲するクラスを作って、その中で弾数を管理した方が・・・
class AmmoContainer {
std::vector<Ammo*> ammos;
public:
int get_ammo_num() { return ammos.size(); } // 弾の数を返す
};
とかさ
47:名前は開発中のものです。
08/03/08 15:03:14 N6wkyruI
なるほど、確かにその方が綺麗ですね
自機の弾と敵機の弾でクラスを分けていたのですが、弾のクラスをひとつにして、
MyAmmoContainerとEnemyAmmoContainerのメンバクラスにすることで、区別してみようと思います
ただ、自機や敵機との衝突判定があるので、
>std::vector<Ammo*> ammos;
はprivateじゃなくpublicの方がいいように思うのですが
(privateだと自機クラス、敵機クラスから見えませんよね)
48:名前は開発中のものです。
08/03/08 17:05:42 KCgRA2Oh
わざと見えないようにしてるんだ
提案のための単純な例として書いたから端折ったけど
publicなメソッドとしてアクセサなどを用意するのさ
そこは俺の趣味なので、自分の思うように作るのがいいと思うよ
49:名前は開発中のものです。
08/03/08 17:15:28 N6wkyruI
>>48なるほど
極力メンバ外からメンバ内部を直接参照しない方が、
オブジェクト指向っぽいですし、管理もしやすそうですね
その方向で作り変えてみたいと思います
BASIC人なんで、現状staticな変数使いまくり、
構造体もクラスも最小限なアレなプログラム組んでるもので
50:名前は開発中のものです。
08/03/08 23:08:03 KVGlCgOg
そしてゲッターセッターだらけのウンコクラスを作って
ゲロ吐いて人間は成長する
51:名前は開発中のものです。
08/03/09 00:55:27 mx6cSeWU
友達が作ったクラスにゲットセットが12個以上あって見る気失せた事があるな
52:名前は開発中のものです。
08/03/09 01:30:17 jBNp8q5y
クラスに含むものは最小限にして、
単なる変数の分類代わりにしているのは俺だけか
53:名前は開発中のものです。
08/03/09 01:45:53 o3a80veI
俺なんてC++をBASICみたいな使い方しかしてないぜ。
クラス? なにそれ?
54:名前は開発中のものです。
08/03/09 01:51:21 ieFCERy3
まぁstructでもメンバ関数作れるしな
55:名前は開発中のものです。
08/03/09 02:09:14 OuSoXFED
クラスの中でクラスをインスタンス化できるから、下記のような構造に
ゲーム世界クラス
├プレイヤー陣営クラス
│ ├プレイヤーキャラクラス
│ └プレイヤーの弾クラス(弾クラスを継承)
├敵陣営クラス
│ ├敵キャラクラス
│ └敵の弾クラス(弾クラスを継承)
└当たり判定クラス(staticな関数のみ)
※キャラと弾は全て基本オブジェクトクラスを継承
作りすぎかも。陣営クラスはいらないかなぁ
56:名前は開発中のものです。
08/03/09 02:12:36 OuSoXFED
なお、ふたつの陣営クラスは
弾クラスと弾処理メソッドをメンバに持つ陣営クラスを継承している
可読性が酷いな
57:名前は開発中のものです。
08/03/09 22:38:54 ftNyIWMi
is-aとhas-aは区別したほうがいいって
Rubyのお兄ちゃんも言ってたよ
58:名前は開発中のものです。
08/03/09 23:36:37 Uu2b4Hsz
An apple is a fruit.
→appleはfruitの性質と独自の性質を持つ
→appleクラスはfruitクラスを継承する
A car has an engine.
→carはengineを持つ
→carクラスはメンバengineを持つ
って感じか
59:名前は開発中のものです。
08/03/10 17:56:28 /cPILZp3
>>55
ウチはこうかな
シューティング管理クラス
|
├Unitリストのリスト
│ ├0リスト (プレイヤーリスト)
│ ├1リスト (自機弾リスト)
│ ├2リスト (エネミーリスト)
│ ├3リスト (敵弾リスト)
│ ├4リスト (エフェクトリスト)
│ ├5リスト (ボム効果リスト)
│ └7リスト (その他特殊用リスト)
└敵出現データ管理クラス
Unitは基本クラスのことね。
プレイヤー陣営とか敵陣営どころかプレイヤークラスや敵クラスの雛形が無い。
弾のクラスはあるけど、シューティング管理クラスから見た場合はUnitを継承していればいいので関係ない。
後々Unitリストの種類を増やすことを想定して、Unitリストをリストで実装してる。
60:名前は開発中のものです。
08/03/10 21:45:22 cJuRtDMu
ホーミング弾ってどうやって作ってる?
プレイヤーオブジェクトからホーミング弾発射
→弾に目標のエネミーオブジェクトのポインタを渡す
→エネミーオブジェクトの座標めがけて飛ぶ
こんな感じかな?
でもこの場合、プレイヤーオブジェクトは
エネミーオブジェクトのリスト(のポインタ)を持っている必要があるな
なんかもう全部オブジェクト外(STG管理クラス)で処理するのが楽に思えてきた
61:名前は開発中のものです。
08/03/11 00:45:00 xY1/GxLx
STG管理クラスをシングルトンにして直接参照する
オブジェクト指向っぽくないけど、一番楽な方法じゃないかな
62:名前は開発中のものです。
08/03/11 01:14:13 bHXyTii9
弾つながりでちょっと質問です
アルゴリズムマニアクスパラ見したんだけど
反射レーザーの反射部分グラフィックってどう処理してるの?
\/ ‥レーザー
━━‥壁
↑
ココ
本だと\の先端と/の後端を壁にめり込ませている
でもそれだとめり込んだ分、全体の長さが縮むと思うんだ
考えたけどわからない・・
反射部分だけ別グラフィック?
63:59です
08/03/11 01:23:43 bfRz6y+k
>>60
STG管理クラスのインスタンスと、Unitを継承したインスタンスを相互参照になるように作る。
STG管理クラスに指定したUnitリストを取得できるようにしておく。
(自分の座標と、指定したいUnitリストのindexを引数にし、最も近いUnitを戻り値に返すメンバ関数でも可。
というか使う機会も多いので推奨。)
自弾→敵機の場合、管理クラスのメンバ関数に敵のUnitリストを指定して、最も近いUnitを返してもらえばいいし、
敵弾→自機の場合、同様にして自機のインスタンスを返してもらえばいいよ。
こうすれば目標の座標は取得できるから、後は適当に誘導するような処理を記述すればおk。
64:名前は開発中のものです。
08/03/11 14:55:11 tPQccVPP
>>59=63
そういうクラス構造してると、
たとえばエネミーはメンバ変数HPを要るけど、エフェクトや弾は要らないから、
UnitクラスにHPがあると、エフェクトや弾に無駄なメンバ変数が生産されない?
65:名前は開発中のものです。
08/03/11 15:15:48 5rHfGsEC
エフェクトたんやバレットたんだって命ある生き物です><
66:名前は開発中のものです。
08/03/11 18:01:29 pc0n0f/t
正確なレーザーを表示したくてグラディウス外伝が作れるか
67:名前は開発中のものです。
08/03/11 18:08:48 RgITvACC
??
68:名前は開発中のものです。
08/03/11 20:18:19 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:名前は開発中のものです。
08/03/11 21:09:11 bfRz6y+k
4つ目の補足書きわすれたww
CanStand は当たり判定をStg管理クラスのインスタンスが行い、あたった時Stg管理が呼ぶ関数。
たたった相手のインスタンスを引数として渡してくる。
70:名前は開発中のものです。
08/03/12 00:33:20 v0/NzbC7
座標とかの管理はどこで?
71:名前は開発中のものです。
08/03/12 05:56:34 /xH4cY3u
>>70
Stg管理クラスがRectangle(x、y、width、heightで矩形を表す構造体)を何種類か保持してる。
そして各UnitオブジェクトのPositionが、CanExistで矩形の中にいるかを判定してるだけ。
72:名前は開発中のものです。
08/03/14 01:20:40 Qya/6v1U
弾同士の相殺判定つけたら処理落ちしてワロス
いい加減当たり判定の方法を最適化して、
オブジェクトの配列をvectorからlistに変えるべきだな
73:名前は開発中のものです。
08/03/14 02:07:01 eNzI/Vyy
総当りでやってるから重たいってだけの話でねの?
コンテナがvectorだろうがlistだろうが総当りは回避できるべ
と寝る前にエスパーレス
74:名前は開発中のものです。
08/03/14 03:36:05 8tJfVTvY
>>73
とりあえず次のことを行ってないかチェックすべし。
Vector変数 − Vector変数 などの構造体同士の直接演算。ちゃんとメンバをそれぞれ計算するべし。
int4つ分相当超過の構造体/クラスの値返し/値コピー等。 参照渡しのほうが高速。
75:名前は開発中のものです。
08/03/14 03:38:41 8tJfVTvY
レスミス。>>73じゃなくて>>72
76:名前は開発中のものです。
08/03/14 09:42:10 wQ66BM6P
exceptionが弾(破片)同士の衝突判定やってたな
あれは単純なマス目状の空間分割とマルチスレッド化で高速化してるぽい
77:名前は開発中のものです。
08/03/14 10:45:56 Qya/6v1U
しょうもない愚痴にレスくれてdクス
>>73
一応、自機、敵機、自分の弾、敵の弾、アイテム(、エフェクト)で配列を分けてる
>>76のいうように、空間分割した方がいいかもしんない
>>74
大丈夫なはず
78:名前は開発中のものです。
08/03/15 00:13:20 FwUg+nN/
空間分割はともかくマルチスレッドはどうなんだろうか・・・
クアッドコアなら効果ありそうだけど。
79:名前は開発中のものです。
08/03/15 01:22:59 lDsY0+o2
ウチの環境だと、CoreSoloってこともあってかほとんどマルチスレッドは効果が出なかったな。
処理内容によって早かったり、かえって遅くなったりまちまち。
CoreDuoとかだと普通に恩恵が得られそうだけど、そんなPCならGPUもよさそうだしなぁ
80:名前は開発中のものです。
08/03/15 02:34:54 Lrw9CI3F
マルチスレッド興味あるんだが、マルチスレッドを前提にした設計の仕方が思いつかん。
ゲームオブジェクトを非同期に更新する上手い方法なんかないかな。
81:名前は開発中のものです。
08/03/15 10:26:44 Q/W+AhbK
FPSとかは知らないけど、2DSTGでマルチスレッドが有効利用できる
場面って少なく無いか?
総当り系の判定をスレッドに割り振るのも大変そうだし。
ローディング画面でディスクアクセスしながらアニメーション流す位しか
思いつかないんだが、他になんかある?
82:名前は開発中のものです。
08/03/15 14:21:34 Lrw9CI3F
ジオメトリウォーズのエフェクトや背景はマルチスレッドで処理してるとどっかに書いてあったような。
エフェクト類は他のオブジェクトに干渉しないのも多いから、
そういうのはまとめておいて別スレッドで処理すればいいかもしれん。
83:名前は開発中のものです。
08/03/17 17:45:56 PCJP7SA4
>>80
DDR2メモリ4GBが数千円で買える今なら大声で言える
ゲームオブジェクト全てをダブルバッファリングだな
フレーム(t)バッファはリードオンリー
フレーム(t+冲)バッファはライトオンリー
オラ(t+冲) = オラ(t) + (世界(t)がオラに元気を分けた。差分)(冲) + (オラのパワー。差分)(冲)
差分スキームは好きなの使え。ここでは単に一次オイラー
同一フレーム内オブジェクト同士の相互参照は一切ないから
更新順序も排他アクセスも一切不要
メモリが2倍要るという欠点は先述のPC環境なら無視でいいだろ
動作環境
メインメモリ1GBで動かない時は2GB積んでみてください
メインメモリ2GBで動かない時は4GB積んでみてください
…etc…
84:名前は開発中のものです。
08/03/17 19:25:31 +53rIC4V
あなた起動時に全ての画像読み込んでそうですね
俺はちまちまやってます
85:名前は開発中のものです。
08/03/17 23:57:27 PCJP7SA4
富豪厨の俺でも流石にそれはないが
ステージ単位でドカっと読み込んでる
boost::progress_displayのゲージがジリジリと動く様を
ティーカップ片手に優雅に待てば良いのだ
それすら我慢できない低属性プレイヤーはrejectだ
86:名前は開発中のものです。
08/03/17 23:58:50 zSjwTnFq
はいはい、boostスレに帰ろうなw
87:名前は開発中のものです。
08/03/18 13:52:14 zi8sXJbl
敵弾をCPUごとに振り分ければよくね。どんな鬼畜弾幕になるのか知らんが。
88:名前は開発中のものです。
08/03/18 14:26:14 kWeEHiH7
弾同士が干渉しないならそれが良さそうだが、
2DSTGで複数コア使う必要があるような処理って弾同士の干渉くらいな気がする。
>>83は汎用性あって良いかもしれん。
89:名前は開発中のものです。
08/03/18 14:34:56 h/08ARO0
>敵弾をCPUごとに振り分ければよくね
よく分からんが
2DSTGでゲームオブジェクトを並列化しようって話をしてるなら
エフェクトや弾が真っ先に候補に上がるのはごく自然なことだよ
エフェクトや弾同士は相互作用が基本的に無いから実装も単純
90:名前は開発中のものです。
08/03/18 14:35:40 h/08ARO0
レスがかぶっちった
91:名前は開発中のものです。
08/03/18 18:20:56 PQFbQVbE
2Dシューティングを作りたいなと思ってここにたどり着いたのですが、
フリーソフトで何を使えば一番簡単に始められますか?
92:名前は開発中のものです。
08/03/18 18:25:47 +UFwrO/v
HSP
93:名前は開発中のものです。
08/03/18 18:31:16 kJphN6cj
STGビルダー
94:名前は開発中のものです。
08/03/18 19:18:33 UdPg6oix
両方捨てがたいな
95:名前は開発中のものです。
08/03/18 20:05:42 PQFbQVbE
>>92-94
ありがとうございます。
両方調べて出直してきます。
96:名前は開発中のものです。
08/03/20 18:13:51 zMjnThxP
ゲーム中のオブジェクトの基本となるクラスがあるとして、
そのクラスの配列を作り、メンバ変数でオブジェクトの種類を区別するか、
そのクラスへのポインタの配列をつくり、放り込む派生クラスの種類で区別するか
どっちのやりかたで作ってる?
前者の方が複雑なポインタを考えない分、簡単かもしれないけど、
後者の方がオブジェクト指向的に綺麗かなぁ
97:名前は開発中のものです。
08/03/21 00:45:59 Y2tGkS1P
判定アリ背景(接触しても死なない)の処理がとてもめんどうなんですが
こういった処理をしている方、どんな風にやってますか?
98:名前は開発中のものです。
08/03/21 07:09:36 zfnOUqWA
どういう処理にしたいのかもうちょっと詳しく
99:名前は開発中のものです。
08/03/21 11:47:21 Hgv+vM2A
すみません
・接触しても死なない/めり込まない
・縦の壁に対して斜め入力をし続けると、空いてる方向に移動する
・スクロール等で壁が移動する場合、キャラは押される
・画面端に挟まれると死ぬ
こんな感じです
2番目3番目がさっぱりです
100:名前は開発中のものです。
08/03/21 13:08:41 kWp5gXWi
2は横移動先が壁にめり込んでたらめり込んだ分横に押し戻し
3はスクロールしてめり込んだらめり込んだ分スクロール方向に押し戻し
とか
101:名前は開発中のものです。
08/03/21 13:44:46 XmgrQpyE
2は普通に作ればたいてい空いてる方向に移動すると思うぞ
要するに、キー入力方向に壁があったら、その方向の移動量をゼロにする
あと、地形を重視するなら大きなマップの中で視点がスクロールすると考えるといい
一度アクションゲームを作ってみるといいよ
4点とも簡単に解決できる
102:名前は開発中のものです。
08/03/21 23:10:22 Y2tGkS1P
ありあとうございます。
>>100
今やっているのだとそんな感じなのですが、斜めの壁のとき
おかしくなる気がします。X方向とY方向を別々に判定してるんで
順番によっても変になってる気がします。
>>101
その場合先に壁と隣接しているかどうか判定するのでしょうか
今考えてるやり方だとめり込んでから戻すって感じなのですが。
103:名前は開発中のものです。
08/03/22 00:30:26 YjjlX8do
>>102
縦壁だけじゃなく斜め壁もあるのか
そしたら斜めの当たり判定のとり方から説明が必要?
それとも壁の角に斜めにぶつかった場合ってことだろうか
>>100はx方向を先に判定すれば壁の角から横に進むしy方向なら縦だし
どっちにも進みたくないなら別の処理が必要だし
どっちにしてもどういう挙動がおかしい挙動なのか仕様がわからいとなぁ
104:名前は開発中のものです。
08/03/22 00:43:49 8Y+Va9zt
めり込んだら押し戻すで全部解決するはずだがなあ・・・
接触判定がおかしいんじゃないのか?
105:名前は開発中のものです。
08/03/22 05:42:47 44zgMaPM
>>102
「壁ずり」で検索
106:名前は開発中のものです。
08/03/23 13:04:48 VlbCWj/H
当たり判定ってどんな形にしてる?
円形または矩形で統一するのが楽だけど、
円形だと細長い弾やレーザーが、矩形だと斜めの弾の表現が難しい
複数の矩形とか?
107:名前は開発中のものです。
08/03/23 13:25:23 d2zOUJKL
俺は基本的には矩形以外使わないな
ところで斜めの弾ってなんだ?
108:名前は開発中のものです。
08/03/23 13:40:58 XpxtelVy
俺は楕円にしてる
109:名前は開発中のものです。
08/03/23 13:43:51 9Ostvv4d
矩形だけだな
斜めは回転で対応
110:名前は開発中のものです。
08/03/23 13:46:52 VlbCWj/H
斜めの弾=斜め方向に飛ぶ弾、斜め方向に長い弾
矩形だと見た目とずれるし、矩形を回転させるのは手間。楕円も同じ
円形だと、斜め向きでも縦向きでも
尖がった部分に当たり判定が無いのは共通だからまあマシかな、と
111:名前は開発中のものです。
08/03/23 14:02:08 DkU5E/rv
円形で細い弾は作らない。
112:名前は開発中のものです。
08/03/23 14:14:31 d2zOUJKL
>>110
針弾のこと?
矩形回転くらいやんなさいよw
それが面倒なら針弾なんか使わなければいい。
丸い弾だけなら正方形判定だけで出来る。
113:名前は開発中のものです。
08/03/23 15:33:05 SMEFBCL/
俺は斜めだろうと楕円だろうと何だろうと正方形で済ませてるど素人です。
自分でプレイしてて全然気にならないんですが、
やっぱ弾幕シューとかだと重要なんでしょうかね。
自分は緻密な弾避け行為にこだわってないから解んないけど
そういうのが好きな人は違うのだろうか。
114:名前は開発中のものです。
08/03/23 15:40:46 ZbRSLUlC
まぁ、好きな人はそういう仕様まで利用していくから良いと思うよw
115:名前は開発中のものです。
08/03/23 15:58:42 4ckcNna2
弾幕目の敵にしすぎワロタ
弾幕ゲーじゃなくても、見た目と違うあたり判定はどうも嫌いだな
某同人弾幕ゲーは見た目と当たり判定の乖離がひどいが
俺は矩形の当たり判定を複数持たせて近似している
地面とかは円形だとうまく表現できないし
本当はビットマップを走査して判定したいけど、さすがに重過ぎる
116:名前は開発中のものです。
08/03/23 16:14:15 XpxtelVy
線分交差判定か何かでいいんじゃないか
117:名前は開発中のものです。
08/03/23 18:40:14 d2zOUJKL
見た目と違うというが、昔からゲームやってる人間なら
むしろ見た目どおりの判定のほうがおかしく感じるハズだw
118:名前は開発中のものです。
08/03/23 20:14:18 2cPCy0BJ
何回もやってりゃなれるしな
119:名前は開発中のものです。
08/03/23 21:27:48 cK7bOzt5
自機の当たり判定が点なのに
弾の判定が見た目と違うと文句をつけるのもおかしな話だ
120:名前は開発中のものです。
08/03/23 22:14:24 /kBQhQQw
んだな
針弾の当たり判定オブジェクトが矩形(正方形のAABBの数珠繋ぎ)でも
判定が甘め(針弾イメージからAABBが飛び出ない)なら俺は気にならん
だが矩形回転(OBB)が面倒とかいうのも
ちと情けないというか。高校レベルの算数だろ
121:名前は開発中のものです。
08/03/23 22:17:16 /kBQhQQw
あと針弾をAABB数珠繋ぎでやるくらいなら
円の数珠繋ぎのほうがマシな気がしないでもない
122:名前は開発中のものです。
08/03/24 00:08:41 +0T08afk
>>120
×算数 ○数学
回転矩形同士の当たり判定は結構面倒だと思うが
難しいんじゃなくて面倒
123:名前は開発中のものです。
08/03/24 00:29:47 Yr94LLRU
STGスレだから
OBB vs 点 の判定という前提で
簡単と書いたったのゆーしてくらはい
124:名前は開発中のものです。
08/03/24 10:01:29 IupNpfeC
俺は先端に矩形を一個だけww
手抜きサーセンwwwww
125:名前は開発中のものです。
08/03/24 11:24:17 mEuEcy6w
それで良いんじゃね
126:名前は開発中のものです。
08/03/24 12:08:38 fwLvQ6Ft
難しいとか面倒とかでもあるけど
比較的どうでもいい事に処理を食わせたくないという旧い人間な俺。
127:名前は開発中のものです。
08/03/24 12:35:06 mEuEcy6w
たとえば中型のプロペラ機の機体後部とか尾翼とかに判定なんか要らんのですよ
主翼部分だけで良いんです
128:名前は開発中のものです。
08/03/24 13:17:05 sI3+U67E
>>115
どうでもいいけど、確かひとつのオブジェクトに複数の当たり判定を持たせる、
という方法はセガが特許をとっていたはず
129:名前は開発中のものです。
08/03/24 13:27:41 mEuEcy6w
知らんがなそんなもんw
130:名前は開発中のものです。
08/03/24 14:00:30 3DNtnzJR
>>128
3Dオブジェクトの周りに球形の当たり判定を複数つけるというのがセガの特許だから
2Dなら大丈夫なんじゃないか?
131:名前は開発中のものです。
08/03/24 14:31:02 fwLvQ6Ft
そんなんで特許取れるのか……。
132:名前は開発中のものです。
08/03/24 14:34:58 GL5PdgnZ
>特許3603898
>特開2003-299877
>交差判定方法及びこれを用いたゲーム装置
この辺かなぁ
これ普通に既知・公知の基本技術だよねぇ
趣味野郎にとっては完全無視しても事実上無問題の話だけど
ゲームで飯食ってるその手の業界の競合他社の法務部門は
こういうナメた特許を取られて異議申し立てもせずに
完全スルーしてて大丈夫なのか?タダ飯食って寝てるだけだろ
133:名前は開発中のものです。
08/03/24 16:20:11 mEuEcy6w
アメリカで「入力装置による操作で画面の絵が動く」とかいうサブマリン特許で
ゲームメーカー各社が訴訟起こされたりしたからな。そこら辺は防衛手段だと思われ。
134:名前は開発中のものです。
08/03/24 20:09:54 RTOqTDW3
もういっそ
「誰でも考え付くくだらない技術で特許を取る方法」という特許を取ればいいのに
135:名前は開発中のものです。
08/03/24 22:03:31 nPahSoi8
普通に矩形判定の回転とかやり方が思いつかない理系の俺はどうしたらいい?
136:名前は開発中のものです。
08/03/24 22:22:10 sI3+U67E
回転した矩形の衝突判定なら、多角形の衝突判定でいいと思う
137:名前は開発中のものです。
08/03/24 22:23:12 k9aWkyJr
>>135
中学生?
138:名前は開発中のものです。
08/03/24 22:31:04 YAOqhvfe
敵キャラの基本と思ってスライムを作った
あー、STGの空飛ぶ世界でスライムって使いどころが……
139:名前は開発中のものです。
08/03/24 22:33:21 V5wQxKJV
横シューでグラVのバスクリン見たいに落ちてくるとか
140:名前は開発中のものです。
08/03/24 23:21:17 nPahSoi8
>>137
えぇ。適当にベクトルの式の立てて解くっぽいことしか想像できないw
しかもやり方わからんし
数Cもっとまじめにやるんだったかな・・・ちょっくら高校の教科書とにらめっこしてくる。
141:名前は開発中のものです。
08/03/24 23:44:00 YAOqhvfe
一方がもう一方に入り込む可能性を無視するなら、各辺が交わっているか判定する
入り込む場合は、一方の頂点がもう一方の領域に入っていることを判定する
頂点が領域に入っている判定は、
矩形に限定するなら、座標変換した後、普通に矩形と頂点の判定をするとか
凸多角形なら、辺と頂点の位置関係(常に頂点が辺の左側にあるか)を判定すればOK
こんな感じ?
>>139
背景の当たり判定考えてないんだよねぇ
何か土台でも作ろうかな
142:名前は開発中のものです。
08/03/25 00:22:40 +WqpoOyM
ライフゲージをスライムの大きさで表示
そしてアイテムは全部スライム
143:名前は開発中のものです。
08/03/25 00:32:40 9+3bwAjS
普通に地上キャラでスライムだせばいいのでは・・・
144:名前は開発中のものです。
08/03/25 00:39:21 BjCc4re0
接触したら、コマンド入力方式戦闘シーンに突入すればいいのでは……。
145:名前は開発中のものです。
08/03/25 01:38:38 uFzRVnSV
ゲーム中の物体は全てオブジェクトで、
登場するたびにnewでメモリ確保してlistに突っ込んでるんだが、
newは自重したほうが速度的に有利なのかな
いまどきのPCなら問題ないよ・・・な?
146:名前は開発中のものです。
08/03/25 11:55:46 mSvRfoAk
そのぐらいの最適化、ちょっと手を加えれば済むんだからやっとけよ
プールして再利用、あとは事前にまとめて確保しておけ
147:97=99
08/03/25 12:04:14 pBCIUDY5
遅くなりましたがいろいろありがとうございました
今試行錯誤中です
148:名前は開発中のものです。
08/03/25 19:28:38 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:名前は開発中のものです。
08/03/25 20:47:36 ZVswnUkG
>>146
ぶっちゃけSTGに可変長配列は要らないな
オブジェクトの配列を最初にまとめて確保して、存在フラグをメンバ変数に持たせる
派生クラスも作らないで、オブジェクトの種類はメンバ変数で管理
ぜんぜん美しくないけどな
150:名前は開発中のものです。
08/03/26 17:47:55 H5DuUJqf
オブジェクトのプールってどのように実装しているんでしょうか?
まとめて確保したオブジェクトのポインタをstackに積んでおいて
取り出したり使い終わったら戻したりみたいなやり方と
プールのlistと使用中のlistでやりとりするみたいなやり方
を思いついたんですけど・・・
もっとかっこいいやり方あるんでしょうか?
151:名前は開発中のものです。
08/03/26 18:31:19 kiBU8E/6
STLは使って無いんだけど、後者と同様の事をしてる。
任意サイズメモリを確保してそれをローカルヒープとして管理し、
そこからAlloc/Freeってのをやってたこともあったけど、可変サイズに対応可能だけど
メモリ管理ブロック分がもったいないとか、微々たるものだが処理コストが気になる、とか一長一短。
PCなら気にしなくてもいいかな?
152:名前は開発中のものです。
08/03/26 19:28:28 GuggIAK/
PCなら気にする必要は全く無しというのが俺の実験結果
ボス、弾、破片(パーティクル)に至るまで一個一個new(LocalAlloc)してdeleteして
24時間デモシーンをぶん回しても異常なしだったんだぜ
153:名前は開発中のものです。
08/03/26 20:34:31 59FgdjS6
物理演算とか相当煩雑な処理させない限り、
現在のPCの処理速度では最適化の意味がない、ってのは常々言われてるな
処理速度より、生産性とかソースの可読性とかを優先していいと思われ
154:150
08/03/26 22:29:36 BPyz/7I/
自分も今はそのままnewを使っているんですが
同じ動作をするなら少しでも軽いほうが精神衛生的に良いかなと。
処理もそんなに難しそうじゃないし。
まあ、一人でしこしこ作ってるので自分が納得できるようにやります。
155:名前は開発中のものです。
08/03/26 23:10:59 u3R/2Gep
それが一番だな。>自分が納得
156:名前は開発中のものです。
08/03/26 23:18:09 pNomGL32
俺は配列で確保してる
157:名前は開発中のものです。
08/03/26 23:37:23 59FgdjS6
クラスのサイズがバラバラだから、使いまわし出来ないなぁ
最大サイズで確保するのはなんか癪だ
158:名前は開発中のものです。
08/03/27 00:08:07 sUf83WPb
しかし最大サイズで確保するのが最も現実的な罠
断片化を抑えるために色々小細工してるから遅い、という原因には効く
159:名前は開発中のものです。
08/03/27 01:08:19 V2zSEp+V
>>157
>癪だ
富豪厨の俺に言わせれば
boost::simple_segregated_storageでガバッと確保して固定サイズでジャブジャブ融資
原資(メモリ)が足りない?そんなしみったれた貧弱PCユーザーは今すぐrejectだ!
160:名前は開発中のものです。
08/03/27 01:33:36 PgdiK5wh
アジャイル、UML,オブジェクト思考、階層化・・・
色々悩ませてくれたが・・・俺は最大の手段を使うことにした
そ れ は ・ ・ ・
goto文
161:名前は開発中のものです。
08/03/27 05:29:56 /WF5Ry8k
>>157
使いまわせるように作るんだよぅ
162:名前は開発中のものです。
08/03/27 09:52:59 4/N0HnfM
単純な直進弾や自機狙い弾と、
ホーミング弾や複雑なAIを持った敵機で、
必要なメンバ変数の数が違うんだよねぇ
163:名前は開発中のものです。
08/03/27 13:42:30 QODpit3Q
で?みたいな(笑)
164:名前は開発中のものです。
08/03/27 16:42:19 V2zSEp+V
>>162
3DSTGの敵機に編隊飛行、指令送受信、策敵、射撃、回避、離脱、体当たり
こんだけ積み込んでおおよそ64[Bytes/Instance]
ブースターだの脱出ポッドだのバリoートだのフライ○グアーマーだのといった
子インスタンスを加えても合計128[Bytes/Instance]を上回ることはなかった
誘導弾は64[Bytes/Instance]以下
直進弾は32[Bytes/Instance]以下
敵機200機の飽和攻撃により誘導弾800発と直進弾2000発
合計3000個のインスタンスが画面内を乱舞するとする
割り当て方法は全部同じプールでも別々のプールでも
インスタンス毎にnew(HeapAlloc)でも好きにしたまえだが
毎回HeapAllocだと管理領域分も考慮しなければいけないので
ここでは話を単純化するためプールとする
165:続き
08/03/27 16:42:55 V2zSEp+V
富豪厨は太っ腹なので全て128[Bytes/Instance]の固定サイズで
湯水のごとくアロケート
種類 サイズ(使用メモリ) 個数 サイズ合計 使用メモリ合計 無駄使い
----------------------------------------------------------
敵. 128(128) 200 25600 . 25600 . 0
誘導弾 64(128) 800 51200 102400 . 51200
直進弾 32(128). 2000 64000 256000 192000
----------------------------------------------------------
合計 224(384) 3000 . 140800 384000 243200
敵、誘導弾、直進弾、別々のプールから割り当てる場合と比較すると
3倍弱のメモリを使用して約243KBを無駄にすることが分かる
これを「に、243KBも!(#@Д@)」とするか
「たったの243KBで騒ぐ貧乏人はrejectだな」とするかは
各人のエンゲル係数や可処分所得に左右される大変デリケートな問題
ここではあえて言及しないことにする
以上
166:名前は開発中のものです。
08/03/27 17:01:14 V2zSEp+V
× 約243KBを無駄にする
○ 約237KBを無駄にする
167:名前は開発中のものです。
08/03/27 20:03:42 p+6nv0BF
>敵機200機の飽和攻撃により誘導弾800発と直進弾2000発
>合計3000個のインスタンスが画面内を乱舞
これは酷いな。生きのこれる気がしないぜ
168:名前は開発中のものです。
08/03/27 20:38:33 /7zHrXV5
一昨日PC2 6400 2GBx2を8000円で買ったんだが
243200バイトの損失なら
8000 * 243200 / (1024^3 * 4) = 4.53E-01
たった45銭3厘の損失かぁ
MSXの32KB拡張RAMカートリッジ、高かったなぁ(遠い目
169:名前は開発中のものです。
08/03/27 21:35:50 PgdiK5wh
もまいらいったいいくつから作ってるんだ?
170:名前は開発中のものです。
08/03/27 21:58:45 d3jrFqn7
パピコンでBASICゲーム作ってたのは中学んときだけど、
まがりなりにもシューティングらしきのを作ったのは高校ん時だったかなぁ。
やはりパピコンのBASICコンパイラ+表示部分だけマシン語(ハンドアセンブル)で。
あの頃からほとんど成長してないのは正直どうかと……w
171:名前は開発中のものです。
08/03/27 22:04:51 V2zSEp+V
>>169
もまいの故郷
goto文を恐れなく使う兵達のスレ
URLリンク(pc.2ch.net)
172:名前は開発中のものです。
08/03/27 22:07:22 DaOlp9/i
真の富豪厨は毎回new/deleteだろ。
173:名前は開発中のものです。
08/03/27 22:11:27 V2zSEp+V
やった(>>152=俺)が、余りにもアッサリとうまく動きやがったので
面白くないからrejectしてやった
174:名前は開発中のものです。
08/03/27 22:58:05 WDUR6Kc3
3Dで敵機64バイトって小さすぎない?
姿勢情報とかでどうしても容量デカくなりそうだけど
175:名前は開発中のものです。
08/03/27 23:44:06 XP2qgfZL
変位(座標)と回転の情報を4x4行列にぶち込んでればそりゃブクブク膨れ上がるだろうけど
回転にクォータニオンとか使ってれば2要素増えるだけだぜ?(圧縮すれば1要素増加で済む)
変位のほうは単純にz成分(1要素)が加わるだけ
結局、姿勢情報はfloat値6個(24バイト)もあれば十分表現できる
後は速度情報を加えて計48バイトとか
まぁ普通はそんな感じじゃね?
176:174
08/03/28 00:28:27 PZRPRNjR
>変位(座標)と回転の情報を4x4行列にぶち込んでればそりゃブクブク膨れ上がるだろうけど
うっ、それまさに自分だ。。。
クォータニオンか。。。D3DXで提供されてるから素直に使ってみるか
レスd
177:名前は開発中のものです。
08/03/28 00:57:37 p3ibL9sX
そうかなぁ
4x4行列をジャブジャブ使ったほうがある意味で爽快かもよ
178:名前は開発中のものです。
08/03/28 01:12:03 0fJyqmGF
>>172
なんという俺
179:名前は開発中のものです。
08/03/28 01:12:06 PZRPRNjR
そ、そういう発想の転換もアリだよね、ね
PCならこの程度何の実害ないし
クォータニオンはまたその内検討してみまつ。。。
180:名前は開発中のものです。
08/03/28 01:13:36 PZRPRNjR
すまんこアンカー忘れ。>>177だた
181:名前は開発中のものです。
08/03/28 01:18:13 Pgm9Hf0W
>>177
おまいもうboostスレに帰れよw
182:名前は開発中のものです。
08/03/28 01:26:20 p3ibL9sX
どうもお邪魔しました!
_______ boostスレの STGスレの
|←boostスレ| 中の人 中の人
. ̄.|| ̄ ̄ ̄ ┗(^o^ )┳(^o^ )┳(^o^ )┛≡=-
|| ┏┗ ┗┗ ┏┗ ≡=-
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
183:名前は開発中のものです。
08/03/28 02:01:16 ZjS17OFO
絆スキップ
184:名前は開発中のものです。
08/03/28 14:37:29 SjpgUEnZ
>>175
>ブクブク膨れ上がる
常日頃からメタボメタボ言われまくってる俺の
センシティブなハートをお前は深く傷つけたよ
185:名前は開発中のものです。
08/03/28 20:50:33 qlc6IPHd
メタボ臭とかいう新ジャンルのSTGを開拓すればいんじゃね
186:名前は開発中のものです。
08/03/28 21:15:38 /8lohFxt
それ何てミクロの決死圏
血管の中で中性脂肪の弾幕でもかわすのか?すげぇ既視感あるネタだけど
泡状のとかブニョブニョしたものを描くの面倒臭そうだな
昔のメガデモでよくみかけたMETABALLみたいな手法を使えばいけそうだな
オヤジギャグじゃないからな
187:名前は開発中のものです。
08/03/28 22:00:27 wFA3mk0n
メガデモ(笑)
メタボール(笑)
オッサンばっか(笑)
188:名前は開発中のものです。
08/03/28 23:11:26 ikErMOXa
メガデモのメタボールの仕組みよく知らないんだが、あれって
濃度を格納したボリュームデータを用意して
ある濃度をしきい値にして面を張る
みたいな、ベタなやり方だったのかな
10年近く前にクラシックペンティアム積んだPCでぐりぐり動いてた
ような記憶があるんで、上記の手続きだと(特にボリュームデータの
更新、というかアニメーション?あたりが)かなり重たいものになりそうだし
やっぱ何らかのトリック(フェイク)が使われたのかな
あ、ソース公開されてる作品あるからそれ覗けばいいだろってのは分かってる
話題がないのでなんとなくネタ振りということで・・・
グニャグニャ(連続体?)オブジェクトが出現するSTGとか作ってみたいし
189:名前は開発中のものです。
08/03/29 01:52:02 oF0Q5YC2
ム板のメガデモスレ池
マジレス
190:名前は開発中のものです。
08/03/29 02:49:58 4C1bZfLa
>>188
ソフトレンダもので初代Pentiumでぐりぐり(60FPS以上で)動いてたなら
スクリーン解像度は400*300とか320*240程度だったはず
濃度値を収める三次元格子もかなり荒かったんじゃないかなぁ
濃度値の精度は8ビットで格子数は16*16*16=4096バイトとかで十分
この程度なら当時でも余裕で処理できたはず
つか、今時のビデオカードで2DSTGでメタボールっぽいキャラ出すなら
パーピクセルで描ける
法線マップとアルファ付きカラーマップにぼやけた円を重ね描きしていって
アルファテストで閾値設定して描けば立体感(光沢付き)ぷよぷよだよ!
DirectXのSDKにもそんな感じのサンプルが入ってたはず
191:名前は開発中のものです。
08/03/29 10:50:00 p4/t7kS/
背景が黒いなら加算合成で出来ちゃうんだけどな。
192:名前は開発中のものです。
08/03/29 10:52:47 PdR5kqA3
メタボはメタボールの略だったのか。
193:名前は開発中のものです。
08/04/01 15:39:40 3rITgYf3
メタルボーク発進
194:名前は開発中のものです。
08/04/04 00:38:42 JN0z56Et
質問
CGってグラフィックボードで描いてるんだよね?
ハード的な理由で描画はマルチスレッドみたいになるの?
てことは、処理落ちの原因はほとんど当たり判定とかのせいになるの?
ということは、当たり判定をマルチスレッド分担すればいろいろ完璧?
195:名前は開発中のものです。
08/04/04 01:02:14 1TsuscT3
今時、当たり判定程度で処理落ちするCPUはない
プログラムにむちゃくちゃ無駄が多かったりしない限り
3Dならポリゴン数が多いと、GPUの性能次第で処理落ちするし、
物理演算があるとCPU性能次第で処理落ちするかな
196:名前は開発中のものです。
08/04/04 03:26:09 kdoRe4RJ
>>194
「てことは」の前後の文脈がどういう理屈で繋がるのか知らんが、2DSTGの話をしてるなら
今時どんなヘボノートPC環境であろうとも「当たり判定」で処理落ちさせるなんて至難の業だな
5年近く前のモバノート(1GHz前後のペンM…当然シングルコア)でシングルスレッドの総当りで
敵50匹と弾1500発の処理やらせて普通に60fps出るんだから、この時点で既に「いろいろ完璧」
197:名前は開発中のものです。
08/04/04 03:59:52 VspohKvQ
そのスペックで1500の総当りってどう考えてもきつい気がするんだけども・・・
198:名前は開発中のものです。
08/04/04 07:15:31 69exqbeK
ウチのご隠居チンコパッドX31が初代セントリーノの1.2GHzで
だいたい同世代みたいだけど、1500個くらいならイケてる
ビデオチップがMobileRadeonとやや貧弱だから、計算よりも
描画周りに気を使う
使うっつってもテクスチャをケチりまくるとか
頂点バッファとDrawPrimitiveの使い方を適切に、とか
その程度の話だけどね
199:名前は開発中のものです。
08/04/04 10:16:35 AI/AEUDG
総当り以外の当たり判定処理ってのが思いつきません。
ずっと昔に仮想マップみたいなのを用意しておいて
そこにキャラや弾の情報を書き込み、判定の際に使うってのを
何かで見た記憶があるけど、こういうのの事でしょうか。
200:名前は開発中のものです。
08/04/04 10:46:32 hPpN0s4/
空間分割ってのがありまして。
完全2Dなら当たり判定のある空間を縦横20くらいに分割して、
それぞれの空間に属するもの同士で判定を取ることで、
当たる見込みの無いものとの判定を事前に回避する。
201:名前は開発中のものです。
08/04/04 12:27:23 euXxyvh6
>>199
スレリンク(gamedev板:762-765番)n
↑の質問したのお前?
仮に別人だとしてもこの過疎板でこのタイミングで同じ質問が二度出るのは変だな
どっかのゲー専の宿題か何かか?正直に吐いたら褒美をくれてやるぞw
202:名前は開発中のものです。
08/04/04 13:27:02 AI/AEUDG
違います。
ゲー専の宿題でもないです。
今、自分で2Dゲーム作ってて、
キャラと弾、全部あわせると最高1600強を動かしてて、総当りでやってて問題なく遊べてる。
(もちろんあくまで「最高1600」であって、常にそれだけ動いてるわけではない)
「自機と敵弾」だけの判定じゃなくて、「敵と敵弾」とかの判定もやってるのに
ちゃんと遊べるから、最近のPCの処理速度はすげーなーとか思いつつも
やっぱもっと効率のいい判定方法ないかな、と考えてただけです。
203:名前は開発中のものです。
08/04/04 14:08:55 98Hdy+Q5
1600*1600の総当りは3年位前のスペックだときつくないかな?
204:名前は開発中のものです。
08/04/04 14:20:04 kACwEiIs
三年前、2005年のスペックというと
athlon64が全盛でathlon64x2が登場、Core2Duoがまだ、という辺り
有り得ないくらい余裕だな
205:名前は開発中のものです。
08/04/04 14:36:20 8r+omDm7
1600*1600だと最新マシンでも空間分割しないときついんじゃないか。
>>196は弾*キャラなんじゃない?
206:名前は開発中のものです。
08/04/04 16:24:58 XVBdGsRf
典型的な2DSTGで1600のオブジェクトを表示するったって大半が弾なんだけど
1600*1600という数字(組み合わせ)に一体何の意味があるのか>>203は説明できないだろ
207:名前は開発中のものです。
08/04/04 16:25:30 KKsDXKAb
URLリンク(ja.pastebin.ca)
やっつけだがpen3 1GHzのマシンで平均32ミリ秒
30fpsで間に合わないってところか
208:名前は開発中のものです。
08/04/04 17:04:15 KKsDXKAb
URLリンク(ja.pastebin.ca)
今度は32*32の敵64体と16*16の弾1600発のテストで、弾はヒットしたら壊れるという想定
同マシンで2〜3ミリ秒
余裕すぎるな
ただのジコマンなのに連投してすまん
209:名前は開発中のものです。
08/04/04 17:25:12 0OItj9LK
総当りっていったら、普通は敵だの弾だの関係なく
{1600}C{2} = 1600*1599/2 の組み合わせになるんじゃないのか?
64*1600の組み合わせじゃあ桁が違う
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5334日前に更新/199 KB
担当:undef