[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/09 16:55 / Filesize : 214 KB / Number-of Response : 689
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

シューティングゲーム製作技術総合 17機目



1 名前:名前は開発中のものです。 mailto:sage [2008/11/27(木) 10:18:19 ID:bBI1A+d5]
ゲームプログラマなら誰もが通る、もしくは、通った道。青春の香り?
それは「シューティングゲーム製作」・・・。

このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!

ただし、シューティングの未来とか既存のゲームの話題などは、関連する他の
スレでやってくれ。

過去スレ,関連スレは >>2-3で。

442 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 18:17:36 ID:lY36xohs]
2次元の外積ってなんだったんだ?

443 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 18:29:39 ID:kXQL8zXx]
>>602
どうせ応用利かないし 動くものをうpしないし 口だけだし
ただの駄スレ

444 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 18:38:02 ID:YGcqHfCc]
うpしたのは去年9月が最後だったかな…

445 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 21:05:48 ID:kXQL8zXx]
www.youtube.com/watch?v=HTMQIBypM1E

446 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 22:15:05 ID:EHouFaTB]
またキチガイが沸いてるな

447 名前:名前は開発中のものです。 [2009/03/05(木) 00:48:55 ID:d60hqFFF]
DirectXを直に叩いて2DSTG作ってる人に質問。
2DSTGだと長方形描画がメインになることが多いけど、頂点バッファって使ってる?
四角を書くだけならDrawPrimitiveUPでもそんなにデータ転送発生しないし、
そんなにデメリットないのかなぁと。

448 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 01:45:31 ID:YZiaSlgc]
>>605
お前は外積を何だと思ってるんだ?

449 名前:583 mailto:sage [2009/03/05(木) 02:17:45 ID:IWxpnIkp]
>>582
中学校でならった公式が役にたてる日がくるなんてなー
とか思いながら書き込んだんだ。直線の傾きを求める方法の方が
良いからとかいう思いはなかった。余計な一言だったらごめん。
回転前の座標に変換してから判定する方法で動いているのだから
そのやり方で良いとおもいます。

あと>>602
勉強しなくても良いと言うわけでなないけど、数学を頑張らなくても
ゲームを作れるライブラリがあって、それが目的に合ったものなら
使うべきじゃね?
プログラミングのコツは、いかに楽をするかだと思う。


450 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 02:29:16 ID:YZiaSlgc]
>>612
>>602が「ライブラリを使うな」と書いてあるようには見えないけど



451 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 02:46:28 ID:brqYBTxt]
軽く皮肉ってるようには取れるな

452 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 02:49:20 ID:YZiaSlgc]
皮肉られるのは当然だろwww

453 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 02:50:17 ID:w2SNAszt]
自嘲も含まれてる気がするな。
まぁいいじゃん。どうでも。

454 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 02:51:26 ID:YZiaSlgc]
でも三角関数くらいできてほしい

455 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 02:58:51 ID:sodOyuM3]
>>613
おちつけ、>>612に対するそのレスはちょっと暴投だぞ

456 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 03:01:36 ID:sodOyuM3]
レスが進んでタイミングずれてるしorz

457 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 03:01:38 ID:YZiaSlgc]
>>618
>ゲームを作れるライブラリがあって、それが目的に合ったものなら使うべきじゃね?
俺はこの発言を受けたまでだが。

458 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 03:04:47 ID:brqYBTxt]
>>620
だから皮肉ってると思うならその内容は何だと思ってるんだよ

459 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 03:09:59 ID:w2SNAszt]
>>620

602はいわば「さびしい世の中になっちゃったね」と言ってて
612はそれに「そんな捨てたもんじゃないですよ」と言ってて
話は噛み合ってるんだから、613のレスはズレてる。

460 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 03:14:35 ID:YZiaSlgc]
>612はそれに「そんな捨てたもんじゃないですよ」と言ってて
俺は「目的にあった便利なライブラリなら使うべきじゃない?」と言ってるように見えた。
前提から俺が間違ってたね。



