So entfernen Sie ein transparentes Rechteck in einer Textur (ausgeschnitten), so dass das Loch durchscheinend ist.Ausschneiden eines transluzenten Quadrats in einer Textur
Auf Android würde ich den Xfermodes Ansatz verwenden:
Aber in Libgdx werde ich opengl verwenden. Bisher fast ich erreicht, was ich suchte, durch die die glBlendFunc mit Von diesem schönen und sehr hilfreich page ich learend dass
glBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA);
sollte mein Problem lösen, aber ich versuchte es aus, und es hat nicht ganz funktioniert wie erwartet:
batch.end();
batch.begin();
//Draw the background
super.draw(batch, x, y, width, height);
batch.setBlendFunction(GL20.GL_ZERO,
GL20.GL_ONE_MINUS_SRC_ALPHA);
//draw the mask
mask.draw(batch, x + innerButtonTable.getX(), y
+ innerButtonTable.getY(), innerButtonTable.getWidth(),
innerButtonTable.getHeight());
batch.end();
batch.setBlendFunction(GL20.GL_SRC_ALPHA,
GL20.GL_ONE_MINUS_SRC_ALPHA);
batch.begin();
Es macht nur der Maskenbereich schlichtes schwarz, während ich Transparenz erwartet wurde, keine Ideen.
Dies ist, was ich bekommen:
Dies ist, was ich erwartet hatte:
Hast du bitte einen Code für uns? Wird besser sein, um Ihre Frage zu verstehen. –
hmm Nun, ich habe über ein kleines Schnipsel nachgedacht, aber ich habe bisher noch keinen Ansatz, daher habe ich gehofft, dass eine generische Frage nützlicher ist. Aber ich werde mein bisheriges leisten. – joecks
Ich bekomme den plain-black-mask-Effekt von der 'glblendfunc.php' Seite für diese' setBlendFunc' Parameter. Kannst du einen Screenshot von dem, was du bekommst oder was du willst, anhängen? (Beachten Sie auch, dass auf der Website "glblendfunc.php" der "Vordergrund" dieselbe Größe wie der "Hintergrund" hat, also wird der volle Alpha des Vordergrunds auf den gesamten Hintergrund angewendet.) –