// 添加一个盒子 void GameGrid::AddBox(const Point3& pos) { // 格子被占据,不添加 if (!m_World[pos.x][pos.y][pos.z].obj) { Vector3f p((float)pos.x - 0.5f - WORLD_SIZE / 2 + 1, (float)pos.y + 0.5f, (float)pos.z - 0.5f - WORLD_SIZE / 2 + 1); WorldGrid* grid = &m_World[pos.x][pos.y][pos.z]; //grid->pos = pos; MeshObject* obj = FACTORY_CREATE(m_Scene, MeshObject); obj->SetMesh(m_MeshBox); obj->SetPosition(p); obj->SetMaterial(m_BoxMaterial, 0); //obj->CreateLightableObject(); grid->obj = obj; } }