461 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 03:18:43 ID:39/f14G9]
お前らシューティングの話以外だと急に盛り上がるのな
つまんねぇ言い合いしてねぇで技術的な話しろやアホども

462 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 09:20:01 ID:/7Ei5x6Q]
ゲームできちゃったらインストーラー作りたいじゃん?
あれってなんかライブラリかパッケージかなんかあんの?

463 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 09:29:07 ID:UZtmr8UQ]
フリーソフトでインストーラとか気持ち悪いよ・・・

464 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 09:35:47 ID:if7dF5u6]
>>625 Inno Setupとか。

465 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 13:28:50 ID:ibiz+wEo]
フリーとか体験版でインストーラー使わないと始められないものは
DLしてもゴミ箱行きだ

466 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 14:54:12 ID:1d/NzH52]
>>624
わかったよ。

Moveってひとくくりにしてるけど実際の所、関数をさらに細分化すると管理しやすいと思わん?
座標移動、オブジェクト(弾)の生成、消滅判定、衝突判定とか。

1、とりあえず全員動かす。
2、弾やザコを追加する。
3、画面外の敵や弾を消す。
4、衝突判定する。

どうだろう




467 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 16:29:50 ID:39/f14G9]
>>629
むしろ移動とか(別の)オブジェクトの生成をどうやって集約してんだよ
普通に作ってりゃいくつかの関数に分かれるだろ

468 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 16:32:07 ID:rEiNGvky]
技術的な話したかったら話を広げる努力しろよwww
俺はしないけどwwww

469 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 16:53:26 ID:39/f14G9]
>>631
消えろよカスwwwwwwwwww

470 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 17:24:46 ID:1d/NzH52]
>>630
俺に聞くなよ。そこら辺のMove、Drawに分けるべき、で解説が終わってるサイトに聞けよ。



471 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 17:28:30 ID:39/f14G9]
>>633
おいおい、逆ギレか?ww
馬鹿め、自分の無能を呪えよアホww

472 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 17:50:45 ID:brqYBTxt]
>>629で何が言いたいのか意味分からん
Moveってひとくくり?何の話?
各オブジェクトにとりあえずMoveとDraw作ってそこに適当に関数作ったりしながら処理を書いてくんじゃないの?



473 名前:名前は開発中のものです。 [2009/03/05(木) 18:42:04 ID:1d/NzH52]
>>635
ん、そうだよな。ただ自分の場合
Move()、Fire()、Exists()、Touch(オブジェクト a,オブジェクト b)、Draw()で決まりきって今の所問題もないからふと疑問に思って。

474 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 18:49:42 ID:/7Ei5x6Q]
何が何だかワケワカメ

475 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 19:17:32 ID:brqYBTxt]
>>636
だからFire、Exist、Touch等はMove内の処理だろ?
各オブジェクトの移動と描画をMoveとDrawに分けてるんだから
細分化って何をどうしたいんだ?

476 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 19:20:00 ID:FsoDo+yK]
おちつけ

477 名前:名前は開発中のものです。 [2009/03/05(木) 19:57:43 ID:K8fBdWo9]
俺はこんなの。
各自オブジェクトがスクリプトで行動を切り替えてる。
自殺もするのでオブジェクトを管理して回してる奴が生き死にを確認したりもしてる。
 
//インタプリタなスクリプト。Objectから呼んでActionを主に更新する。
class Script{
  
};
 
//MoveとかFireとかの基底のインタフェース
class Action{
  bool update(void);//処理が終了していたらtrueを返すとかそんなの
};
 
//敵、自機、弾、その他の基底のインタフェース
class Object{
protected:
  Script scr;
  Action act;
public:
  void update(void);//この中でact.update()を処理したりScriptを呼んでactの切り替えをする。
  void draw(void);//描く
};
 
なんか面白い組み方があったら教えてほしい。
という技術の話題を振ってみる。

478 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 20:02:25 ID:1d/NzH52]
なぜか上げてた。特に意味はない。

>>638
なんだ、その。いや、ゲーム全体からみりゃそうなんだが。

