答案 0 :(得分:0)
因此,在您的代码中,玩家的y位置设置为固定金额:
player.y = 550
这将是屏幕边界顶部的550px。
在"全屏"截图,您只需拥有更多像素即可使用。相对于窗口顶部550px仍然是相同的数量,但现在它下面有额外的空间。
如果您要设计游戏以扩展到不同的屏幕尺寸,则需要决定如何处理比例尺。
我怎么能这样做,所以它总是靠近底部?
您可以检查窗口高度,将播放器固定在屏幕 bottom 上方一定数量的像素上,例如:
player.y = love.window.getHeight( ) - 100
https://love2d.org/wiki/love.window
如何处理其他屏幕尺寸?
根据窗口中可用的像素数量,您将获得更多或更少的空间。资产放置有多种选择,当窗口大小发生变化时,您选择的选项取决于您自己想要的结果。
例如,您可能希望允许播放器使用其3显示器设置来查看更多游戏世界。或者,您可能希望保留所有坐标"固定"和scale根据窗口大小的图形。
答案 1 :(得分:0)
就像克里斯已经说过的,根据屏幕的大小,显示的像素数量会有所不同。因此,使用love.graphics.getHeight()获取屏幕的实际高度(以像素为单位)。
然后,您要确保无论屏幕大小如何,您的对象始终保持在同一位置。如果从屏幕的实际高度中减去一些像素(从getHeight()
得知),则可以实现此目的。像这样:
screenHeight = love.graphics.getHeight()
objectPositionY = screenHeight - 100
objectHeight = 10
但正如您在上面的一条评论中提到的那样,在“较小”的窗口大小上,对象根本不会显示。如果screenHeight
小于您减去的100个像素,则会发生这种情况,当然,对象显示在可见屏幕的上方/外部。但是如果你真的想用这么小的窗口创建一个游戏,你可以尝试这样的事情:
screenHeight = love.graphics.getHeight()
objectPositionY = screenHeight * 0.9
objectHeight = screenHeight * 0.05
这样,对象总是在完全相同的位置上显示,具体取决于screenHeight,其中0
是顶部,1
是屏幕的底部。哦,当然,你也可以为screenWidth
做同样的事情。
但总的来说,你可能应该将最小尺寸限制为有用的东西。
为了完整起见,如果您想使用highDPI为多个平台(尤其是Android)创建游戏,您可能还需要考虑love.window.getPixelScale!