我制作了一个android/ios游戏,并且它在Android上工作正常,只有一个我发布了,但是说我做了一个纹理渲染50px×50px其他设备上的像素密度使纹理呈现不同有没有一种办法可以让固定的世界坐标,以便将图像呈现相同的但不是随机大小的纹理渲染,它只是扩展下降/上升Libgdx支持所有Android像素密度
回答
您可以设置一个Camera
这样的:
new OrthographicCamera(viewPortWidth, viewPortHeight)
for 2D游戏new PerspectiveCamera(viewAngel, viewPortWidth, viewPortHeight)
为3D。
我现在用2D保持住。您设置的视口会自动放大以适应窗口/屏幕。因此,如果您在1600 * 900像素的窗口上使用80宽度和45高度的视口,则每个单位都会放大到20像素。在800 * 450像素的屏幕上,一台设备只能使用10px。 默认情况下,相机的原点(P(0,0))位于屏幕中间。所以如果你在x = 0,y = 0时渲染一个Texture
,宽度为1,高度为1,它的左下角在屏幕中间,它是20px * 20px大(在1600 * 900屏幕)。 要使摄像头始于屏幕的左下角(正如我们通常所需的那样),您需要通过调用camera.translate(viewPortWidth/2, viewPortHeight/2)
或将其位置设为camera.position.set(viewPortWidth/2, viewPortHeight/2)
来移动它。之后,您必须致电camera.update()
,让其知道您已将其移动。在相机每改变一次(旋转,平移...)。
要使用本相机呈现您的Texture
s,您必须设置 s projectionMatrix
,这就像世界的视图或类似的东西。为此,请致电:spriteBatch.setProjectionMatrix(camera.combined)
。然后,如果你用这个spriteBatch
绘制一切应该工作。
圣洁的废话谢谢@Springrbua我会尽快回复您 – Frogzer
对不起,您可以问这个愚蠢的问题,但是用视口怎么说80宽和45高你怎么知道它会等于20px一个1600 * 900像素的屏幕?并且使用80 * 45就像隐形坐标一样? – Frogzer
当您设置摄像机视口的宽度时,您会说:我想在屏幕宽度上有80个单位。 ays我有1600px,我想有80个单位,所以1600/80 = 20像素/单位。 – Springrbua
- 1. Android中的像素密度
- 2. 屏幕大小和密度支持android
- 3. Android:支持所有设备的背景图像大小(以像素为单位)
- 4. 支持libgdx的多图像分辨率
- 5. Libgdx - 支持OpenGL 4+
- 6. Libgdx支持Android Studio中的gradle
- 7. 支持Android和libgdx的多个屏幕
- 8. android定义密度独立像素
- 9. Android:如何计算像素密度
- 10. android如何定位元素以支持所有设备
- 11. 所有支持的Android视图列表?
- 12. Android支持所有屏幕尺寸
- 13. 所有API级别的RTL支持android
- 14. OpenCL支持灰度图像
- 15. CSS中的像素与像素密度
- 16. 是否有可能拥有支持1.5,1.6并支持不同屏幕密度的Android build.xml?
- 17. iPhone的像素密度
- 18. 多屏幕尺寸/密度支持
- 19. Play商店的屏幕密度支持
- 20. Android屏幕支持相同密度下的不同分辨率
- 21. Android多屏幕支持 - 密度和大小限定符
- 22. 支持不同android屏幕大小和密度的技巧
- 23. Android密码可见性切换不支持支持库25?
- 24. 透明度Libgdx Android
- 25. MovieClip支持所有帧
- 26. SQL支持联盟所有
- 27. Android 4.4支持SHA256密码吗?
- 28. Android支持哪些加密算法?
- 29. Android的图像,密度和
使用'Camera'这一点。如果你使用最新的libgdx版本,你也可以使用'ViewPort'。 – Springrbua
@Springrbua我正在渲染使用纹理将影响如何绘制到屏幕上?使用相机和视口将影响任何纹理定位实施时,或者我可以在ApplicationListener类中实现这一点,一切都会自动调整?另外我将如何去实现这个?非常感谢你的帮助我只是不想放弃我的游戏 – Frogzer
永不放弃,你总是可以学习新的东西,这并不难。我写了一个关于相机的答案,但对于视口你必须看看自己,因为我从来没有使用它们,我仍然使用9.9版本。 – Springrbua