if ポーズ中じゃないなら
{
forループ
オブジェクト配列[i].Move()
forループ
オブジェクト配列[i].Fire()
forループ
  forループ
   Touch(オブジェクト配列[i],オブジェクト配列[j])
}
forループ
  オブジェクト配列[i].Draw()

とかやんね?

479 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 20:12:12 ID:1d/NzH52]
>>640
今の所、難易度別の行動設定とか用意してないんで、オブジェクトの行動は敵の種類ごとにべた書きだなー。




480 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 20:19:46 ID:/7Ei5x6Q]
>>640
なんかJAVA JAVAっぽいね
それはおいといて
これの Object 派生させるの?



481 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 20:24:42 ID:g++EGVdD]
>>640>>641同じ人なの?

>>643
この作りでObjectを派生させたらナンセンスだと思う。
オブジェクト配列を派生するなら判る。

派生とかクラス設計の人は
>オブジェクト配列[i].Fire()
>Touch(オブジェクト配列[i],オブジェクト配列[j])
などをやらない
「オブジェクト配列に、Fireを行わないオブジェクトや、
Touchが不用なオブジェクトを入れられ無いっておかしくね?」

…と思うんじゃね?

482 名前:名前は開発中のものです。 [2009/03/05(木) 20:25:20 ID:K8fBdWo9]
>>643
ほとんどのクラスをスマートポインタラッパにしてjavaのようにC++で書いてる。
で、
class Bullet : public Object
class Enemy : public Bullet
とかしてる。
MyShipをどこから派生させると美しいかは毎回悩む。

483 名前:372 mailto:sage [2009/03/05(木) 20:27:09 ID:g++EGVdD]
>>645
3人目ゲット

484 名前:名前は開発中のものです。 [2009/03/05(木) 20:41:04 ID:K8fBdWo9]
>>646
?

485 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 20:45:15 ID:1d/NzH52]
>>644
んにゃ別。

>Objectを派生させたらナンセンスだと思う。
マジカー。Fire()で実装が空とかなんだが。実際Fireしてもほんとに撃つかどうかはオブジェクト依存だしいいかなーと思ってる。
ってかFire()という名前が問題か。

Touchのほうは実際は、自機リスト、敵機リスト、背景オブジェリスト、前景オブジェリスト、などから
2つ選んでハードコーディングする。だからまぁ自機_敵機、敵機_自機弾_自機_敵弾の3つぐらいTouchを利用したループがある。

自分で言っててあんまりきれいな実装じゃないかも。

486 名前:名前は開発中のものです。 [2009/03/05(木) 20:48:41 ID:JU51dqJC]
>>645
継承がis aの関係じゃない時点で美しくない

487 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 20:53:18 ID:g++EGVdD]
富豪的にはありなんだろうけど…。 今俺本当に日本語書けてる?
以下、俺の思い浮かべる評判の悪いクラス設計の例。 「is a」ぐらいは守ってる?
vector<Obj *> ObjArray;
class Obj
{
  virtual void Update()
  {
    Move();
  }
  virtual void Move(){/*実装*/}
};
class EnemyObj :Obj
{
  virtual void Fire(){/*実装*/}
  void Update()
  {
    Move();
    Fire();
  }
};
class EnemyA :EnemyObj
{void Fire(){/*ユニークな実装*/} void Move(){/*ユニークな実装*/}};
class Barrier :Obj
{
  bool IsTouch(Obj tgt){/*実装*/}
  void Update()
  {
    Move();
    foreach(vector<Obj *>,tgt,ObjArray)IsTouch(Obj tgt);//foreachの構文が今ググったら違った!?
  }
};

488 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 20:54:12 ID:/7Ei5x6Q]
>>645
class Enemy : public Bullet
だと Bullet 属性も継承することになるんだが・・・
Bulletクラスに破裂するという操作があると
Enemyにも引き継がれるが

それだったら Object に破裂操作を最初っから純仮想関数で宣言しておき
class Bullet : public Object;
class Enemy : public Object;
の方が自然じゃない?

とりあえず >> 372 のソースが見たいものだが
オブジェクト=メモリのかたまりと考えてるのか?

