2010-02-09 62 views
2

我對OpenGL ES很新。我正在實施一些演示應用程序以在屏幕上加載多個紋理。爲了演示目的,我使用glTranslatef()和glBindTextures()兩次在屏幕上的2個不同位置加載了2個紋理。如何在android中使用opengl es在屏幕上移動特定紋理?

現在我能夠在屏幕上看到2個不同的圖像。現在我想用鼠標在屏幕上移動一個特定的紋理。

我知道這可能是愚蠢的話題,但請幫我在這..提前

謝謝..

回答

1

如上所述,您需要翻譯曲面的座標。

如果您正在使用正交投影(2D),則通過將投影定義爲與屏幕大小相同,可以輕鬆地將像素/座標比率設置爲1:1。例如:

glOrthof(0.0f, screenWidth, -screenHeight, 0.0f, -1.0f, 1.0f); 

應該在左上角定義一個投影(0,0),大小與屏幕相同。

如果您正在使用3D投影,你會發現這個鏈接有用: http://www.mvps.org/directx/articles/rayproj.htm

+0

非常感謝你很多回復......我想我最好用Ortho替代投影(我使用glFrustumF,我認爲它是3D)。 – Andhravaala 2010-02-11 00:49:11

0

你不會真的想移動的質感,但無論你移動場景視點(gluortho2d/glulookat/gltranslatef - 或其他任何東西),或者移動要應用紋理的形狀的頂點。

這是怎麼IM在我的2D遊戲做:

gl.glTranslatef(-cameraPosX%32,-cameraPosY 32%,0);

+0

我明白你的意思。 我沒有深入到足夠深的觸摸屏手柄,所以我無法幫助你。然而,我必須堅持認爲,你不需要自己移動紋理,而是通過改變頂點座標來應用紋理(即設計遊戲時的遊戲對象)。 請檢查nehe教程在這裏:http://nehe.gamedev.net/,特別是Android端口在這裏:http://insanitydesign.com/wp/projects/nehe-android-ports/ – Dullahx 2010-02-09 11:38:18

+0

好的...任何方式謝謝你的鏈接... :) – Andhravaala 2010-02-10 00:56:43

+0

歡迎:)我會遲早地在我的遊戲中實現TouchScreen控件,也許我會放下並回答那裏,當我找出大部分有用的東西:) – Dullahx 2010-02-10 10:06:17