>>949 >それにその方法だと敵も自機も極太レーザーのことを知ってないと
>ダメじゃないか
当たり判定クラスが知っていればいいだけじゃないのか?
敵や自機が知ってなきゃいけないのは
HITしたが得点は入らない というメッセージの種類。
自機と敵の判定がないSTGなんてそんなに珍しくないだろ
>>952 > 極太レーザーだったら得点追加メッセージを投げないようにする。
の主語を勝手に敵クラスとしてしまった。すまん。
>>953 必死になるな。そんなに珍しくないって事は、普通のSTGは当たり判定があるわけだからさ。
つか、俺はあたり判定があるほうが普通だと思うぞ。まずは落ち着け。
まあ、5年間シューティング作ってきた俺の結論は「どうでもいい」だな。
3年前ならちょっと熱くなって持論を展開したかも知れんが
シューティングごとき、どういう設計で作っても何とでもなるのに気づいてどうでもよくなった。
ところで、エクステンドまだ〜?
俺がそういうSTGばっかりやってて実際のところ良く分からんから
そんなに珍しくないと書いたんだが、都合の良い解釈ばかりする奴がいるようだ。
>>956 実際のところ良く分からんなら書くなと小一j(ry
まぁお互い落ち着こう、な?
■まとめ
▼リストわけないよ派の主張
多態が生かせる
仕様変更に強い
▼リストわけるよ派の主張
判定回数が少ない
■漏れの疑問
・リストわけたらなぜ多態が生かせないことになるの?
・リストわけない場合は当たり判定がオブジェクト数の2乗に比例しますが解決策は?
・リストわけると、事あるごとにリストを宣言してループ書いてって面倒じゃね?
・継承したオブジェクトをリストで管理して多態させるって最近のオブジェクト指向の考え方に反するよね。 移譲じゃダメなの?
おまいらの愛するやね本2にも少し記述あるよ・・・・
■今やるべきこと
次スレを立てる
他人がどう作ろうと良いじゃねーか。
960 :
227:05/01/08 17:23:27 ID:ICmtvtLq
基本的にはわけない派かなあ?
俺も理由は、仕様変更に強い。というところ。
ぶっちゃけ、STG以外でも使う予定だったし。
共通処理を複数に分けると、歯抜けバグが出来そうで怖いし。
ゲーム仕様上分けた方が良い場合は、1つ上の具現化された層で、
リストわけて管理する判定クラスとか用意する。じゃ駄目?
1回総ナメすればわけてないクラスから欲しいもの抽出出来るわけだし。
リスト1本にするのは、ソースの見た目上の整合性とか、そんなのが主な理由でしょ。
多態を生かせるだとか、仕様変更に強いだとか、ソースを書く側の都合。
パフォーマンス視点から言ったらリストN本にしたほうが良いのは当たり前の話。
だけどループをまわすのがめんどくさいとかも、ソースを書く側の都合。
ならば、内部はリストN本なのに、多態を生かせて、仕様変更に強く、ループをまわすのが楽なリストを作る、
ってのが考え方としては筋ではないかと俺は思うんだがな。
class LayeredList {}; でも作ればリスト1本にしたがる人はご希望のリスト1本が完成しますが。
964 :
919:05/01/08 19:05:18 ID:hjzep1WS
>>955 んなこたーない、と釣られてみる
て言うかお前、作ったことないだろw
>>958 オレの場合はリストに分ける&分けな派両方だな。
というよりも、リストの追加、削除、内容変更等を監視するリスト監視クラスとそのインターフェースリスナ、
そしてリストの内容を種類別に分け、それを保持するクラス、この3つをインプリメントしとけばOK。
つまりすべてのタスクを収納したリストと、タスクを種類別に分けたリスト、両方持たせる。
種類別に分けたリストのほうは、本体の追加、削除のイベントに連動する。あくまで参照レベルだがな。
スマンあげてしまった・・・
「他人がどう作ろうと良いじゃねーか。」
みたいなつまんねぇし醒めるだけの発言は止めろボケ
まだまだ熱鉄板の上でダンス踊ってくれないと楽しめないだろうが
967 :
964:05/01/08 19:13:52 ID:hjzep1WS
>>964 だから、全体をまとめたリスト、目的別に分けたリストに「分ける」わけなんだよ。
オレの作ったやつもありとあらゆるものが1つのツリーになってるが、目的に応じていろいろ分けてる。
敵弾を管理するタスクの中に敵弾のリストが入ってるしな。
当たり判定なんだが、当たり判定管理のリストを種類ごとに1つ作って、リスト対リストで比較して
処理ルーチンをコールバックにしてる。 種類が増えたらリスト増やすし、敵と敵を比較したくなったら
同じリスト同士を比較処理に投げて、当たった場合の処理を新規に書き起こしてコールバックに登録。
(当たり判定は自分同士を当たらないようにだけ細工してある。)
8ビットや16ビットCPUの時代から処理作ってたら1つで全部管理するリストだけなんてやって使えネーで
終了する話だったがなぁ。
「多様性」がまったく理解できないや。
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < 多態性のメリットマダ〜?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| .温州みかん. |/
リスナリスナいってないでdelegate使えば?
javaの他にC#も使えるんでしょ?(プ
多態性のメリット
なんでもかんでもごっちゃに一つのコンテナにつっこめるやーカコ(・∀・)イイ!
中に入ってる各型ごとにswitch文で分けてダウンキャストして処理を書き分ければ
いつもどおりの俺のプログラムになった!わかりやすい!(・∀・)
汎用性があるように作ると、生産性はあがるけど、
たった1つの例外の存在により、クラスの構成に変更が入るという
矛盾した条件が発生するんだよなー。
徹底的な仮想化はあんまりお勧めできない。
それを防ぐためのデザインパターンだろうに
>>969 自動車免許のやつと原付免許のやつが戦車に乗り込みバトルしたら・・・
プログラムはてきとうにつくればいいよ
リソースが全てだ
ダウンキャスト(・A・)イクナイ!
>>975 うまいリソースづくりの技法か…割と切に欲しいな
プログラムにかける労力を最小限にしそのぶんリソースに注力するというのは大前提として、
そこから先
いいレベルエディタをこれまた最小限の労力で作れってのも前提か
>966
つまり959が焼き土下座のAAを張れば万事解決ってことだな。
979 :
959:05/01/09 02:06:09 ID:7iEvUstc
ジュー
○| ̄|_
~~~~~~~~~~~~~~~~
980 :
964:05/01/09 02:20:28 ID:tsluRhoF
オレはC++は全然詳しくないんだが君のOOPインベーダのリスト見させてもらった。
既に外出だが、ミサイルとタンクのクラス構成がダメダメだなw
キャラクタークラスという抽象クラスを作り、自機、自機弾、敵、敵弾、爆風、防壁、すべてそれから派生させるべき。
おれなら、スコア(イメージフォントの場合)もタイトルロゴも背景もそうするけどな。
あと、キー入力はキー監視クラス作れ。そしてキー入力に反応する自機とシステムキャラクタの二つだけが
キー情報の通報を受けるように要求する。このとき、キー監視クラスから送られて来たキー情報は第三者へ
渡さないようにする。キー情報がほしいクラスは、個々にキー監視クラスに要求すること。
これはキー監視クラスに限ったことではない。
システムキャラクタって言うのはシステム側に属するキャラクタであり、ゲームの開始・終了を管理するもの。
タスク内に常に存在し、彼がESCキーを受け取ればゲームは終了する。
監視監視ってうるさいかもしれんが、イベントドリブンはOOPにおいてベストオブベストなんだよ。
VSYNC監視やタイマ監視ぐらい使ったことあるだろ?
981 :
964:05/01/09 02:22:12 ID:tsluRhoF
スマン、こっちは無視してくれ
解説君乙
ドリブンのイベントは、上から金ダライが落ちてきたり、カラスが鳴いたり
ミイラに観客が「うしろうしろー!」と叫んだりします。
2点
当たり判定でもめた形跡があるが
ザナックってどうやってたんだろう。
もめた内容がシューティングゲーム製作以前の話というのが・・・。
いやまあ、一応重要な部分ではあるんだけどね。
ここでいってる「シューティング」は、落ちモノ系と並んで、初心者向けだからな
基本のお勉強スレになってるな
誰でも一回はぶち当たる壁なんだから、いいんじゃない?
近頃の初心者はシューティングからではなく・・・・MMORPGから作りたがる・・・・間違いない
とすると、初心者はいきなり挫折を味わうことになるのか・・・。
敵の配置とかアルゴリズムをちゃんと作ることを考えると
シューティング制作がとても初心者向けとは思えんけどね。
弾を撃ちながら降りてくる敵を自機が撃つ、という程度までを
完成目標とするなら、ジャンプアクションとかで同クオリティの
ものでも制作難度は変わらん気がする。
とりあえず形になるのが早いっていう点が、STG作成のいいところだと思う。
画像の表示、動きの基礎、他オブジェクトの生成といった基本を身につけるのも容易なんじゃないかな。
ジャンプアクションは床や壁との衝突判定が一番面倒なところじゃなかろうか。
まあ一番楽なのは、最初はRPGツクール等を使って何か作ってみることだとは思うけど。
俺もプログラミング始めるまではデザエモンやClick&Playやってたし。(懐かすぃ)
シューティングは概念が簡単だから、プログラミング初心者には
とっつきがいいでしょう
994 :
988:05/01/09 14:50:52 ID:Xm1HCRTl
>>991 もう散々言われてしまって言うことがないが、とりあえず書いておくと、
ジャンプアクションは初心者には無理すぎ。
シューティングは適当に動いて適当に当たり判定ついてれば、なぜか遊べてしまうが
そうはいかないからな。
俺はコンソールから入ったから、
シューティングの前に壁マリオなるものを作ったけどなぁ
すまん
>>988 まあとにかく、自分の地形とのあたり判定、敵にも重力が適用され、ワールド座標で動く管理
こんなのが絡み合うからジャンプアクションは数段レベルが上よん
あーそうか。
まあスクロールする必要はないんだが、最低必要な要素のレベルは高いかもなあ。
とりあえず1000get
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。