Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 背景透明的EagleView?_Ios_Iphone_Objective C_Cocos2d Iphone_Cocos3d - Fatal编程技术网

Ios 背景透明的EagleView?

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

我应该如何使CoCo3D场景透明(背景透明的EAGLView)?我知道这将是一个重复的问题但是我尝试了来自不同来源的所有建议,但没有一个对我有效

仅在此处列出它们作为参考:

1) 更改了CCDirector.m中setGLDefaultValues方法中的不透明和透明颜色

 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的版本,同样,它也是类似的,请看一下在示例cocos3d
AppDelegates

中如何处理控制器和视图。我在setGLDefaultValues中尝试过它。但是不起作用。我应该使用更新版本的EagleView类而不是1.3版吗?更新:我尝试了openGLView_389;。backgroundColor=[UIColor redColor];然后它显示了一个红色的背景,突然又变成了黑色。上面的两条评论与回答的原始问题无关。以后,请发布一个新问题。这似乎是一张破账单。我取消了CC3DemoMashUpAppDelegate.m中的
\u viewController.isOverlayingDeviceCamera=YES
和CC3DemoMashUpScene.m中的
[self addbackground]
注释,但我没有看到我的相机取代了蓝天。我刚刚验证了它在Cocos3D 2.0.2演示项目中工作。对于较新版本的Cocos2D,您还需要将2D
CCScene
的背景色设置为透明。请按照演示项目中的注释进行示例。如果您正在使用情节提要,请确保遵循
CC3DemoMultiScene
演示应用程序中
MainViewController openScene:
方法中的说明,该方法解释了如何在情节提要文件中配置
UIViews
_viewController.isOverlayingDeviceCamera = YES;