Java 3D游戏鼠标相机/播放器控件

时间:2016-12-14 01:38:15

标签: java 3d lwjgl game-physics

在我的游戏中,我想实现控制相机和播放器移动的鼠标控制。

我想要的是,当鼠标移动到窗口的左下角时,例如,玩家旋转朝向此向量。 此外,我希望相机在相反的2d Vector中移动,这样看起来当光标位于左下角时,播放器移动到右上角。

Like This

光标移离屏幕中间越多,播放器应旋转得越多。 相机也应围绕播放器旋转,以使播放器模型看起来朝向自身旋转的矢量旋转。

这是计算相机位置的功能:

private void calculateCameraPosition(float horizDistance, float verticDistance)
{

    float theta = player.getRotY() + angleAroundPlayer;
    float offsetX = (float)((horizDistance ) * Math.sin(Math.toRadians(theta)) );
    float offsetZ = (float)(horizDistance * Math.cos(Math.toRadians(theta)));

    position.y = player.getPosition().y + verticDistance + 8;
    position.x = (player.getPosition().x - offsetX);
    position.z = player.getPosition().z - offsetZ ;
    this.yaw = 180 - (player.getRotY() + angleAroundPlayer);        
}

我从GFLW获取输入,稍微修改为鼠标位置,我从宽度/ 2中减去并分成较小的数字。

angleChange_x = (int) (-(inputHandler.Mouse_x - (Width/2)) /20);

angleChange_y = (int) (-(inputHandler.Mouse_y - (Height/2)) /20 );

0 个答案:

没有答案