キャラクタータスクに描画属性を持たせた設計
前回のタスクの派生設計の説明に、「キャラクター」クラスというものがありましたが、これは画面で動きまわる「登場人物(キャラクター)の基底クラス」として考えることができます。
登場人物は画面で描画されて初めて意味があるものとなり、これが実現されると可視的に「登場」することができます。
この考えを設計に用いると、キャラクタークラスから派生されたクラスは「描画されるべき対象となるもの」という設計にすることができます。
そして、このクラスから派生した、"自機"や"敵"はその性質を受け継ぐことになるので、「画面に描画される(登場する)」ことになります。
一方「ステージ管理」クラスのような、画面に表示されなくても良い「裏方」の場合は、キャラクターから派生せずに設計することで描画が行われることが無いものと考えることができます。
(舞台などで考える「裏方」のようなものです)
このように、まずは画面に表示される/されないという属性を派生により実現し、表示する(描画される)側は、これら描画に必要な情報を持つといったことを設計します。
次に描画される側として何の情報を持って描画すべきかという設計になるのですが、これはゲームの内容や表現方法により決定され、おおよそ以下のようなものに分かれると思います。
【2Dゲームの開発の場合の情報】
・ビットマップ(これは1枚~n枚)
・アニメーション情報(現在何枚目を示しているか等)
【3Dゲームの開発の場合の情報】
・モデルデータ(これは単純な物の場合は1つ)
・アニメーション(モーション)情報
【共通で必要であろう情報】
・描画する大きさ(どの程度の大きさで描画するか)
・中心座標(このキャラクターが存在する位置)
・ヒットする領域(描画している表現とは別に、どの程度の大きさで当たるか)
・表示の可否(表示したくない場合などに使用)
これらの情報がキャラクタークラスに存在し、派生したクラスはもれなくこの情報が継承されることになります。
そして派生したクラスはこれら情報をリアルタイムに演算し、座標の位置などを変化させて、まるで生きているように動かします。
これらの情報を描画するのは、今後説明する描画処理にて行われ、キャラクタークラスから派生したタスクは、目に映らない中の情報を変化させることのみを行います。
(タスク処理と描画処理との分業となります)

登場人物は画面で描画されて初めて意味があるものとなり、これが実現されると可視的に「登場」することができます。
この考えを設計に用いると、キャラクタークラスから派生されたクラスは「描画されるべき対象となるもの」という設計にすることができます。
そして、このクラスから派生した、"自機"や"敵"はその性質を受け継ぐことになるので、「画面に描画される(登場する)」ことになります。
一方「ステージ管理」クラスのような、画面に表示されなくても良い「裏方」の場合は、キャラクターから派生せずに設計することで描画が行われることが無いものと考えることができます。
(舞台などで考える「裏方」のようなものです)
このように、まずは画面に表示される/されないという属性を派生により実現し、表示する(描画される)側は、これら描画に必要な情報を持つといったことを設計します。
次に描画される側として何の情報を持って描画すべきかという設計になるのですが、これはゲームの内容や表現方法により決定され、おおよそ以下のようなものに分かれると思います。
【2Dゲームの開発の場合の情報】
・ビットマップ(これは1枚~n枚)
・アニメーション情報(現在何枚目を示しているか等)
【3Dゲームの開発の場合の情報】
・モデルデータ(これは単純な物の場合は1つ)
・アニメーション(モーション)情報
【共通で必要であろう情報】
・描画する大きさ(どの程度の大きさで描画するか)
・中心座標(このキャラクターが存在する位置)
・ヒットする領域(描画している表現とは別に、どの程度の大きさで当たるか)
・表示の可否(表示したくない場合などに使用)
これらの情報がキャラクタークラスに存在し、派生したクラスはもれなくこの情報が継承されることになります。
そして派生したクラスはこれら情報をリアルタイムに演算し、座標の位置などを変化させて、まるで生きているように動かします。
これらの情報を描画するのは、今後説明する描画処理にて行われ、キャラクタークラスから派生したタスクは、目に映らない中の情報を変化させることのみを行います。
(タスク処理と描画処理との分業となります)

コメント
コメントの投稿
« Sample Action Gameの紹介 [ステージ3] l Home l 昔のゲームの想い出 [0007] 「ペンゴ」 [セガ] [1982] [アーケード] »