C ++中的问题(弹起球和粒子爆炸)

时间:2019-02-14 13:30:04

标签: c++ visual-studio video game-physics

我是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));
    }
}

我在互联网上找到了此代码,但是它不起作用,我也不明白为什么。

如果你们能帮助我,我将非常感谢。 非常感谢!

1 个答案:

答案 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