首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LWJGL 2摄像头根据鼠标移动

LWJGL 2摄像头根据鼠标移动
EN

Stack Overflow用户
提问于 2019-02-27 20:02:46
回答 1查看 173关注 0票数 0

你好,我是OpenGl和lwjgl的新手。我已经开发了一段时间的游戏,我遇到了一个问题。我使用mouse.getdx和dy来旋转,但很明显,当我按下wasd (默认的movemnt键)时,它们不会根据方向改变。我试过一些例子,但都不起作用。下面是代码:https://pastebin.com/UXHGGh5nCode你有什么想法来解决这个问题吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-28 01:40:47

只需将所需的更改存储在Vector中,然后将其与相机矩阵的逆数相乘,并将结果添加到您的位置。例如,您的方法move可能如下所示:

代码语言:javascript
运行
复制
public void move() {
    Vector3f movement = new Vector3f(0,0,0);
    float x = Mouse.getX();

    if(Keyboard.isKeyDown(Keyboard.KEY_W))
        movement.z-=0.02f;
    if(Keyboard.isKeyDown(Keyboard.KEY_D))
        movement.x+=0.02f;
    if(Keyboard.isKeyDown(Keyboard.KEY_A))
        movement.x-=0.02f;
    if(Keyboard.isKeyDown(Keyboard.KEY_S))
        movement.z+=0.02f; 

    movement = yourCameraMatrix.inverse().multiply(movement);
    position.add(movement);
}

我不确定lwjgl是否有自己的方法来乘以矩阵和向量,所以您可能必须自己编写这些方法。除此之外,这应该是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54905063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档