2012-08-30 20 views
1

我正在尋找一種方法來掩蓋圖層並通過矩形顯示圖層的內容(實際上我想要多個矩形來顯示底層圖層的內容)。 Cocos2d iPhone - Sprite cliping/mask/frame用cocos2d通過矩形「切出」來揭示圖層的內容?

其中有一個解決方案: http://www.learn-cocos2d.com/2011/01/cocos2d-gem-clippingnode/

然而,嘗試使用這個類的時候,我得到了警告:「功能的隱式聲明‘glPushMatrix’

我碰到這種類似的問題就來了在C99中無效「...我也收到錯誤:」在'CCDirector *'類型的對象上找不到'屬性'deviceOrientation'「

我需要做些什麼才能使它與最新版本cocos2d的?

......在任何情況下,我都評論過deviceOrientation的東西,只是爲了測試它是否會起作用,而且看起來似乎沒有。

我有一個CCBatchNode:

sheet = [CCSpriteBatchNode batchNodeWithFile:@"bg.png" capacity:500]; 

然後我許多精靈添加到

[sheet addChild:sprite1]; 
    [sheet addChild:sprite2]; 
    [sheet addChild:sprite3]; 

然後我讓剪輯節點層

ClippingNode *clipNode = [ClippingNode node]; 
clipNode.clippingRegion = CGRectMake(50, 50, 200, 200); 

然後我添加精靈表和clipNode:

[layer addChild:sheet]; 
[layer addChild:clipNode]; 

然後我再補充一點的CCSprite對象

[self addChild:layer]; 

...

的結果是,我看到了我從片許多精靈,但沒有剪貼蒙版。而我的控制檯顯示一百萬:「OpenGL錯誤0x0502在 - [CCTextureAtlas drawNumberOfQuads:fromIndex:] 556」

所以.....我不知道我在做什麼錯 - 或者如果這一切都與openGL警告和設備方向錯誤...?

更新:我添加#include <OpenGLES/ES1/gl.h>到ClippingNode.m,它擺脫了glpush/pop警告..但仍然導致相同的OpenGL錯誤,一旦我添加clipNode孩子到圖層...

回答