Java 如何移动2D游戏的相机?

Java 如何移动2D游戏的相机?,java,Java,我试着查阅一些教程,了解如何做到这一点,但我总是感到困惑,因为它们有很多代码没有很好地解释。我想知道什么东西都是这样。。让相机在玩家按下向右箭头按钮时移动的最简单方法是什么。通常,您必须了解模型空间、世界空间和视图空间之间的差异,并在这些单独的坐标系之间进行转换 创建一个名为Camera的类,该类具有x和y坐标,或者更好的是,一个Camera矩阵(投影矩阵和世界矩阵的组合) 创建表示游戏对象的实体类。它们应该有x和y坐标,也许还有一个角度——或者更好,一个世界矩阵 创建另一个名为SceneGra

我试着查阅一些教程,了解如何做到这一点,但我总是感到困惑,因为它们有很多代码没有很好地解释。我想知道什么东西都是这样。。让相机在玩家按下向右箭头按钮时移动的最简单方法是什么。

通常,您必须了解模型空间、世界空间和视图空间之间的差异,并在这些单独的坐标系之间进行转换

创建一个名为Camera的类,该类具有x和y坐标,或者更好的是,一个Camera矩阵(投影矩阵和世界矩阵的组合)

创建表示游戏对象的实体类。它们应该有x和y坐标,也许还有一个角度——或者更好,一个世界矩阵

创建另一个名为SceneGraph的类,它基本上是一个空间容器,允许您根据实体的坐标存储实体,并查询哪些实体位于某个边界矩形内

然后,渲染循环将如下所示:

  • 查询场景图以查找摄影机视图内的实体
  • 对于每个实体,将其世界坐标转换为视图空间(屏幕坐标)并进行渲染

这个问题太宽泛了。您还没有指定到目前为止您已经做了什么,您的游戏(引擎)是如何实现的,甚至您尝试过做什么。简单地移动一个相机意味着你修改它的
x
y
值,但确切的代码高度依赖于实现(例如:你的相机是如何实现的,你是如何渲染的)@UnholySheep好吧,我尽量使游戏简单,所以我没有渲染系统。我的代码相当混乱,因为我不是很有经验。我只想有一个缩放版本的水平,它会移动(显示更多的东西)在右侧。如果你没有一个渲染系统,那么你如何在屏幕上显示任何东西?同样,确切的代码取决于你的游戏是如何显示图形的。基本上你只需要听按键,然后根据按键修改相机的值(位置)。你没有渲染系统吗?那么你如何展示游戏呢?如果您是初学者,您应该研究基本的游戏引擎编程(使用java,例如LWJGL、OpenGL等),然后您将亲自了解游戏中的摄像头是如何工作的。@我将面板的布局设置为null,并使用setLocation(x,y)在游戏中放置东西