C 的问题(弹跳球和粒子爆炸)
Problem in C++ (bouncing ball and particle explosion)
我是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或1,以帮助确定球需要哪个方向。我认为这就是该代码正在尝试做的事情,但我会对您的IF语句进行一些修改。取决于您希望球的方向,然后修改末端。
if (t >= 0.5) {
d = -1;
}
else if (t <= 0){
d = 1;
}
t += 0.01f * d; // increment movement variable
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- C 的问题(弹跳球和粒子爆炸)