SORU
27 AĞUSTOS 2009, PERŞEMBE


OpenGL ES (Android)metin çizmek

Ben şu anda gelişmekte olan küçük bir OpenGL oyun için Android platformu ve merak ediyorum eğer kolay bir şekilde oluşturmak için metin üstüne işlenmiş çerçeve (gibi bir HUD ile oyuncular skor vb). Metin özel bir yazı tipi de kullanmak gerekir. Örnek bir kaplama gibi bir Görünüm kullanarak görmedim, ama eğer oyunu diğer platformlara daha sonra bağlantı noktasına isteyebilirim beri bunu yapmak istediğimden emin değilim. Herhangi bir fikir?

Saygılar Başına/

CEVAP
2 Aralık 2010, PERŞEMBE


Metin oluşturma için bir doku, daha basit daha ne Sprite Metin demo yapmak gibi görünüyor, temel fikir kullanmaktır Tuval sınıf oluşturmak için bir Bitmap ve sonra pass bit Eşlem için bir OpenGL doku:

// Create an empty, mutable bitmap
Bitmap bitmap = Bitmap.createBitmap(256, 256, Bitmap.Config.ARGB_4444);
// get a canvas to paint over the bitmap
Canvas canvas = new Canvas(bitmap);
bitmap.eraseColor(0);

// get a background image from resources
// note the image format must match the bitmap format
Drawable background = context.getResources().getDrawable(R.drawable.background);
background.setBounds(0, 0, 256, 256);
background.draw(canvas); // draw the background to our bitmap

// Draw the text
Paint textPaint = new Paint();
textPaint.setTextSize(32);
textPaint.setAntiAlias(true);
textPaint.setARGB(0xff, 0x00, 0x00, 0x00);
// draw the text centered
canvas.drawText("Hello World", 16,112, textPaint);

//Generate one texture pointer...
gl.glGenTextures(1, textures, 0);
//...and bind it to our array
gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);

//Create Nearest Filtered Texture
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);

//Different possible texture parameters, e.g. GL10.GL_CLAMP_TO_EDGE
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_REPEAT);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT);

//Use the Android GLUtils to specify a two-dimensional texture image from our bitmap
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);

//Clean up
bitmap.recycle();

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bratayley

    Bratayley

    30 Aralık 2010
  • SlimaksClass

    SlimaksClass

    15 Kasım 2010
  • THELIFEOFPRICE

    THELIFEOFPRI

    16 Mart 2011