489 名前:名前は開発中のものです。 [2009/03/05(木) 20:55:41 ID:K8fBdWo9]
>>649
640のObjectは例えで、ScriptとかActionはもう少し上で持ってる。
updateだけを持ってるクラスがだいたいの基底。
で、Enemyは高級なBullet的な定義をするんだけど
(BulletもAbstractBulletみたいなのを作って細分化した方がいいとか悩む)
MyShipはどこがいいのかに悩んでる。
 
どうだろうか?


490 名前:名前は開発中のものです。 [2009/03/05(木) 21:04:28 ID:K8fBdWo9]
>>651
Bulletの破裂はEnemyの死。
Bulletだって弾を撃つことはある。
そんな感じでBulletに出来てEnemyに出来ないことがあまり考えつかないから class Enemy : public Bullet にしてる。
 
あと、EnemyAとかEnemyBってのは作ってなくて、全部スクリプトで決めてる。
 
Enemy img="res/enemy/zako1.bmp" x="100" y="100"
Move r="90" v="100"
Sleep sec="60"
 
みたいなの。



491 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 21:27:03 ID:/7Ei5x6Q]
>>650
それは Prototype パターンだね

492 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 21:39:01 ID:g++EGVdD]
ライフゲームの1セルを1オブジェクトにした実装はしない
と前書いた時通じたかと思った…

>>651
>とりあえず >> 372 のソースが見たいものだが
>オブジェクト=メモリのかたまりと考えてるのか?
DirectXの都合で、同じ描画のオブジェクトを集めたい

言語が痛いので、模擬コードです
class DrawAbleObj
{
  描画位置配列;
  void Draw(){/*SetStreamSource()1回に、SetMatrix()とDrawPrimitive()を配列要素数回 */}
  virtual update()
  add(座標)…など
}
class bullet :
class enemy :
class enemy_bullet :
/*初期化*/
DrawAbleObj配列.add(new bullet())
DrawAbleObj配列.add(new enemy())
DrawAbleObj配列.add(new enemy_bullet())
/*メインループ内のDraw*/
  foreach(型,i,DrawAbleObj配列)
    i.Draw();

>>652
MyShipに継承させたい物はあんまりないな
グローバルまで行かなくても、参照されて困らない所に在ればよくね?

493 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 21:39:53 ID:/7Ei5x6Q]
>>653
その構造だと Enemy インスタンスが消滅すると
Bullet インスタンスも消えてしまうけど
Bullet インスタンスを残しておきたい場合などの表現が不可能になる

Enemy *enemy = new Enemy
enemy->Fire(); // ここでbulletが複数作られる
enemy->End(); // 敵の消滅
delete enemey; // ここでbulletも全部消える

継承という概念が分かってない
どこかで不具合がでてくる
設計で悩んでる

494 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 21:45:45 ID:/7Ei5x6Q]
>>655
君は問題ない

495 名前:名前は開発中のものです。 [2009/03/05(木) 21:47:03 ID:K8fBdWo9]
>>656
Enemyが死んでもBulletは死なないように作ってる。
なんでBulletが消えるのか分からない。
EnemyのFireをBullet管理者が受け取ってBulletが生成されてるだけで、Enemyとの関連はない。

496 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 21:47:30 ID:sv4Dn5ZX]
一体何の話かわからない俺はベターC

497 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 21:53:28 ID:g++EGVdD]
>>654
いちお、生存期間中にCloneを作る事はないよ

自称Strategyのつもり、Update()に多態性を持たせたい
しかし、生存期間中にEnemyAがEnemyBにキャストされるような事はないので、自称

>>657
thx

498 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 21:59:43 ID:/7Ei5x6Q]
#include <stdio.h>

class Object
{
protected:
double x;
public:
virtual void Fire() = 0;
};

class Bullet : public Object
{
public:
virtual void Fire();
};

class Enemy : public Bullet
{
public:
virtual void Fire();
};

//----------------------
// 永遠に呼ばれない
void Bullet::Fire()
{
x = 2.0;
printf( "%f\n", x );
}
//----------------------


