0

だから、私はOpenGLの初心者で、2Dマルチプレイヤーゲームを作成しようとしています.ネットワークのすべてを行う方法を知っていますが、グラフィック部分は正直に私のお尻を蹴っています.

NiftyGUI と TWL はよく推奨されているので、調べてみました。 OpenGL Documentary ページのレイアウトがひどいことに言及してください。

フォントの描画方法さえわかりませんが、白いフォントを描画することで、どういうわけか白で輪郭を描き、それを一時的なテキストボックスにしようとしていた黒い四角形を描画しようとしました。これらは、私が見つけられない苦労していることのほんの一部であり、いくつかのライブラリを使用する必要があることを認識しているため、現在実装しているものに名前を付けます。

  • LWJGL
  • Slick2D

現在、TWL 以外に他に持っているものはありませんが、一生使う方法がわかりません。

小さな黒い長方形を作ろうとしているときに自分で作ったコードは次のとおりです

void drawTextBox(int fromLeft, int fromTop, int width, int height) {
    glColor3f(1.0f, 1.0f, 1.0f);
    glBegin(GL_QUADS);
        glTexCoord2f(0, 0);
        glVertex2i(fromLeft, fromTop);  // Upper Left
        glTexCoord2f(1, 0); 
        glVertex2i(fromLeft - width, fromTop);  // Uppright
        glTexCoord2f(1, 1); 
        glVertex2i(fromLeft - width, fromTop + height);  // Bottom right
        glTexCoord2f(0, 1); 
        glVertex2i(fromLeft, fromTop + height); // bottom left
    glEnd();
} 

これは正しく機能していますが、一部を除いて...プログラムのどこにもバインドしていないにもかかわらず、ロードした最後のテクスチャを描画しています。次に、テキスト ボックスのサイズに合わせてスケーリングします。

誰かがこのエラーを解決するのを手伝ってくれて、四角形の不透明度を設定する方法とテキストを描画する方法を学べる場所に案内してくれませんか?

4

2 に答える 2

0

関数を呼び出す直前に、必要なテクスチャをバインドしてみてください。他のテクスチャがバインドされていないことをどのように「確認」したかを知らなくても、それが私が言えるすべてです。また、不透明度を変更するには、GL11.glColor4_関数の 1 つを使用するだけです。最後のパラメーターは、色のアルファ (不透明度) です。

于 2013-02-25T20:33:53.743 に答える
0
void drawTextBox(int fromLeft, int fromTop, int width, int height) {

    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
    glColor4f(1.0f, 1.0f, 1.0f, <B>0.5f</B>);

    glBegin(GL_QUADS);
        glTexCoord2f(0, 0);
        glVertex2i(fromLeft, fromTop);  // Upper Left
        glTexCoord2f(1, 0); 
        glVertex2i(fromLeft - width, fromTop);  // Uppright
        glTexCoord2f(1, 1); 
        glVertex2i(fromLeft - width, fromTop + height);  // Bottom right
        glTexCoord2f(0, 1); 
        glVertex2i(fromLeft, fromTop + height); // bottom left
    glEnd();

    glDisable(GL_BLEND);
} 

このコード ブロックを使用すると、不透明度 %50 の白い四角形を描画できます。

BOLDED部分 (0.5f)を見てください。この浮動小数点数は、長方形の不透明度を定義します。この数値 (0.0f~1.0f) が大きいほど、長方形の不透明度が高くなります。

于 2014-07-24T06:14:45.183 に答える