2011-08-08 4 views
3

これまでは、cocos2dエンジンを使用してゲームを作成していましたが、QRリーダーを実装したいと考えています。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

Xcodeテンプレートを使用して作成された典型的なcocos2d-iphoneプロジェクトの場合は、アプリケーションにRootViewControllerクラスが必要です。 RootViewControllerの唯一のインスタンスは、AppDelegate.mのapplicationDidFinishLaunching:で作成されます。

viewController = [[RootViewController alloc] initWithNibName:nil bundle:nil]; 

あなたは何とかRootViewControllerでクラスメソッドを実装するために、例えば、あなたのルートのUIViewControllerのグローバル参照を保存することができます:

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]; 
0

cocos2d-iphoneでは、CCDirectorはUIViewControllerです。

ので、ちょうどこの操作を行います。

[[CCDirector sharedDirector] presentModalViewController:reader animated:YES] 
0
UIView* glView = [CCDirector sharedDirector].view; 
UIView* window = glView.superview; 

[window addSubview:reader.view]; 
+0

をそして、もう一つは、このコードで何をしますか? –

+0

コードブロックを投稿するだけでなく、このコードが問題を解決する理由を説明してください。説明がなければ、これは答えではありません。 –

+0

このコードはビューを画面に表示しますが、非常に明白で説明は必要ありません –

関連する問題