Saya sepertinya tidak bisa menemukan penjelasan yang bagus tentang Desain Berorientasi Data untuk permainan zombie generik (itu hanya contoh, contoh yang cukup umum).
Bisakah Anda membuat contoh Desain Berorientasi Data pada pembuatan kelas zombie generik? Apakah yang berikut ini baik?
Kelas daftar zombie:
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
}
Contoh:
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
}
Atau akan menciptakan wadah Dunia generik yang berisi setiap tindakan dari bite(zombieId, playerId)
ke moveTo(playerId, vector)
ke createPlayer()
ke shoot(playerId, vector)
ke face(radians)/face(vector)
; dan mengandung:
std::vector<zombie>
std::vector<player>
...
std::vector<mapchunk>
...
std::vector<vbobufferid> player_run_animation;
...
menjadi contoh yang baik?
Apa cara yang tepat untuk mengatur gim dengan DOD?