gpt4 book ai didi

java - 调整数组中 Sprite 的大小不起作用

转载 作者:行者123 更新时间:2023-12-01 04:13:23 26 4
gpt4 key购买 nike

我认为这是一个非常基本的问题。我正在尝试使用 7 个 Sprite 制作基本动画,其中 6 个 Sprite 位于 Sprite[] 数组中。

现在,除了向左翻转时,我按下按键时它的动画效果正常,但这是我稍后要弄清楚的事情。现在我想调整这些 Sprite 的大小。

它们目前的大小为 32x68。这是我的代码:

jimRect = new Rectangle();

jimRect.height = 96;
jimRect.width = 48;
jimRect.x = 800 / 2 - jimRect.getWidth();
jimRect.y = 0;

// Create our assets
rock = new Texture(Gdx.files.internal("data/img/rock.png"));
gems = new Texture(Gdx.files.internal("data/img/gems.png"));
jim0 = new Sprite(new Texture(Gdx.files.internal("data/img/jim0.png")));
jim1 = new Sprite(new Texture(Gdx.files.internal("data/img/jim1.png")));
jim2 = new Sprite(new Texture(Gdx.files.internal("data/img/jim2.png")));
jim3 = new Sprite(new Texture(Gdx.files.internal("data/img/jim3.png")));
jim4 = new Sprite(new Texture(Gdx.files.internal("data/img/jim4.png")));
jim5 = new Sprite(new Texture(Gdx.files.internal("data/img/jim5.png")));
jim6 = new Sprite(new Texture(Gdx.files.internal("data/img/jim6.png")));

// Create animations
sprites = new Sprite[] { jim1, jim2, jim3, jim4, jim5, jim6 };
walkFrames = new Animation(ANIM_DURATION, sprites);
stateTime = 0;

for(int i = 0; i < sprites.length - 1; i++){
sprites[i].setSize(jimRect.getWidth(), jimRect.getHeight());
System.out.println("Resized " + i + " sprites to " + jimRect.getWidth() + "x" + jimRect.getHeight());
}
}

所以基本上我创建了一个高度为 96、宽度为 48 的矩形,以使 Jim 更大一点,然后我完成创建 Sprite 的过程,然后将它们添加到数组中(我知道,带有split 方法会更好,但它会引起问题并让我烦恼)。

然后,我使用持续时间和 Sprite 数组创建动画。

现在这部分特别是:

    for(int i = 0; i < sprites.length - 1; i++){
sprites[i].setSize(jimRect.getWidth(), jimRect.getHeight());
System.out.println("Resized " + i + " sprites to " + jimRect.getWidth() + "x" + jimRect.getHeight());
}

为什么这不起作用?我什至添加了一个 super 精美的控制台打印,这样我就可以知道循环正在启动,数组正在正确迭代,并且我的矩形的宽度/高度就是我所说的。

最佳答案

如果你画的 Sprite 像 this :

sprite.setRegion(currentFrame);
sprite.draw();

那么你的代码应该可以工作。但只有一件事是:

for(int i = 0; i < sprites.length - 1; i++){

应该这样做:

for(int i = 0; i < sprites.length; i++){

你错过了最后一个 Sprite 。

如果你这样做 this :

batch.draw(currentFrame, x, y, width, height);

然后,确实,在该方法中设置高度和宽度是有效的。

关于java - 调整数组中 Sprite 的大小不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19681812/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com