一般的なゾンビゲームのデータ指向のデザインの良い説明が見つからないようです(これは単なる例であり、かなり一般的な例です)。
ジェネリックゾンビクラスの作成に関するデータ指向デザインの例を挙げていただけませんか?以下は良いですか?
ゾンビリストクラス:
class ZombieList {
GLuint vbo; // generic zombie vertex model
std::vector<color>; // object default color
std::vector<texture>; // objects textures
std::vector<vector3D>; // objects positions
public:
unsigned int create(); // return object id
void move(unsigned int objId, vector3D offset);
void rotate(unsigned int objId, float angle);
void setColor(unsigned int objId, color c);
void setPosition(unsigned int objId, color c);
void setTexture(unsigned int, unsigned int);
...
void update(Player*); // move towards player, attack if near
}
例:
Player p;
Zombielist zl;
unsigned int first = zl.create();
zl.setPosition(first, vector3D(50, 50));
zl.setTexture(first, texture("zombie1.png"));
...
while (running) { // main loop
...
zl.update(&p);
zl.draw(); // draw every zombie
}
またはからのすべてのアクションが含まれ、一般的な世界のコンテナの作成うbite(zombieId, playerId)
とmoveTo(playerId, vector)
するcreatePlayer()
までshoot(playerId, vector)
にしますface(radians)/face(vector)
。含まれています:
std::vector<zombie>
std::vector<player>
...
std::vector<mapchunk>
...
std::vector<vbobufferid> player_run_animation;
...
良い例ですか?
DODでゲームを整理する適切な方法は何ですか?