Я пытаюсь сделать очень простой движок плиток. Однако использование Bitmap.getpixel(x,y)
не всегда соответствует цвету правильно. Кажется, с 0xFFFFFFFF
, 0xFF000000
, 0xFF189600
и 0xFF18FF00
все в порядке, но есть проблема с 0xFF186600
. Я попытался изменить его на несколько разных похожих цветов, но, похоже, он все еще не правильно читает. Я сравниваю с простым заявлением переключателя. Вот код для моего метода
public void LoadLevel(Canvas canvas, int levelName)
{
Bitmap level = BitmapFactory.decodeResource(getResources(), levelName);
Bitmap startTile = BitmapFactory.decodeResource(getResources(), R.drawable.starttile);
canvas.drawColor(Color.WHITE);
int drawX = 0;
int drawY = 0;
for(int y = 0; y < level.getHeight(); y++)
{
for(int x = 0; x < level.getWidth(); x++)
{
switch(level.getPixel(x, y))
{
case 0xFF000000: break;
case 0xFFFFFFFF:
canvas.drawBitmap(startTile, drawX, drawY, null);
break;
case 0xFF189600:
canvas.drawBitmap(startTile, drawX, drawY, null);
break;
case 0xFF18FF00:
canvas.drawBitmap(startTile, drawX, drawY, null);
break;
case 0xFF186600:
canvas.drawBitmap(startTile, drawX, drawY, null);
break;
}
Log.d("Color", Integer.toString(level.getPixel(x, y)));
drawX += 128;
}
drawX = 0;
drawY += 128;
}
}
Согласно журналу, цвет "-15177472". Я не уверен, какого цвета это на самом деле, хотя ... Так что я не уверен, если -15177472 == 0xFF186600
Что я делаю неправильно, чтобы не получить пиксель? Android меняет изображение? Есть ли безопасные цвета, которые я должен использовать?