499 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 22:00:07 ID:/7Ei5x6Q]

void Enemy::Fire()
{
x = 1.0;
printf( "%f\n", x );
}

void main()
{
Object *obj = new Enemy;

obj->Fire();

delete obj;
}

となり無駄が生じる

500 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 22:03:17 ID:kKvbso12]
>656こんな事言う人に問題ないと言われても安心できないと思うんだが
というかID:/7Ei5x6Qがなにを言いたいのか分からない




501 名前:名前は開発中のものです。 [2009/03/05(木) 22:06:05 ID:K8fBdWo9]
>>661
BulletもEnemyもFireは持ってない。
BulletもEnemyも呼ばれるのはupdateとdrawだけ。
それぞれの行動はupdateの中でScriptが決めてActionに実体がある感じ。
 
class Fireはないけどあえて書くなら
class Fire : public Action
class Move : public Action
みたいになっている。

502 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 22:11:08 ID:/7Ei5x6Q]
>>664
すまんね ちと混合していた
Fire() はないようだね

君は Composite パターン

問題ない

ただ、複雑になるのはある程度予測しといた方がいい

503 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 22:15:21 ID:/7Ei5x6Q]
>>664
いや
class Enemy : public Bullet
ここが問題

それでいくなら Decorator パターン

class Decorator : public Object
class Bullet : public Decorator
class Enemy : public Decorator
class MyShip : public Decorator
ではどうかね?

504 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 22:21:16 ID:g++EGVdD]
>>663
>>656のミスリードには気付いてたけど、僕がいう事じゃ無いし

後はみんなの好き嫌いをアンケート程度の気分で聞いておく
>>661
ぐらいだったら、僕は許すな
アンチパターンも許すけど、

>Draw(){/*SetStreamSource()1回に、SetMatrix()とDrawPrimitive()を配列要素数回 */}
は譲れないな

505 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 22:23:48 ID:/7Ei5x6Q]
>>660
なるほど EnemyA, EnemyB に目がいっていた

君がしたいのは Iterator パターンでは?

506 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 22:50:23 ID:/7Ei5x6Q]
//----------------------
// 永遠に呼ばれない
void Bullet::Fire()
{
printf( "部長ぉぉぉぉぉぉぉ!!!\n" );
}
//----------------------
とかしてもいいかな

507 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 22:53:56 ID:/7Ei5x6Q]
//----------------------------------------------------------------------------
// 永遠に呼ばれない
void Bullet::Fire()
{
MessageBox( HWND_DESKTOP, "返事がないようだ ただの屍のようだ", "error?", MB_OK );
or
MessageBox( HWND_DESKTOP, "パターンが分からないようだ", "error?", MB_OK );

}
//----------------------------------------------------------------------------

508 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 23:03:09 ID:vElUtQql]
いまさらだけど、>>656
>Enemy インスタンスが消滅すると
>Bullet インスタンスも消えてしまう
な に を い っ て い る ん だ ?

継承を理解してないな。


それはそうと個人的には class Bullet : public Enemy なんだけどな。 弾は特殊な敵って意味合いで。

509 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 23:13:05 ID:/7Ei5x6Q]
>>671
ミスリードと言ってるだろ

反応ないから寝る

510 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 23:16:48 ID:/4jagLW1]
なんとなくメモリの動的確保をしたくない俺は
ずらずらとスパゲティ書いてるw



511 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 23:42:12 ID:1d/NzH52]
うむ。まだデザパタがまだ生成パターンしか読み終わってないうちにはちと辛いな、デザタパで説明が完結されるとorz
てかみんな柔軟だな。実際のコードを覗いてみたいぜ。・・・C++は多分読めないけど

512 名前:名前は開発中のものです。 [2009/03/06(金) 00:03:12 ID:Eu3rRFpD]
>>674
ID:/7Ei5x6Q の言ってることはあまり気にしない方がいいよ。

513 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 07:29:29 ID:xstPUn85]
>>675
ID変えてからの反応ではもう誰も信頼せんよ
そんなに否定するなら代案だせよ

