Sto cercando di creare un gioco di puzzle e mi piacerebbe sapere dei modi alternativi di creare pezzi di puzzle senza usare la maschera. Attualmente ho pezzi di puzzle prendendo un'immagine intera, suddividendo l'immagine in quattro parti (diciamo che il puzzle è 2x2) e quindi memorizzando e applicando una maschera a ogni pezzo. Sembra che il seguitoCome creare pezzi di un puzzle senza usare la maschera?
// 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++;
}
}
Ho quindi utilizzare un metodo di supporto per applicare una maschera per ogni pezzo
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;
}
ho visto questo post>http://java.dzone.com/news/connect-pictures-android per il collegamento di pezzi insieme, tuttavia, questo non va oltre generare pezzi programmaticamente senza maschere. Qualcuno può fornire esempi di codice su come questo può essere realizzato? L'unico indizio che ho è che dovrei usare Path, tuttavia, non sono ancora sicuro di come. Grazie in anticipo!
Grazie per la risposta. Wow, ottenere un'intera forma del puzzle e farlo sembrare buono è estremamente complesso. Il problema che ho ora è creare i pezzi da un'immagine intera, non solo una sezione dell'immagine perché ho bisogno di essere in grado di spostare questi pezzi e così via. In generale, per Android, sta usando la maschera la scelta migliore? – portfoliobuilder
È possibile utilizzare questo http://stackoverflow.com/a/8180576/2767703 per ottenere una parte della bitmap. Non sono sicuro di cosa sia meglio, ma usare le cuciture maschera è molto più facile però. Se hai un sacco di problemi nell'usare il percorso e così via, potrebbe non valerne la pena, se funziona bene con la maschera –