Android libgdx->;摄影机和视口

Android libgdx->;摄影机和视口,android,libgdx,Android,Libgdx,我已经制作了我的游戏,它使用Gdx.graphics.getWidth()方法相应地缩放到屏幕宽度的%,并且它在所有屏幕上都能完美地工作 现在我正在尝试学习视口,但似乎有更多的麻烦,比如什么时候需要协调世界坐标,或者什么时候需要实际的屏幕像素 我必须不断地转换这两种度量吗?似乎比我按照旧的方式缩放要麻烦得多 我可以使用整个屏幕,并手动使图片无拉伸,如果我使用FitViewport,我会喜欢黑板,游戏将完全不同 任何关于为什么要使用这些端口的明确建议,因为我似乎无法理解它们…问题是您不必做任何事情

我已经制作了我的游戏,它使用
Gdx.graphics.getWidth()
方法相应地缩放到屏幕宽度的%,并且它在所有屏幕上都能完美地工作

现在我正在尝试学习视口,但似乎有更多的麻烦,比如什么时候需要协调世界坐标,或者什么时候需要实际的屏幕像素

我必须不断地转换这两种度量吗?似乎比我按照旧的方式缩放要麻烦得多

我可以使用整个屏幕,并手动使图片无拉伸,如果我使用FitViewport,我会喜欢黑板,游戏将完全不同


任何关于为什么要使用这些端口的明确建议,因为我似乎无法理解它们…

问题是您不必做任何事情,尤其是进行任何转换

是一种处理应用程序在多种屏幕上呈现的工具(我指的是许多其他比率),您不必再担心它

唯一需要做的事情是“告诉”视口屏幕的大小,并通过更新视口来处理屏幕大小调整。然后,无论应用程序的实际外观如何,您都会将其视为800 x 600px

应用程序渲染的方式取决于将使用的视口实现。例如:

  • FitViewport将使您的屏幕适合设备并添加一些黑条
  • FillViewport将使您的屏幕适合设备并切断溢出部分
  • 等等

我看了看。此外,您还可以查看一些有关如何处理视口的信息。

问题是您不必做任何事情,尤其是进行任何转换

是一种处理应用程序在多种屏幕上呈现的工具(我指的是许多其他比率),您不必再担心它

唯一需要做的事情是“告诉”视口屏幕的大小,并通过更新视口来处理屏幕大小调整。然后,无论应用程序的实际外观如何,您都会将其视为800 x 600px

应用程序渲染的方式取决于将使用的视口实现。例如:

  • FitViewport将使您的屏幕适合设备并添加一些黑条
  • FillViewport将使您的屏幕适合设备并切断溢出部分
  • 等等

我看了看。此外,您还可以查看以获取有关如何处理视口的信息。

查看。无论您直接使用视口还是摄影机,世界坐标和屏幕坐标之间的转换量都是相同的。“视口”只是使处理各种纵横比变得更容易。如果我没有看到你所指的代码,就没有什么可说的了。好吧,如果我制作一个对象从天空坠落的游戏,如果我使用FitViewport,那么这些对象要么不会在屏幕顶部繁殖,要么不能从屏幕的最左端到最右端繁殖。所以对于我的游戏,我不可能使用视口,因为它看起来很难看,所以我使用了%,所以我不明白为什么人们会使用视口,如果游戏是静止的……对于绝大多数游戏,ExtendViewport是唯一应该用于非UI内容的视口。FitViewport是一种懒散的方式,它不必担心以黑条为代价进行缩放。但假设我的精灵正在下降,并且从屏幕的左边缘到右边缘都有一个生成范围,因为我没有使用相机。。。现在,如果我想用一个相机,然后放在平板电脑上,产卵率只会在中间屏幕上,因为即使ExpDeVIEWPATH只会使背景向左和向右延伸……还是精灵也会从边缘到边缘产卵?但是如果发生这种情况,那么精灵也会变小。无论您直接使用视口还是摄影机,世界坐标和屏幕坐标之间的转换量都是相同的。“视口”只是使处理各种纵横比变得更容易。如果我没有看到你所指的代码,就没有什么可说的了。好吧,如果我制作一个对象从天空坠落的游戏,如果我使用FitViewport,那么这些对象要么不会在屏幕顶部繁殖,要么不能从屏幕的最左端到最右端繁殖。所以对于我的游戏,我不可能使用视口,因为它看起来很难看,所以我使用了%,所以我不明白为什么人们会使用视口,如果游戏是静止的……对于绝大多数游戏,ExtendViewport是唯一应该用于非UI内容的视口。FitViewport是一种懒散的方式,它不必担心以黑条为代价进行缩放。但假设我的精灵正在下降,并且从屏幕的左边缘到右边缘都有一个生成范围,因为我没有使用相机。。。现在,如果我想用一个相机,然后放在平板电脑上,产卵率只会在中间屏幕上,因为即使ExpDeVIEWPATH只会使背景向左和向右延伸……还是精灵也会从边缘到边缘产卵?但是如果发生这种情况,那么精灵也会变小,输入处理器不使用屏幕坐标吗,就像逻辑一样???或者,是否可以将这些可视像素(800X600)用于所有内容,因为这样做是有意义的。。。还有一件事,似乎extendViewport是最有用的,或者说是唯一有用的,但是我如何让背景占据整个屏幕,而精灵也是相对于屏幕的,因为extendViewport以某种方式扩展了它,而且一切都很奇怪。。。你有什么例子吗?抱歉打扰了,但我真的很困惑,因为我做了一个没有这些东西的游戏,而且缩放得非常完美。。。你