我有以下代码:
public void loop1(int times, SpriteObject[] obj){
for(int i = 0; i < times; i++){
obj[i] = new SpriteObject(BitmapFactory.decodeResource(gv.getResources(), R.drawable.bar1), 500,720);
}
}
但是,当我在视图上绘制它时,它不会像我预期的那样停留。 如果我使用obj [i] .setX(10)和obj [5] .setX(20)。只有第二个出现,因为它是刷新的,只采取最后一个对象。是否可以重复使用这样的drawable?
答案 0 :(得分:0)
我并不完全理解你在这里想要完成的事情,对我来说,似乎你的资源加载方法完全错误。据我所知,你试图让两个相似的位图移动。
首先,对于简单的绘图应用程序或游戏,您将使用视图或表面视图,因此您必须实现它。其次,我创建移动位图的方法是首先创建位图变量来保存相应的位图,然后为每个相应的位图创建一个单独的类。在课程中,我有以下内容。
public float x = 0;
public float y = 0;
因此,考虑到这一点,您需要做的就是使用此方法在View
的onDraw方法中绘制位图。
canvas.drawBitmap(bitmapVariable, bitmap.x, bitmap.y, null);
如果要移动位图,则只需更改相应位图的X和Y即可。在单独的方法或更新循环中。
最终,我认为你理解位图是错误的。一旦创建,您不需要重新创建它以在不同的位置重绘它,除非位图被垃圾收集。