我有玩家x,y,z,方向值。现在我想在玩家面向的方向上翻译另一个模型,但我不知道该怎么做。
这是我到目前为止的代码:
glPushMatrix();
glTranslatef(proj.getCoordx(), proj.getCoordy(), proj.getCoordz());
glRotatef(90, 0, 1, 0);
glRotatef(GRAUS(GRAUS(proj.getDir()), 0, 1, 0);
glScalef(SCALE_BATMAN + 0.005, SCALE_BATMAN + 0.005, SCALE_BATMAN + 0.005);
mdlviewer_display(obsModel[JANELA_NAVIGATE][6]);
glPopMatrix();
proj.setCoordx(proj.getCoordx() + 0.1*cos(proj.getDir()));
proj.setCoordz(proj.getCoordz() + 0.1*cos(proj.getDir()));
proj是射弹物体。 答案 0 :(得分:0)
您的模型可能正面向Y轴(或Z轴)。因此,指定单位矢量(0,1,0)并将相同的变换应用于应用于模型的矢量。现在将射弹向下发送变换后的矢量。
查看您的代码可能只是一个简单的拼写错误:
proj.setCoordx(proj.getCoordx() - 0.1*sin(proj.getDir()));
proj.setCoordz(proj.getCoordz() + 0.1*cos(proj.getDir()));