Android 对同一对象和渲染使用多个精灵图纸
我为我的对象(鹦鹉)准备了多张精灵床单,比如吃东西、从左向右移动、从右向左移动等等。我正在使用andenginegles2.0。我应该如何实施它?每次我必须使用不同的精灵表,分离前一个,并在同一位置添加新的一个。这会很忙的Android 对同一对象和渲染使用多个精灵图纸,android,opengl-es-2.0,andengine,sprite,sprite-sheet,Android,Opengl Es 2.0,Andengine,Sprite,Sprite Sheet,我为我的对象(鹦鹉)准备了多张精灵床单,比如吃东西、从左向右移动、从右向左移动等等。我正在使用andenginegles2.0。我应该如何实施它?每次我必须使用不同的精灵表,分离前一个,并在同一位置添加新的一个。这会很忙的 这里有谁已经实现了这种场景?如果我对每一个动画使用一个精灵表,它的大小会增加,并且会抛出内存不足的异常 这是我的代码,用于执行不同精灵图纸的动画 public void performEatingAnimation(Bird b) { float x = b.getS
这里有谁已经实现了这种场景?如果我对每一个动画使用一个精灵表,它的大小会增加,并且会抛出内存不足的异常 这是我的代码,用于执行不同精灵图纸的动画
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;
}
我必须深度复制选定的精灵,因为如果我不这样做,它将传递引用并设置为可见(false),并且在行走AnimatedSprite和进食AnimatedSprite时将发生分离,而我无论如何都不希望发生这种情况您解决了这个问题吗?我现在也处于同样的情况