5

cocos2d 2.0 でプロジェクトを作成しましたが、ストーリーボードを使用してメイン メニューを組み込みたいと考えています。

tinytimgames.com で Jerrod Putnam のチュートリアルを試してみました (新規ユーザーは投稿ごとに 2 つのリンクしか許可されていないため、リンクを提供できませんが、「cocos2d ストーリーボード」をグーグルで検索すると、それが最初のリンクになります)。自分。私はそれを正確に従った(と思う)。cocos2d プロジェクトを開き、彼の github からファイル、CCViewController.m および .h をインポートしてから、新しいストーリーボード ファイルを作成し、チュートリアルに従いました。しかし、実行すると、作成したばかりの新しいメニューではなく、cocos2d ゲームで直接開始されました。

私もこのチュートリアルを試しました: http://zackworkshopios.blogspot.com/2012/06/cocos2d-with-storyboard-example.html しかし、私が持っていない(またはどこに行くかわからない)ので、もう一度うまくいきませんでしたlibcocos2d.a および libCocosDension.a ファイルを検索/取得します。

これは、私がfidgetware から試した別のチュートリアルですこれらのファイルに入るはずのコードをどこに置くか。

Ray Wenderlich のチュートリアルもありますが、彼は絵コンテを使用していません。

これらのどれもうまくいかない理由について誰かが解決策を教えてくれたり、ストーリーボードを私の cocos2d 2.0 プロジェクトに組み込む方法を段階的に詳細に説明してくれたりしたら、大いに感謝します。また、もう 1 つの質問は、cocos2d 2.0 プロジェクトから始めてストーリーボードを組み込むべきか、それとも単一ビュー アプリケーション プロジェクト (または別のプロジェクト) から始めて自分の cocos2d 2.0 パーツを組み込むべきかということです。前もって感謝します!

4

3 に答える 3

8

よし、Jerrod Putnam の多くの助けを借りて、やっとそれを理解することができたので、Jerrod に感謝します! まず、彼のチュートリアルにアクセスしてください:

http://www.tinytimgames.com/2012/02/07/cocos2d-and-storyboards/

github リンクからファイルをダウンロードしてインポートします。次に、CCViewController のサブクラスを作成し、cocos2dViewController と呼びます。cocos2dViewController.h で、これをコピーして貼り付けます。

#import "CCViewController.h"

@interface cocos2dViewController : CCViewController

@end

cocos2dViewController.m で、これをコピーして貼り付けます (Putnam のチュートリアルから)

#import "GamePlay.h"
#import "cocos2dViewController.h"

@interface cocos2dViewController ()

@end

@implementation cocos2dViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    CCDirector *director = [CCDirector sharedDirector];

    if([director isViewLoaded] == NO)
    {
        // Create the OpenGL view that Cocos2D will render to.
        CCGLView *glView = [CCGLView viewWithFrame:[[[UIApplication sharedApplication] keyWindow] bounds]
                                       pixelFormat:kEAGLColorFormatRGB565
                                       depthFormat:0
                                preserveBackbuffer:NO
                                        sharegroup:nil
                                     multiSampling:NO
                                   numberOfSamples:0];

        // Assign the view to the director.
        director.view = glView;

        // Initialize other director settings.
        [director setAnimationInterval:1.0f/60.0f];
        [director enableRetinaDisplay:YES];
    }

    // Set the view controller as the director's delegate, so we can respond to certain events.
    director.delegate = self;

    // Add the director as a child view controller of this view controller.
    [self addChildViewController:director];

    // Add the director's OpenGL view as a subview so we can see it.
    [self.view addSubview:director.view];
    [self.view sendSubviewToBack:director.view];

    // Finish up our view controller containment responsibilities.
    [director didMoveToParentViewController:self];

    // Run whatever scene we'd like to run here.
    if(director.runningScene)
        [director replaceScene:[GamePlay scene]];
    else
        [director pushScene:[GamePlay scene]];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

GamePlay.h をインポートしたことに気付くでしょう。これは、GamePlay.m にゲームのすべてのコンテンツがあるためです。そのため、ゲームのヘッダー ファイルをインポートします。また、私が電話することもわかります

if(director.runningScene)
    [director replaceScene:[GamePlay scene]];
else
    [director pushScene:[GamePlay scene]];

「GamePlay」は、ゲームを含むシーンの名前に置き換えてください。それをしたら、 AppDelegate.m に移動して、

application didFinishLaunchingWithOptions

これで機能します:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{   
    return YES;
}

あなたはもうすぐそこにいます!ストーリーボード ファイルについては、提供されたリンクにある Putnam のチュートリアルに従ってください。彼が「そしてそのクラスを作成したばかりのものに割り当てます」と言ったところで、それを cocos2dViewController に割り当てます。以上です!プロジェクトを実行するとうまくいくはずです。そうでない場合は、お気軽に質問してください。

于 2012-08-03T18:11:45.250 に答える
3

あなたは私を愛するつもりです。

このチュートリアルに従ってくださいhttp://www.tinytimgames.com/2012/02/07/cocos2d-and-storyboards/

次に、メインストーリーボードをここに設定する必要があります

秘訣は、iOS アプリケーションのメイン ストーリーボードを、「プロジェクト名」/summer/iPhone/iPod 展開情報の下に作成したストーリーボードに向けることです。そこにあなたの男のストーリーボードを選択してください

次に、AppDelegate.m でコードを削除して、次のようにします。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{


return YES;
}

うまくいかない場合は、作業中のソース コードを差し上げますので、お知らせください。

于 2012-08-03T00:38:41.040 に答える
0

bagelboy のおかげで、更新は 1 つだけです。

    // Create the OpenGL view that Cocos2D will render to.
    CCGLView *glView = [CCGLView viewWithFrame:self.view.frame
                                   pixelFormat:kEAGLColorFormatRGB565
                                   depthFormat:0
                            preserveBackbuffer:NO
                                    sharegroup:nil
                                 multiSampling:NO
                               numberOfSamples:0];

私の例では、[[[UIApplication sharedApplication] keyWindow] bounds]うまくいきませんでした。self.view.frame

于 2014-02-18T21:07:23.100 に答える