我有一个用WASD控制的相机,但是我一直在左右移动它。我一直在网上寻找,它说要找到一个垂直于另一个向量的向量,你改变x和y的圆,并将其中一个乘以-1。我在下面的代码中尝试过这个:
void camstrafe (String dir) {
Vector3 direction = camera.direction.nor();
Vector3 old = direction;
direction.set(-old.z, 0, old.x);
camera.translate(direction.scl(0.18f));
}
我一直在向前移动,工作得很好,实际上是在转动相机,但由于某些原因,这不起作用,老实说,我不确定它到底是做什么的,因为当我按下a
或d
(他们称之为该功能)时,相机会发疯,开始非常快速地转动,有时会向前移动,或者像100万英里以外。不管怎样,有人知道我该怎么做吗?顺便说一句,我还尝试了获取相机的前进方向,并使用。rotate()
函数将其向右/向左旋转90度,然后以这种方式进行平移,但效果相同。我在想,也许相机的工作原理与其他东西在横向/反向翻译时的工作原理不同。
首先,在您的类中,您必须有一个动画对象,让我们称之为Anim。在您的类实例化中,您必须创建一个OrthograicCamera
对象,这将是您的相机实例。您必须给它一个值,例如:
camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
这个摄像头
可以在您第一次使用它时设置,您可以使用方法进行设置。translate()
:
camera.translate(camera.viewportWidth / 2, camera.viewportHeight);
否则,位置将设置为0;0
在render()
方法中,必须使用camera
对象中名为update()
的方法,如下所示:
@Override
public void render(float delta) {
anim.load();
camera.update();
....
game();
....
}
此方法在您开发的游戏/应用程序中始终运行。因此,每次该方法运行时,摄像头
都会更新,其位置也会更新。
然后,在处理用户输入的game()
方法或其他方法(取决于您的架构)中,移动相机的位置,并修改相机。将
放入其中。比如贝娄:
public void game() {
if (Gdx.input.isKeyPressed(Input.Keys.LEFT)) { // or A
moveBack(anim); // The method to move back
camera.position.x -= 3; // if conditions are ok, move the camera back.
} else if (Gdx.input.isKeyPressed(Input.Keys.RIGHT)) { or D
moveForward(anim); // The method to move forward
camera.position.x += 3; // if conditions are ok, move the camera to the front.
}
当用户移动时,将调用移动方法,并修改相机位置。每次调用方法render()
时,相机将更新其新位置。
要存档两个矢量之间的摄像机移动,请使用摄像机lerp:
public class myclass {
[...]
private OrthographicCamera camera;
public Vector3 posCameraDesired;
[...]
private void processCameraMovement(){
/// make some camera movement
posCameraDesired.x+=100.0f * Gdx.graphics.getDeltaTime();
posCameraDesired.y+=100.0f * Gdx.graphics.getDeltaTime();
}
[...]
//render method
public void draw(){
[...]
processCameraMovement();
camera.position.lerp(posCameraDesired,0.1f);//vector of the camera desired position and smoothness of the movement
[...]
}
本文向大家介绍.net中实现listBox左右移动,包括了.net中实现listBox左右移动的使用技巧和注意事项,需要的朋友参考一下 今天用到listbox左右移动在网上找了一个,网友分享出来的,感觉不错,这里推荐给大家 以上所述就是本文的全部内容了,希望对大家熟练使用listbox能够有所帮助。
本文向大家介绍如何禁止移动端的左右划动手势?相关面试题,主要包含被问及如何禁止移动端的左右划动手势?时的应答技巧和注意事项,需要的朋友参考一下 参考文章
我在我的游戏中使用了基于网格的碰撞检测,除了一件事外,其他一切都在运行,当玩家在瓷砖上向左移动时,他从瓷砖中跌落。之所以会发生这种情况,是因为当向左然后向右移动时,网格点更新得更快,因为玩家的网格位置基于坐标移动。例如:如果玩家在100,他将不会更新,直到他达到150,单元格范围是100-150(单元格大小是50),但如果你向左移动,你将在99,其中包括在50-100单元格区域。这里有一张图片可以
我正在尝试做一个简单的游戏,在游戏中,当按钮被点击时,一条船从一个海岸驶向另一个海岸。我尝试使用jQuery,但它没有像预期的那样工作。 哈巴狗 萨斯 jQuery 问题是当船回到起始位置时,它会比原来的位置走得更远。 有谁能帮帮我吗? 代码笔链接
我在Java和Slick2D方面有几年的经验,我正试图将一个游戏移植到libgdx,因为它是一个更好的库。然而,我有一个简单的问题在屏幕上移动精灵。这个应用编程接口一定有一些我不理解的范例。我将我的代码提炼成以下内容。它识别输入,并在我的整个实体和网络系统中运行它,无论是在服务器上还是从服务器上,但是精灵保持在同一个位置。任何帮助都会很棒。 我的create()方法: getCurrentX/Y方
我正在尝试为我的RecolyerView添加滑动功能。我正在跟随这个链接添加刷卡。https://github.com/nikhilpanju/recyclerviewenhanced/blob/master/recyclerviewenhanced/src/main/java/com/nikhilpanju/recyclerviewenhanced/recyclertouchlistener.j