我目前正在开发一款适用于 Android 的小游戏。我正在使用 Canvas 及其 drawBitmap 方法来绘制游戏级别。为此,我在一定程度上移植了 XNA 原理(例如 Update - Draw Loop 等)。
我还添加了一个“drawStaticParts”方法。我使用这种方法只绘制一次某些部分。此方法在 Update-Draw 循环开始之前调用。在这种方法中,我将(使用画布)绘制到位图上。此位图稍后用于在我绘制动态部分之前“恢复”Draw 中的旧状态(就像调用 drawColor(Color.Black) 一样)。
这工作得很好。但是只针对背景,也是用drawBitmap方法绘制的。一旦我尝试添加其他位图,它们就不会显示。我已经检查了背景是否可以覆盖其他位图,但是背景绘制调用发生在任何其他 drawBitmap 调用之前。我也没有任何例外或类似情况。
这是有问题的代码片段:
public void drawStaticParts(Canvas c) {
c.drawBitmap(TextureManager.getTexture(Element.getBackgroundID(), backgroundImg), null, new RectF(0, 0, Element.getResolution_width(), Element.getResolution_height()), null);
for(int i = 0; i < width; i++)
{
for(int j = 0; j < height; j++)
{
Element temp = spielfeld[i][j];
if(temp != null)
{
if(Element.isStatic(temp))
{
float x = i * Element.getElement_width();
float y = j * Element.getElement_height();
RectF place = new RectF(x, y, Element.getElement_width(), Element.getElement_height());
Log.w("MS:doDraw", "Draw at " + x + ", " + y + " with w=" + Element.getElement_width() + " and h=" + Element.getElement_height());
c.drawBitmap(TextureManager.getTexture(temp.getTextureID(), sceneryID), null, place, null);
}
}
}
}
}
我检查了所有有问题的值:一切都很好。假设的宽度和高度各为 40,坐标也很合适。我不知道进一步了。
我将永远感激任何帮助/建议。先感谢您。
PS:我也尝试了类似问题的线程中提到的一些解决方案,但没有任何效果。