質問

私は、2Dのゲームを作ってるんです。私は、中心点の周りにそれを一定量回転させた後、画面上のテクスチャをレンダリングできるようにしたいです。基本的にこれはプレイヤーの周りのレベルの回転のためです。プレイヤ位置である回転点と角度としてプレイヤの方向。このコード文句を言わない仕事ます:

def draw_texture(texture,offset,size,a,rounded,rotation,point):
    glMatrixMode(GL_MODELVIEW)
    glLoadIdentity() #Loads model matrix
    glColor4f(1,1,1,float(a)/255.0)
    glTranslatef(point[0],point[1],0)
    glRotatef(rotation,0,0,1)
    glBindTexture(GL_TEXTURE_2D, texture)
    if rounded == 0:
        glBegin(GL_QUADS)
        glTexCoord2f(0.0, 0.0)
        glVertex2i(*offset) #Top Left
        glTexCoord2f(0.0, 1.0)
        glVertex2i(offset[0],offset[1] + size[1]) #Bottom Left
        glTexCoord2f(1.0, 1.0)
        glVertex2i(offset[0] + size[0],offset[1] + size[1]) #Bottom, Right
        glTexCoord2f(1.0, 0.0)
        glVertex2i(offset[0] + size[0],offset[1]) #Top, Right
        glEnd()
    else:
        #Nothing important here
    glEnd()

それは働い取得する方法?ありがとうございます。

役に立ちましたか?

解決

タグを逆にしてみてください
glTranslatef(point[0],point[1],0)

glRotatef(rotation,0,0,1)

あなたはプレイヤーに変換するが、その後の原点(ないプレイヤー)

の周りを回転しています

赤い本でからイラスト:<のhref = "HTTPS: //i.stack.imgur.com/WMzPq.gif」のrel = "nofollowをnoreferrer"> 回転

他のヒント

あなたがそうでなければ行うには良い理由がない限り、私は一人で描画コードを残して、ちょうどカメラアングルを変更すると思います。おそらくそれを行う最も簡単な方法は、使用gluLookAtです。あなたのケースでは、あなたは明らかにプレイヤーの位置を見て、ちょうど最後の二つのパラメータで指定された「上方向」を、変更します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top