当前位置: 首页 > 知识库问答 >
问题:

LibGdx不能扩展到整个屏幕

公西永嘉
2023-03-14

在我的LibGdx游戏中,我使用一个ExtendedViewport

 new ExtendViewport(LevelSmash.WIDTH, LevelSmash.HEIGHT, camera);

我把宽度设为708,高度设为900,

在我的渲染方法中,我将spritebatch缩放到视口的投影

    @Override
public void render(SpriteBatch sb) {

    sb.setProjectionMatrix(vp.getCamera().projection);

    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    sb.begin();
    level.render(sb);
    sb.end();

    stage.act();
    stage.draw();
}

该级别的渲染方法是

    @Override
public void render(SpriteBatch sb) {
    sb.setProjectionMatrix(vp.getCamera().projection);
    sb.draw(background, 0 / LevelSmash.PPM, 0 / LevelSmash.PPM);

    player.draw(sb);
}

PPM等于100

我希望背景占据整个屏幕,因为它的宽度和高度都是我缩放到的(708900)

但看起来是这样的

共有1个答案

萧韬
2023-03-14

看起来您的相机以0,0为中心,纹理从0,0708900开始绘制。最好将相机的中心设置为图像的中心。

camera.position.set(LevelSmash.WIDTH / 2, LevelSmash.HEIGHT / 2);
camera.update();

编辑

我觉得奇怪的是,竟然有人在画圆圈。

sb.draw(background, 0 / LevelSmash.PPM, 0 / LevelSmash.PPM);
// 0 / X == 0 so width and height are always 0;

你能解释一下吗?因为很难相信你看到有任何东西被这条线画出来。

 类似资料:
  • 如若引入扩展整型,到时将有一整套的规则说明应该如何进行整型扩展(及其精度)。 // 译注: 作稿之时,扩展整型尚未确定是否纳入C++11 参见: [06-0058==N1988] J. Stephen Adamczyk: Adding extended integer types to C++ (Revision 1) . (翻译:lianggang jiang)

  • 我目前正在一个小型集群(3个节点,32个CPU和128 GB Ram)上使用线性回归(Spark ML)中的基准测试来评估Spark 2.1.0。我只测量了参数计算的时间(不包括启动、数据加载、……)并识别了以下行为。对于小的数据集,0.1MIO-3MIO数据点,测量的时间并没有真正增加,停留在大约40秒。只有对于较大的数据集,如300个Mio数据点,处理时间才会达到200秒。因此,集群似乎根本无

  • SDK对外开放了一个可自定义的协议NtalkerChatDelegate,如果客户想进行自定义实现接口,必须遵守此协议,初始化小能类的时候设置其delagate为实现代理接口方法的类,然后实现相应的接口。其中提供了以下几个接口: 深度自定义控件接口,详细调用细节,请参照demo。 一、自定义消息发送 二、查询历史咨询列表 三、设置超媒体自定义参数 四、+号功能区的扩展功能 五、商品条自定义 六、设

  • 一、发送文本消息到聊窗内 二、返回按钮的点击监听 三、结束会话按钮的点击监听 四、超媒体点击事件的监听 五、+号功能区的扩展功能 六、商品条自定义 七、导航栏自定义

  • QueyList是完全模块化的设计,拥有强大的可扩展性。 使用bind()方法绑定一个功能函数到QueryList对象,实现轻量级的功能扩展。bind()方法的第一个参数是绑定的函数名,第二个参数是一个匿名的功能函数,这个功能函数的$this对象指向的是当前的QueryList实例对象,所以在这个功能函数中可以直接通过$this来调用QueryList的方法。 例子 注册一个自定义的http网络操

  • 自定义引擎各个阶段 可以在测试脚本中或者基类中重写 ActsTestBase 提供的 API。 重写 prepare,execute,check,clear 等。可以通过在 super.prepare() 之前或者之后进行某些操作。 重写 process 方法,在 super.process() 之前或之后进行操作。可将整个脚本重新编排,例如在现有的清理 -> 准备 -> 执行 -> 校验流程中增