シューティングゲーム製作技術総合 15機目at GAMEDEV
シューティングゲーム製作技術総合 15機目 - 暇つぶし2ch741:名前は開発中のものです。
08/07/15 22:08:14 JtGVfrRu
東方弾幕風以外でそれくらい機能の充実してるツールって何がありますか?

742:名前は開発中のものです。
08/07/16 21:29:39 ul07QMbT
シューティングゲームの当たり判定って矩形、円形方式以外にあるんでしょうかね?

743:名前は開発中のものです。
08/07/16 21:41:41 sDshxJUY
1回当たり判定が正確なの作ろうとして、
1ドットずつの当たり判定を画像から配列に読み込んだ。

□□■□□
□■■■□
□■■■□
■■■■■
■■■■■

こんな感じに。

それで、まず短形で判定してぶつかってたら、配列で細かい判定をした。
プレイしてみると短形と変わらなかったけどね。

744:名前は開発中のものです。
08/07/16 21:42:49 HKtDx1Lp
abs(自機座標Xー弾座標X)+abs(自機座標Yー弾座標Y)<適当範囲

おれ適当に作ってみたとき、これでやってた。ひし形ですな。

745:名前は開発中のものです。
08/07/16 21:50:22 4EgF3qxQ
>>744
すげえ、初めて見た

746:名前は開発中のものです。
08/07/16 21:52:34 ul07QMbT
>>743
あーそれと近いことやってます~

今うちでやってるモードだと1ドットレベルで当たり判定できるんですが
自機の弾の当たり判定の先端と敵の端が丁度のときは思ったようにいかないんですよね・・・

747:名前は開発中のものです。
08/07/16 22:33:28 tH6C9Mk9
弾などのオブジェクトを基底クラスへのポインタのリストで管理しているのですが、
メモリプールとかどうしてます?
new/deleteは確保・解放速度、メモリ消費量で劣りますが、
boost::poolはサイズ固定なので派生クラスで使いづらかったり
boost:object_poolはクラス固定なので向きません

748:名前は開発中のものです。
08/07/16 22:54:04 ps1864uM
char型配列の形でプール確保
プールで管理したいクラスのnew/delete演算子をオーバーロードしてメモリをプールから確保

これでやってる

749:744
08/07/16 23:12:47 HKtDx1Lp
>>745
矩形の方が処理はやいから実際の使い道は微妙ww

巨大な敵ならいいかもしれません。

750:名前は開発中のものです。
08/07/16 23:25:00 Cl1ru+Nb
なんかみんなハイレベルなことやってんなぁ
クラスとかポインタとかよくわからん俺は全部構造体と配列で敵とか弾とか管理してる

751:名前は開発中のものです。
08/07/16 23:30:18 UitUcmmL
>>747
boost::fast_pool_allocator

752:名前は開発中のものです。
08/07/16 23:33:13 UitUcmmL
>>750
それでいいと思うよ。
抽象化だとか言っても結局は自己満足だ。
自分の作りやすい作り方を模索すれば良し。

753:名前は開発中のものです。
08/07/16 23:37:49 ul07QMbT
>>750
まあ管理機能はあるタイミングで画面に何千もオブジェクトがでないのであれば
配列でいいんじゃね?
千越えるとさすがにリストでも使っていったほうがいいだろうけど。


>>752
でもさ、C言語でゲーム組んでてサイズでかくなってきたら
クラスみたいな実装形態にいつの間にかしちゃってたぜw

数種類のデータがあったらそのデータ毎にソースが独立してて
アクセスする際は専用関数を呼び出す。

効率は悪くなるが安全だしな。


754:名前は開発中のものです。
08/07/16 23:43:34 ul07QMbT
それに実は双方向リストもたいしたことないんだよね。
どんなに構造体のサイズが変わろうが、次と前のポインターが入ってて
入り口と最後をさす管理用ポインターさえあればネットに転がってる
ソースをちょこっと修正すれば完成。

755:名前は開発中のものです。
08/07/16 23:50:36 Cl1ru+Nb
>>752>>753
なるほど…自分のやりたいようにやれば良いのか…
弾とか敵とか合計13000個くらい(敵弾が12500発)当たり判定つきでいっぺんに動かしたらさすがに60FPS維持がキツくなったけどこんなもんなんだろうか
CPUはせろりんの1.6Ghzでグラボは8400GS

756:名前は開発中のものです。
08/07/16 23:58:44 wSTAyXoK
一画面にそれ全部描画してるの?

757:755
08/07/17 00:11:06 6mPYwzZu
>>756
全部描画してることになるのかな…
表示領域?キャラが動ける範囲、そこに全部描画してみた
自機はおろか背景も見えない

移動してはみ出た弾は勝手に削除、敵は常に360/1Fの勢いで弾を出させてたから弾切れ起こしてた

携帯でスマヌ

758:名前は開発中のものです。
08/07/17 00:13:24 dzlckui1
>>747
富豪厨はfailmallocが大好きです

759:名前は開発中のものです。
08/07/17 00:44:03 O2fFtOBP
なんか>>750が俺とよく似ている……w

自分で自己満足ゲーム作ってる分には問題ないんだけど
Cを使うプログラマ、という観点から見るとダメダメだなぁと落ち込むんだよなぁ。

760:名前は開発中のものです。
08/07/17 00:49:19 WDu5mPhV
>>759
別に勉強すればいい。
それにC++とかでクラスを使いだすとあれこれ面倒だけど
Cでリスト程度ならネットで検索すれば解説もごろごろ出てるし
関数化してしまえばぜんぜん問題ない。



761:名前は開発中のものです。
08/07/17 03:53:57 3ZWP2jps
どうしてもこの処理がしたい!
でもそれをやるにはポインタが必要だ!

って状況になったら覚えれるよ。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch