Non riesco a trovare una bella spiegazione del Design orientato ai dati per un gioco di zombi generico (è solo un esempio, un esempio abbastanza comune).
Potresti fare un esempio del Design orientato ai dati sulla creazione di una classe di zombi generica? È il seguente buono?
Classe dell'elenco di zombi:
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
}
Esempio:
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
}
O sarebbe la creazione di un contenitore mondiale generico che contiene ogni azione da bite(zombieId, playerId)
a moveTo(playerId, vector)
a createPlayer()
a shoot(playerId, vector)
a face(radians)/face(vector)
; e contiene:
std::vector<zombie>
std::vector<player>
...
std::vector<mapchunk>
...
std::vector<vbobufferid> player_run_animation;
...
essere un buon esempio?
Qual è il modo corretto di organizzare un gioco con DOD?