到目前为止,我正在使用cocos2d引擎创建一个游戏,我想实现一个QR阅读器。
到目前为止,我已经创建了一个CCScene,CCScene有一个菜单按钮,它导致了一个onScan方法:
-(void) onScan:(id)sender{
// ADD: present a barcode reader that scans from the camera feed
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
ZBarImageScanner *scanner = reader.scanner;
// TODO: (optional) additional reader configuration here
// EXAMPLE: disable rarely used I2/5 to improve performance
[scanner setSymbology: ZBAR_I25
config: ZBAR_CFG_ENABLE
to: 0];
// present and release the controller
[self presentModalViewController: reader
animated: YES];
[reader release];
}
我知道这适用于标准的ViewController类,但我想知道如何最好地实现它以使用我的CCScene上的cocos2d引擎
任何帮助将不胜感激,谢谢!
答案 0 :(得分:0)
如果您来自使用Xcode模板创建的典型cocos2d-iphone项目,我认为您的应用程序中应该有一个RootViewController类。 RootViewController的唯一实例是在applicationDidFinishLaunching中创建的:在AppDelegate.m中。
viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil];
您可以以某种方式保存根UIViewController的全局引用,例如,在RootViewController中实现类方法:
static RootViewController *sharedInstance_ = nil;
@implementaion RootViewController
+ (RootViewController *)sharedInstance {
if (!sharedInstance_) {
sharedInstance_ = [[RootViewController alloc] initWithNibName:nil bundle:nil];
}
return sharedInstance_;
}
并将AppDelegate.m中的初始化更改为:
viewController = [[RootViewController sharedInstance] retain];
然后用它来呈现你的UIViewController:
[[RootViewController sharedInstance] presentModalViewController:reader
animated:YES];
答案 1 :(得分:0)
在cocos2d-iphone中,CCDirector是UIViewController。
所以,就这样做:
[[CCDirector sharedDirector] presentModalViewController:reader animated:YES]
答案 2 :(得分:0)
UIView* glView = [CCDirector sharedDirector].view;
UIView* window = glView.superview;
[window addSubview:reader.view];