目前,我有一个相当不错的框架,用于一个围绕libgdx构建的侧视策略-ish游戏。虽然我可能已经重新发明了轮子几次,我相信我已经完成了绝大多数已经存在于libgdx部件中的工具:照相机、视口、精灵等等。现在,我已经到了需要实现一些相当基本的UI-系统的地步。没有什么特别的:几个按钮点击,和一个地区与其他信息。viewport.getWorldHeight());
bat
我使用libgdx的目的是创建一个简单的平台游戏。游戏者受到屏幕宽度的限制。这是处于初始位置的球员:当我将玩家的X位置设置为0(我知道这没有考虑到精灵的宽度,我还没有达到那个位置,但我知道),它看起来是这样的:注意到精灵和屏幕边缘之间的空隙了吗?当我将游戏作为桌面应用程序运行时,调整窗口大小时,我发现差距可以变大或变小,甚至可能导致底部出现差距,如下所示:下面是我在create()方法中设置项目的方法:
public void create
我已经使用libGDX实现了一些屏幕,它们显然将使用libGDX框架提供的Screen类。但是,这些屏幕的实现仅适用于预定义的屏幕大小。例如,如果精灵用于640 x 480大小的屏幕(4:3宽高比),它在其他屏幕大小上就不会像预期的那样工作,因为精灵与屏幕边界相同,根本不会缩放到屏幕大小。在使用一些代码来根据屏幕调整大小来转换坐标之后,我在很大程度上减少了这个量,但我没有成功地保持它们的精确度。例如,如果我在纹理上实现了touchDown(),调整屏幕的大小将使纹理区域
所以我想要实现的是,当我有一个大的纹理时,我想通过给定x,y(开始剪切的位置)和宽度,高度(剪切部分的大小)来获得该纹理的一部分,然后将该部分用作精灵或任何可能在andengine场景上绘制的部分。在libgdx中是这样的:Texture texture = new Texture(Gdx.files.internal(是不是真的很难在any引擎中做,以至于现在在互联网上我搜索了2小时都找不到任何答案?:)