【问题标题】:Pipe texture size in flappy bird game飞扬的小鸟游戏中的管道纹理大小
【发布时间】:2020-01-01 06:02:52
【问题描述】:

我是 android 开发的新手,我正在尝试使用 LibGDX 创建飞扬的小鸟游戏。当我插入管道时,我得到了一些空白空间,如下图所示。我该如何解决?

    batch.draw(tTube, tubeX, Gdx.graphics.getHeight() / 2 + gap / 2 + tubeOffset);
    batch.draw(bTube, tubeX, Gdx.graphics.getHeight() / 2 - gap / 2 - bTube.getHeight() + tubeOffset);

谢谢

【问题讨论】:

  • 您应该提供一些代码 sn-ps 以更清楚地说明您是如何做到的。我假设您已经创建了该管道图像的纹理实例并使用精灵批次进行绘制。如果是,则用更高的 Y 值绘制管道:batch.draw(pipeTexture, x, );
  • 我添加了代码
  • 对于顶管,您可以这样做:batch.draw(tTube, tubeX, Gdx.graphics.getHeight() - tubeHeight);这会将带有顶部边框的管子绘制到屏幕顶部边框
  • 它没有用,我在底管中也遇到了同样的问题。

标签: android libgdx


【解决方案1】:

只是让它更长。

如果间隙位于最底部,并且您在Gdx.graphics.getHeight()/2 或以下绘制顶管height,则顶管将不会到达屏幕顶部。但如果你确定管子是Gdx.graphics.getHeight(),那么管子总是会到达顶部。

Vector2 tubeSize;
float gapPos;

public void create(){
   ...
   ...

   tubeSize = Scaling.fillY.apply(tTube.getWidth(),tTube.getHeight(),0, Gdx.graphics.getHeight());
   //Make the gap size 20% of the screen height, or edit as you like
   gapSize = Gdx.graphics.getHeight() * 0.20f;
   // Make a random gap position on the y axis
   gapPos = MathUtils.random(gapSize,Gdx.graphics.getHeight()-gapSize); 
}

public void render(){
   ...
   ...

   batch.begin();
   batch.draw(tTube, tubeX, gapPos + gapSize/2,tubeSize.x,tubeSize.y);
   batch.draw(bTube, tubeX, gapPos - gapSize/2 - tubeSize.y,tubeSize.x,tubeSize.y);
   batch.end();
}

这当然会使管子看起来更大,但如果您编辑 png 文件并使管子更长,您应该归档所需的结果。

用更长的管子...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    相关资源
    最近更新 更多