gpt4 book ai didi

android - 对同一对象使用多个 Sprite 表 AndEnginge

转载 作者:行者123 更新时间:2023-11-29 22:01:25 25 4
gpt4 key购买 nike

我的对象(鹦鹉)有多个 Sprite 表,比如吃东西、从左到右、从右到左等等。我正在使用 AndEngine gles2.0。我应该如何实现它?每次我必须使用不同的 Sprite 表时,分离前一个并在同一位置添加新的。这将是忙碌的!

这里有人已经实现了这种场景吗?如果我为每个动画使用单个 Sprite 表,它的大小将会增加,并且会抛出内存不足的异常!

最佳答案

这是我执行不同 Sprite 表动画的代码。

public void performEatingAnimation(Bird b) {
float x = b.getSelectedAnimatedsprite().getX();
float y = b.getSelectedAnimatedsprite().getY();
b.getSelectedAnimatedsprite().setVisible(false);

b.getSelectedAnimatedsprite().detachSelf();
b.setSelectedAnimatedsprite(b.getEatingAnimatedsprite());

attachObjectWithNewPosition(b.getSelectedAnimatedsprite(), x, y);
b.getSelectedAnimatedsprite().animate(60, 2);

}

public void performWalkAnimation(Bird b) {
float x = b.getSelectedAnimatedsprite().getX();
float y = b.getSelectedAnimatedsprite().getY();
b.getSelectedAnimatedsprite().setVisible(false);

b.getSelectedAnimatedsprite().detachSelf();
b.setSelectedAnimatedsprite(b.getWalkingAnimatedsprite());

attachObjectWithNewPosition(b.getSelectedAnimatedsprite(), x, y);
b.getSelectedAnimatedsprite().animate(60, 0)
}

这是我的 setSelected 方法,用于执行 AnimatedSprite 的深度复制。

public void setSelectedAnimatedsprite(AnimatedSprite selectedAnimatedsprite) {
AnimatedSprite sprite = new AnimatedSprite(
selectedAnimatedsprite.getX(), selectedAnimatedsprite.getY(),
selectedAnimatedsprite.getTiledTextureRegion().deepCopy(),
selectedAnimatedsprite.getVertexBufferObjectManager());

this.selectedAnimatedsprite = sprite;
}

我必须深度复制选定的 Sprite ,因为如果我不这样做,它将通过引用和 setVisible(false) 并且分离将发生在 WalkingAnimatedSprite 和 EatingAnimatedSprite 上,这是我无论如何都不想要的

关于android - 对同一对象使用多个 Sprite 表 AndEnginge,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11823067/

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