ID:K8fBdWo9「だれか〜このソースどうにかしてくれませんか〜?」
ID:/7Ei5x6Q「こういうのはどうかね?」
ID:K8fBdWo9「・・・」

この船は先に進むんですか?

514 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 08:00:37 ID:UQFJ8zhz]
>>676 港につきません。

515 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 11:06:50 ID:HHW0AAKz]
どこをどう勘違いしたら>>656みたいな解釈になるんだ。

ていうか

>継承という概念が分かってない

ってのはID:/7Ei5x6Q 自身の話かな。
とりあえずC++のサイト回って勉強してみては?

516 名前:名前は開発中のものです。 [2009/03/06(金) 12:07:53 ID:Eu3rRFpD]
>>676
ID:K8fBdWo9が低レベルすぎて話にならない所をやんわり流してるんだろ。

517 名前:名前は開発中のものです。 [2009/03/06(金) 12:11:05 ID:Eu3rRFpD]
>>676
間違えた
ID:/7Ei5x6Qが低レベルすぎて話にならない所をやんわり流してるんだろ。

518 名前:/7Ei5x6Q mailto:sage [2009/03/06(金) 12:58:32 ID:xstPUn85]
そうなのかい?
君のはデコレータパターンとコンポジットパターンの組み合わせだよ
もしくはパターンに当てはめられるのが嫌だったのかな
ごめんよ・・・

519 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 13:07:51 ID:q2+zc1Kz]
クラス?継承?new?知らんがな(´・ω・`)

構造体最強ヒャァハァァァァー

520 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 13:36:30 ID:dVN9ZSyA]
よう、俺。



521 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 13:57:04 ID:C76RJ9rx]
>>682 その結論はオカシイ
 このパターン厨の書いてることは、パターンの名前で
ググる事ができる奴が見たら赤面もんのことばかりだぞ…

>>674の持ってる本がちょっと分厚過ぎるじゃないか?
GoFは、たった23個しか無くて判りやすい図が入ってる


…STG制作にはアンチパターン>>655が要る事もあるが、
発想の種子ぐらいにはなるんじゃない?

522 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 14:06:02 ID:q2+zc1Kz]
>>684
いや、俺はガチで会話についていけないだけだww
最近になってポインタの使い道がわかって喜んで関数作って動いてSUGEEEEEEEEってやってるレベルだ

独学マンセー

523 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 14:15:36 ID:wgorap74]
みんな いったい誰と戦っているんだ!?

524 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 15:03:36 ID:xstPUn85]
ブルマは脱いだらアカンがな(`・ω・´)

525 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 16:33:57 ID:QhFILLD4]
このスレでは、そんなシューティングゲームの製作技術や技術の検証、成功談
失敗談笑い話、難易度の設定方法論、多弾の是非などについて語り合いましょう。
もちろんBulletMLなどで弾幕を作成してみたり、自分の作ったシューティングを
晒してみたり、プロジェクトをはじめてみるなどもOK!


何でここ喧嘩と設計の話ばっかりなの?
実際に作ってる奴いるの?

526 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 17:41:36 ID:wgorap74]
これは自作自演でうpする前フリだな

527 名前:685 mailto:sage [2009/03/06(金) 18:57:39 ID:E7ymH2OK]
作ってるぜっ(・∀・)半年前に一度うpしてるぜ

528 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 19:33:21 ID:fB/frkhf]
頑張ってクラスとか継承とか使ってみるものの、こんがらがって死ぬ
設計がいかに大事かがセッ分かった気がする

529 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 19:49:27 ID:g/bnT2ZX]
俺はObject クラス作って基本、自機や敵、それらの弾、爆発、背景等はみんなObjectから派生させて作ってる
敵から出る弾は当たり判定チェックの関係上、壊せる弾は敵と同じ扱い(Enemy派生)、壊せん奴は別扱い
ただ、getxとか使うとイメージ的に負荷かかりそうで座標とかpublicにしてるためStructチックになってしまってるorz
以前は強引にfriend使ってたw
まあとりあえず完成させればいいよな、どこかは言わんが以前別スレにうpしてる

