2010-08-14 17 views
1

在iOS上,如果我想覆蓋兩個視圖,然後從一個場景混合到另一個。在使用OpenGLES的iOS上如何擁有多個視圖?

例如:從遊戲菜單到實際遊戲。首先有菜單,然後點擊(「開始遊戲」)加載遊戲視圖,並從菜單到遊戲階段有一個很好的混合/轉換。

這不是混合的具體問題,而是如何處理OpenGL應用程序中的多個視圖。我已經閱讀並玩過一些關於如何繪製線條,對象,閃電,顏色和類似的基礎知識,但是當將它們放在一個真實的(而不僅僅是一個靜態視圖)OpenGLES應用程序中時,我完全是綠色的。我的意思是你必須使用不同的觀點,對吧?或者,這種設計模式具有不同的視圖控制器和視圖,我們在日常的UIKit編程中都習慣於不適用於OpenGLES?因爲我無法做到這一點。我找不到任何例子。

回答

1

嗯,我找到了我一直在尋找

它給你的圖層,場景轉換,蓄勢待發的菜單,精靈,等等。 因此,我停止困擾於如何做到這一點,只需使用科科斯現在。

不要猶豫,如果你是新的OpenGL,它會讓你的生活更輕鬆147 *倍。順便說一句,你也可以將它與3D結合起來。

0

如果你想在你的應用程序的多個同時可見的OpenGL的看法,CAEAGLLayers的形式,則有一個重要的一點要記住:

[EAGLContext setCurrentContext:oglContext]

會改變的背景下,不只是爲目前正在執行的視圖,但適用於您應用的所有EAGL視圖。這可以通過使其他視圖正在凍結來表現出來,因爲OpenGL調用現在轉到執行[EAGLContext setCurrentContext:oglContext]的最後一個視圖。

爲了解決這個問題,每次調用視圖實例時,必須先調用[EAGLContext setCurrentContext:oglContext],然後再進行任何OpenGL調用。

在我的應用程序中,我只在視圖的initWithFrame中設置了上下文一次。這工作很好多年。一旦我創建了該視圖的第二個實例,第一個視圖停止更新。現在我在更新調用中設置上下文,然後執行任何CVOpenGLES調用。

相關問題