तो एक सीसीएलयर के भीतर मैं ओपनजीएलवीव में एक इमेजपिकर/कैमरा जोड़ रहा हूं और फिर एक यूआईबटन - सब अच्छा है, लेकिन अब मैं उन तत्वों के शीर्ष पर एक सीसीएलबेल (और भविष्य में सीसीएसप्राइट्स) जोड़ना चाहता हूं।

    uip = [[UIImagePickerController alloc] init];
    uip.sourceType = UIImagePickerControllerSourceTypeCamera;
    uip.showsCameraControls = NO;
    uip.toolbarHidden = YES;
    uip.navigationBarHidden = YES;
    uip.wantsFullScreenLayout = YES;
    uip.cameraViewTransform = CGAffineTransformScale(uip.cameraViewTransform, CAMERA_TRANSFORM, CAMERA_TRANSFORM);

    [[[CCDirector sharedDirector] openGLView] addSubview:uip.view];

    arrowButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [arrowButton addTarget:self 
               action:@selector(arrowButtonClicked:)
     forControlEvents:UIControlEventTouchUpInside];

    UIImage *imgNormal = [UIImage imageNamed:@"btn_next_norm.png"];
    [arrowButton setImage:imgNormal forState:UIControlStateNormal];

    UIImage *imgPressed = [UIImage imageNamed:@"btn_next_pressed.png"];
    [arrowButton setImage:imgPressed forState:UIControlStateHighlighted];

    arrowButton.frame = CGRectMake(screenSize.width - 48.0, screenSize.height - 37.0, 48.0, 37.0);

    [[[CCDirector sharedDirector] openGLView] addSubview:arrowButton];

    CCLabelTTF* label = [CCLabelTTF labelWithString:@"Experience 1" fontName:@"Arial" fontSize:32];
    label.color = ccc3(0, 0, 0);
    CGSize size = [[CCDirector sharedDirector] winSize];
    label.position = CGPointMake(size.width / 2, size.height / 2);
   // [[[CCDirector sharedDirector] openGLView] addSubview:labe]; cant add to openGLView
1
daihovey 22 जुलाई 2011, 09:54

1 उत्तर

सबसे बढ़िया उत्तर

आपको निम्न के रूप में openGLView के अंतर्गत Subview UIView घटकों को जोड़ने की आवश्यकता है,

[[[CCDirector sharedDirector] openGLView].superview addSubview:arrowButton];

और फिर, openGLView पारदर्शी होना चाहिए। "UIImageView पर पारदर्शी बैकग्राउंड वाला EAGLView प्रदर्शित करना "

संपादित करें:

कोकोस को UIImagePickerController के शीर्ष पर ले जाना

ठीक है, निम्नलिखित के बारे में कैसे? UIImagePickerController के कैमराओवरले व्यू पर cocos2d व्यू (openGLView) को जोड़ें।

[[[CCDirector sharedDirector] openGLView].superview addSubview:uip.view];
[[[[CCDirector sharedDirector] openGLView] removeFromSuperview];
uip.cameraOverlayView = [[CCDirector sharedDirector] openGLView];

साथ ही, आपको Cocos2d को पारदर्शी बनाना चाहिए।

1
Community 23 मई 2017, 12:58
क्षमा करें, मैं UIImagePickerController के शीर्ष पर लेबल दिखाना चाहता हूं - UIImagePickerController के शीर्ष पर कोकोस को स्थानांतरित करना
 – 
daihovey
10 अगस्त 2011, 05:59
आपकी मदद के लिए धन्यवाद लेकिन यह कोकोस तत्व नहीं दिखा रहा है - मेरे पास [सीसीडायरेक्टर साझा निदेशक] है। openGLView.backgroundColor = [UIColor clearColor]; [सीसीडायरेक्टर साझा निदेशक] .openGLView.opaque = नहीं; ग्लब्लेंडफंक (GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glClearColor (0.0, 0.0, 0.0, 0.0); ग्लक्लियर (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); और जोड़ा [[[CCDirector साझा निदेशक] openGLView]। पर्यवेक्षण addSubview:uip.view]; [[[सीसीडायरेक्टर शेयर्डडायरेक्टर] ओपनजीएलव्यू] रिमूवफ्रॉमसुपरव्यू]; [uip.cameraOverlayView addSubview:[[CCDirector SharedDirector] openGLView]];
 – 
daihovey
10 अगस्त 2011, 11:10
यह सुनिश्चित करने के लिए कृपया glClearColor (1.0, 0.0, 0.0, 1.0) का उपयोग करने का प्रयास करें कि EAGLView कैमराओवरले व्यू पर है। इसे स्क्रीन को लाल बनाना चाहिए।
 – 
Kazuki Sakamoto
10 अगस्त 2011, 11:23
1
मैंने गलत समझा! कैसे के बारे में "uip.cameraOverlayView = [[CCDirector साझा निदेशक] openGLView];" !?
 – 
Kazuki Sakamoto
10 अगस्त 2011, 11:59
1
कृपया CC_DIRECTOR_INIT() ठीक होने के बाद, openGLView के लिए किसी भी removeFromSuperview को कॉल करने से पहले पर्यवेक्षण प्राप्त करें।
 – 
Kazuki Sakamoto
12 अगस्त 2011, 08:19