Я начинающий с C ++, и у меня есть задание, могу ли я попросить немного помощи?
Итак, мой проект состоит в создании прыгающего шара, взрыва частиц и людейходьба, все в 3D с использованием GLM.Я должен использовать гравитацию и все такое, но я не понимаю, как это реализовать.Вот мой код для прыгающего мяча:
glm::mat4 mv_matrix_sphere =
glm::translate(glm::vec3(-2.0f, 0.5f + t, 0.0f)) *
glm::rotate(-t, glm::vec3(0.0f, 1.0f, 0.0f)) *
glm::rotate(-t, glm::vec3(1.0f, 0.0f, 0.0f)) *
glm::mat4(1.0f);
mySphere.mv_matrix = myGraphics.viewMatrix * mv_matrix_sphere;
mySphere.proj_matrix = myGraphics.proj_matrix;
if (t == 0.5) {
while (t != 0) {
t -= f; // increment movement variable
}
}
t += 0.01f; // increment movement variable
Когда я выполняю, функция работает (шар движется, но не останавливается), так что это означает, что мяч никогда не вернется (неt bounce) И вот мой взрыв частиц:
void particles() {
vel = new glm::vec3[numParticles];
for (int i = 0; i < numParticles; i++) {
vel[i] = glm::normalize(glm::vec3((rand() % 1500 - 750) / 10000.0f, (rand() % 1500 - 750) / 10000.0f, (rand() % 1500 - 750) / 10000.0f));
}
}
Я нашел этот код в интернете, но он не работает, и я не понимаю, почему.
Я был бы очень признателен, если бывы, ребята, можете мне помочь.Большое спасибо!