Здравствуйте, я новичок в создании 3D-игр, и теперь мне интересно, как я могу заставить этот код хранить больше коллизий.Я пробовал делать более одного класса столкновений, и это не сработало.Таким образом, этот код находится в операторе if, чтобы проверить, является ли это гранью, и является ли она гранью, а coll - это истина (coll - это истина, если он находит материал с именем collision), тогда этот код выполняется.
if(coll==true && collplane!=NULL)
{
sscanf(coord[i]->c_str(),"f %d//%d %d//%d %d//%d %d//%d",&a,&b,&c,&b,&d,&b,&e,&b);
collplane->push_back(cPlane(normals[b-1]->x, normals[b-1]->y, normals[b-1]->z,
vertex[e-1]->x, vertex[e-1]->y, vertex[e-1]->z,
vertex[d-1]->x, vertex[d-1]->y, vertex[d-1]->z,
vertex[c-1]->x, vertex[c-1]->y, vertex[c-1]->z,
vertex[a-1]->x, vertex[a-1]->y, vertex[a-1]->z ));
std::cout << "getting collisionplanes..." << std::endl;
}
и затем это.
cPlane::cPlane(float n1,float n2,float n3,
float a, float b, float c,
float d, float e, float f,
float g, float h, float i,
float j, float k, float l)
{
normal.change(n1, n2, n3);
p[0].change(a, b, c);
std::cout << p[0] << std::endl;
p[1].change(d, e, f);
p[2].change(g, h, i);
p[3].change(j, k, l);
}
примечание: если вам интересно что-нибудь, пожалуйста, спросите.
примечание: я готов изменить этот код, если это поможет, спасибо.