Próbuję stworzyć grę układanki i chciałbym poznać alternatywne sposoby tworzenia puzzli bez użycia maski. Obecnie mam kawałki układanki, robiąc pełny obraz, rozbijając ten obraz na cztery części (powiedzmy puzzle to 2x2), a następnie przechowując i nakładając maskę na każdy element. To wygląda jak poniżejJak tworzyć kawałki układanki bez użycia maski?
// create standard puzzle pieces
arryPieceEndPos = new int[mCols][mRows];
arryPieceImg = new Bitmap[mCols * mRows];
arryIsPieceLocked = new boolean[mCols * mRows];
int pos = 0;
for (int c = 0; c < mCols; c++) {
for (int r = 0; r < mRows; r++) {
arryPieceImg[pos] = Bitmap.createBitmap(mBitmap,
c * mPieceWidth, r * mPieceHeight,
mPieceWidth, mPieceHeight);
arryIsPieceLocked[pos] = false;
arryPieceEndPos[c][r] = pos;
pos++;
}
}
I wtedy użyć metody pomocnika stosować maski do każdego kawałka
private Bitmap maskMethod(Bitmap bmpOriginal, Bitmap bmpMask) {
// adjust mask bitmap if size is not the size of the puzzle piece
if (bmpMask.getHeight() != mPieceHeight ||
bmpMask.getWidth() != mPieceWidth) {
Log.e("TEST", "Resize Error :: H (mask): " + bmpMask.getHeight() + " // W (mask): " +
bmpMask.getWidth());
Log.d("TEST", "Resize Error :: H (norm): " + mPieceHeight + " // W (norm): " +
mPieceWidth);
}
Canvas canvas = new Canvas();
Bitmap combine = Bitmap.createBitmap(bmpOriginal.getWidth(), bmpOriginal.getHeight(), Bitmap.Config.ARGB_8888);
canvas.setBitmap(combine);
Paint paint = new Paint();
paint.setFilterBitmap(false);
canvas.drawBitmap(bmpOriginal, 0, 0, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
canvas.drawBitmap(bmpMask, 0, 0, paint);
paint.setXfermode(null);
return combine;
}
widziałem ten post>http://java.dzone.com/news/connect-pictures-android do łączenia części razem jednak to nie wykracza ponad generowanie utworów programowo bez masek. Czy ktoś może podać przykłady kodu, jak można to osiągnąć? Mam tylko jedną wskazówkę, że powinienem używać Path, jednak nadal nie jestem pewien jak. Z góry dziękuję!
Dziękuję za odpowiedź. Wow, uzyskanie całego kształtu puzzli i dobrego wyglądu jest niezwykle skomplikowane. Problem, który mam teraz, polega na tworzeniu elementów z całego obrazu, a nie tylko z części obrazu, ponieważ muszę mieć możliwość poruszania tymi elementami i takimi. Ogólnie rzecz biorąc, dla Androida używanie maski jest lepszym wyborem? – portfoliobuilder
Możesz użyć tego http://stackoverflow.com/a/8180576/2767703, aby uzyskać część mapy bitowej. Nie jestem pewien, co jest lepsze, ale używanie szwów na maskach jest dużo łatwiejsze. Jeśli masz dużo problemów z używaniem ścieżki i takich, to może nie być warta kłopotów, jeśli działa dobrze z maską –