ページ 11

描画フェーズと計算フェーズ

Posted: 2012年11月30日(金) 13:16
by 海Sea
いつもありがとうございます!

現在、ゲームの根幹となる設計を行っています。
その上で、プログラミングするとき
計算フェーズと描画フェーズを分けて考えるのが基本
だとはよく聞きます。
その分けて考えるというところで、

コード:


class Player
{
  //HPやMPなどの数値処理
}

class GraphPlayer
{
   //キャラ画像の処理
}
---------------------
class Maingame
{
   //PlayerとGraphPlayerなど
 //各クラスなどの処理を扱う
}
という風に認識してるのですが、
このような認識であってるでしょうか?
色々細かいことは多々あると思いますが
もしこうしたほうが良いということがあれば、
アドバイス等頂ければ幸いです。
よろしくお願い致します。

Re: 描画フェーズと計算フェーズ

Posted: 2012年11月30日(金) 13:51
by nil
PlayerとGraphPlayerを分ける必要性はないと思います。

PlayerクラスとGraphPlayerクラスは同じデータ(座標等)を用いて処理を行うので、
双方をPlayerクラスに統合し、
PlayerクラスにUpdate関数とDraw関数をもたせるのが一般的だと思います。

Re: 描画フェーズと計算フェーズ

Posted: 2012年11月30日(金) 18:42
by Dixq (管理人)
updateとdrawに分けるのはクラスの中の話です。
それを別クラスにする必要はありません。
従って以下のようになるかと思います。

コード:

class Player : public キャラクタ基底クラス {
public:
	void update();
	void draw();
};

Re: 描画フェーズと計算フェーズ

Posted: 2012年12月01日(土) 14:09
by 海Sea
涼雅 さんが書きました:PlayerとGraphPlayerを分ける必要性はないと思います。

PlayerクラスとGraphPlayerクラスは同じデータ(座標等)を用いて処理を行うので、
双方をPlayerクラスに統合し、
PlayerクラスにUpdate関数とDraw関数をもたせるのが一般的だと思います。
クラスの中で二つの関数を用意する
ということなんですね。
どうも描画が更新されたときと、
実際の描画する部分を混濁してたみたいです。
ありがとうございます!

Re: 描画フェーズと計算フェーズ

Posted: 2012年12月01日(土) 14:11
by 海Sea
Dixq (管理人) さんが書きました:updateとdrawに分けるのはクラスの中の話です。
それを別クラスにする必要はありません。
従って以下のようになるかと思います。

コード:

class Player : public キャラクタ基底クラス {
public:
	void update();
	void draw();
};
自分のやり方は
ちょっと奇怪かもと思ってたので、
凄く納得できました。
ありがとうございます!