530 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 19:58:07 ID:CCKZ0ZvT]
>>692
特定した



531 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 20:04:30 ID:xstPUn85]
>>692
当たり判定は どこのクラスでやってる?

532 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 20:35:02 ID:t1RJlJqe]
作ってるぜ、劣化サイヴァリアみたいなの。ここのレスはレベルが高くて理解出来ないけど。

533 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 20:40:28 ID:C76RJ9rx]
この流れなら言える!!
ちょい前までゲーム制作ブログのオマケでSTGも挙げてたけど、全部消してバックれたぜw


…移転先や安否を気遣うメールは一通たりとも来なかったぜ… orz
きっと、色々内情を察してくれたんだ、多分、きっと多分

534 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 20:45:54 ID:g/bnT2ZX]
当たり判定はゲーム本体のクラスでやる予定(以前はグローバル関数でやってた)

535 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 21:37:07 ID:xstPUn85]
>>696
バックれたら 移転先もわからんだろうw

536 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 21:42:08 ID:ZZrBBfbz]
>>697
ミジンコがうじ虫になるくらいの進化じゃないか!

マジレスするならグローバル関数でやるのと大差ないぞ、それ。


537 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 21:50:00 ID:QYwcIkUm]
JAVAで作ってるのは俺くらいか……
つい最近調べてみたら、なんか東方遊夜雀なんてもんが開発されてたりするのね。
ハードル高いwwww

538 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 21:58:23 ID:g/bnT2ZX]
駄目なのか
他にも敵クラス辺りに当たり判定するメンバ関数作ることも考えてるけど
まあ呼び出すところは変わらんけど

539 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 22:02:00 ID:QYwcIkUm]
普通はbulletクラスかplayerクラスにisHit関数を付けるもんだろう。
だってそうしないと弾固有の当たり判定とかとれないじゃん。

540 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 22:23:03 ID:k/SdMtBY]
>>697
俺の場合、
class CollisionListener {
public:
  int getX();
  int getY();
  int getWidth();
  int getHeight();
  void touched(CollisionListener* obj) // objは衝突相手
};

class Player : public CollisionListener;
class Bullet : public CollisionListener;
class Enemy : public CollisionListener;

/* 衝突判定のカテゴリを分類する。(例:プレイヤなら敵、敵弾、地面と衝突。敵弾ならプレイヤ、地面と衝突) */
enum CollisionGroup { Player, PlayerBullet, Enemy, EnemyBullet, Ground };

/* 衝突検知を管理するクラス(ほんとは○○マネージャとかいう名前はダメなんだとかうんたらかんたら……) */
class CollisionManager {
public:
  void addListener( CollisionGroup type, CollisionListener* listener ); // リスナ(プレイヤ、敵とか)を登録する
  void removeListener( CollisionGroup type, CollisionListener* listener ); // 登録を抹消する
  void detect(); // 登録されたリスナの衝突を検知し、衝突したならリスナのtouchedメソッドを呼び出す
};




541 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 22:27:05 ID:C76RJ9rx]
ぶっちゃけ関連ページが全部消えててメアドだけ生きてるとは普通思わないもんな

>>701
これくらいなら「ダメ出し」があったとしても、クラス設計の善し悪しの話で、
>>702みたいなのをifで逃がすことになると、クラス設計が下手だと言われる。

 その関数の中に、switchやifが沢山含まれるなら、設計を変える事で
良くなる『可能性』があるし、将来の拡張でswitchやifを加えないで済む『可能性』もある


アドホックなswitchやifも許し… 
…今クラス設計の話をしてるんだから、参考にすべきだ(゚Д゚)ハッ!

542 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 22:51:03 ID:QYwcIkUm]
それはそうとおまえらに質問。
クラス名の相談なんだが、敵の弾クラスはbulletでいいと思うんだが、自分の発射した弾はなんて名前にするのがベスト?
bulletクラスを継承してないからplayerBulletって名前にするのも変だし……






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<214KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef