我是C ++的一个完整的初学者,我有一项工作要做,请问我需要一点帮助吗?
因此,我的项目包括使用GLM以3D形式创建弹跳球,粒子爆炸和人步行。我必须使用重力和所有这些东西,但是我不知道如何实现它。 这是我弹跳球的代码:
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
当我执行时,该功能正在起作用(球在移动,但并没有停止) 这样就意味着球永远不会回来(不会反弹) 这是我的粒子爆炸:
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));
}
}
我在互联网上找到了此代码,但是它不起作用,我也不明白为什么。
如果你们能帮助我,我将非常感谢。 非常感谢!
答案 0 :(得分:0)
我想我记得刚开始时就做过类似的事情。使用提供的代码,我会说您可能需要添加一个值为-1或1的方向属性,以帮助确定球需要朝哪个方向运动。我认为这就是这段代码要尝试的工作,但是我会对您的if语句进行一些修改。根据您希望球先走的方向,然后修改终点。
>>> d = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
>>> df = pd.DataFrame(data = d)
col1 col2
0 1 4
1 2 5
2 3 6