如何重置精灵的区域

How to reset a region of a sprite

我创建了一个包含 10 个数字 (0-9) 的精灵。我想用这个精灵创建一个基本的分数。每次用户触摸屏幕时都会计算该分数。不幸的是它不起作用,所以我需要你的帮助。谢谢!

为什么 sprite-sheet 的数字?

您应该使用 LibGDX 的 BitmapFont if you're not using using scene-2d 模块。

  1. 位图字体

    BitmapFont font= new BitmapFont();
    String score="0";
    

    和内部 render() 方法

    font.draw(batch,score,100,100);
    

    任何时候你想改变分数

    int scoreValue = Integer.parseInt(score);
    scoreValue++;
    score=String.valueOf(scoreValue);
    
  2. 如果您使用的是 scene2d,请为 score 创建 Label 并创建 Stage。那个阶段负责绘图之后,你只需要更新Label文本。

    label.setText("new-value");
    

您也可以使用自己的方法,但我认为这不是好方法。

  • 您可以创建一个Group,其大小取决于乐谱中的数字。

  • 计算分数中的总位数,如 if digit if 3

  • 从 sprite-sheet 中获取数字并放置在适当的位置。

如果数字是三,从分数到特定数字:

int i = score / 100;
int j = score % 100 / 10;
int k = score % 10;

每次删除该组并创建新组或从该组中删除所有演员并添加新数字演员。