Ios 背景透明的EagleView?
我应该如何使CoCo3D场景透明(背景透明的EAGLView)?我知道这将是一个重复的问题但是我尝试了来自不同来源的所有建议,但没有一个对我有效 仅在此处列出它们作为参考: 1) 更改了CCDirector.m中setGLDefaultValues方法中的不透明和透明颜色Ios 背景透明的EagleView?,ios,iphone,objective-c,cocos2d-iphone,cocos3d,Ios,Iphone,Objective C,Cocos2d Iphone,Cocos3d,我应该如何使CoCo3D场景透明(背景透明的EAGLView)?我知道这将是一个重复的问题但是我尝试了来自不同来源的所有建议,但没有一个对我有效 仅在此处列出它们作为参考: 1) 更改了CCDirector.m中setGLDefaultValues方法中的不透明和透明颜色 openGLView_.opaque = NO; glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 2) 在EagleView initWithCoder中 CAEAGLLayer *eaglL
openGLView_.opaque = NO;
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
2) 在EagleView initWithCoder中
CAEAGLLayer *eaglLayer = (CAEAGLLayer*)[self layer];
pixelformat_ = kEAGLColorFormatRGBA8;
depthFormat_ = 0; // GL_DEPTH_COMPONENT24_OES;
multiSampling_= NO;
requestedSamples_ = 0;
size_ = [eaglLayer bounds].size;
eaglLayer.opaque = NO;
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
const CGFloat myColor[] = {0.0, 0.0, 0.0, 0.0};
eaglLayer.backgroundColor = CGColorCreate(rgb, myColor);
CGColorSpaceRelease(rgb);
eaglLayer.drawableProperties = eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking, kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];
if( ! [self setupSurfaceWithSharegroup:nil] ) {
[self release];
return nil;
}
3) 更改了我的CCViewController的isOverlayingDeviceCamera方法
viewController.isOverlayingDeviceCamera = YES;
我正在使用EAGLView.h版本1.3
我尝试使用较新的版本(1.7),但无法继续,因为它会导致此导入的编译器错误
#import <OpenGL/OpenGL.h>
#导入
请帮我一把,因为我整天都在玩这个游戏我相信你把OpenGL的清晰颜色错当成了UIView的清晰颜色: 而不是
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
使用
在cocos3d 2.0中,查看hello、world项目模板或
CC3DemoMashUp
演示应用程序中的AppDelegate类
如果取消对该行的注释:
_viewController.isOverlayingDeviceCamera = YES;
它会做你想做的事
确保按照那些AppDelegates
中的模式创建控制器、控制器和视图。特别是,使用cocos3d,您应该使用CC3UIViewController
(或类似CC3DeviceCameraOverlayViewController的子类,用于显示相机),并让它配置和创建CC3GLView
。远离EAGLView
等
如果您使用的是CoCoCos3D早于2.0的版本,同样,它也是类似的,请看一下在示例cocos3dAppDelegates
中如何处理控制器和视图。我在setGLDefaultValues中尝试过它。但是不起作用。我应该使用更新版本的EagleView类而不是1.3版吗?更新:我尝试了openGLView_389;。backgroundColor=[UIColor redColor];然后它显示了一个红色的背景,突然又变成了黑色。上面的两条评论与回答的原始问题无关。以后,请发布一个新问题。这似乎是一张破账单。我取消了CC3DemoMashUpAppDelegate.m中的\u viewController.isOverlayingDeviceCamera=YES
和CC3DemoMashUpScene.m中的[self addbackground]
注释,但我没有看到我的相机取代了蓝天。我刚刚验证了它在Cocos3D 2.0.2演示项目中工作。对于较新版本的Cocos2D,您还需要将2DCCScene
的背景色设置为透明。请按照演示项目中的注释进行示例。如果您正在使用情节提要,请确保遵循CC3DemoMultiScene
演示应用程序中MainViewController openScene:
方法中的说明,该方法解释了如何在情节提要文件中配置UIViews
。
_viewController.isOverlayingDeviceCamera = YES;