5

Tôi đã thực hiện một dự án trong cocos2d 2.0 và muốn kết hợp một menu chính bằng cách sử dụng bảng phân cảnh.Làm cách nào để kết hợp các bảng phân cảnh thành một dự án cocos2d 2.0?

Tôi đã thử hướng dẫn của Jerrod Putnam tại đây trên tinytimgames.com (Tôi không thể cung cấp liên kết vì người dùng mới được phép chỉ có 2 liên kết cho mỗi bài đăng, nhưng nếu bạn google "cocos2d storyboard" đó là liên kết đầu tiên) nhưng nó không làm việc cho tôi. Tôi theo đúng nó (tôi nghĩ). Tôi đã mở dự án cocos2d của mình và nhập các tệp từ github của mình, CCViewController.m và .h và sau đó tạo một tệp bảng phân cảnh mới và làm theo hướng dẫn. Tuy nhiên khi tôi chạy nó, nó chỉ bắt đầu ngay trên trò chơi cocos2d của tôi và không phải trên menu mới mà tôi vừa tạo ra.

Tôi cũng đã cố gắng hướng dẫn này: http://zackworkshopios.blogspot.com/2012/06/cocos2d-with-storyboard-example.html nhưng một lần nữa nó không làm việc cho tôi như tôi không có (hoặc không biết nơi để tìm thấy/nhận) các libcocos2d.a và các tập tin libCocosDenshion.a. Đây là một hướng dẫn khác mà tôi đã thử từ fidgetware: http://fidgetware.com/Tutorials/page15/page15.html Tôi đã làm hướng dẫn này nhưng dự án của tôi không có tệp có tên là RootViewController (.m hoặc .h) vì vậy tôi không chắc chắn nơi đặt mã được yêu cầu đi vào những tập tin đó.

Ngoài ra còn có hướng dẫn của Ray Wenderlich nhưng không sử dụng bảng phân cảnh.

Nếu ai đó có thể cho tôi giải pháp tại sao không có giải pháp nào làm việc cho tôi hoặc cho tôi từng bước chi tiết về cách kết hợp bảng phân cảnh vào dự án cocos2d 2.0 của tôi, tôi sẽ đánh giá cao nó. Một câu hỏi khác tôi nên bắt đầu với một dự án cocos2d 2.0 và kết hợp các bảng phân cảnh hoặc tôi nên bắt đầu với một dự án ứng dụng đơn (hoặc một dự án khác?) Và kết hợp phần cocos2d 2.0 của tôi. Cảm ơn trước!

Trả lời

8

Được rồi, cuối cùng tôi đã tìm ra được sự giúp đỡ từ Jerrod Putnam, vì vậy cảm ơn bạn Jerrod! Trước tiên hãy vào hướng dẫn của mình ở đây:

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

và tải về và nhập khẩu các tập tin từ liên kết github. Sau đó tạo một lớp con của CCViewController và gọi nó là cocos2dViewController. Trong cocos2dViewController.h sao chép và dán:

#import "CCViewController.h" 

@interface cocos2dViewController : CCViewController 

@end 

và trong cocos2dViewController.m sao chép và dán này (từ hướng dẫn của 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 

Bạn sẽ nhận thấy rằng tôi nhập khẩu GamePlay.h, đó là bởi vì GamePlay.m là nơi tôi có tất cả các nội dung cho trò chơi của tôi. Vì vậy, nhập tệp tiêu đề cho trò chơi của bạn. Ngoài ra, bạn sẽ thấy rằng tôi gọi

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

Đảm bảo thay "GamePlay" bằng tên của cảnh có chứa trò chơi của bạn. Một khi bạn làm điều đó, đi đến AppDelegate.m bạn và thay thế chức năng

application didFinishLaunchingWithOptions 

của bạn với điều này:

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

Bạn sắp hoàn tất! Bây giờ cho tệp bảng phân cảnh của bạn theo hướng dẫn của Putnam trong liên kết được cung cấp. Nơi anh ta nói "và gán lớp của nó cho lớp chúng ta vừa tạo", gán nó cho cocos2dViewController. Và đó là nó! Chạy dự án và nó sẽ hoạt động, nếu không cảm thấy tự do để hỏi bất kỳ câu hỏi nào bạn có.

3

bạn sẽ yêu tôi.

theo hướng dẫn này http://www.tinytimgames.com/2012/02/07/cocos2d-and-storyboards/

sau đó bạn gotta thiết lập bảng câu chuyện chính của bạn ở đây

các Bí quyết là để nhắm mục tiêu storyboard chính của bạn trong iOS của bạn ứng dụng một trong những bạn đã tạo-dưới "tên dự án"/mùa hè/Thông tin triển khai iPhone/iPod. chọn người đàn ông của bạn câu chuyện ban có

sau đó trong AppDelegate.m bạn loại bỏ mã để nó trông như thế này:

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


return YES; 
} 

nếu bạn không đến ngay tôi sẽ cung cấp cho bạn mã nguồn làm việc của tôi, chỉ cho tôi biết

+0

Bạn có thể gửi một liên kết tải về dự án làm việc xin vui lòng? –

+0

@OscarApeland im rất tiếc, tôi chưa bao giờ liên lạc lại với bạn. Thật không may tôi không có dự án đó nữa và khó có thể nhớ bất cứ điều gì tôi đã làm sau đó (làm việc trong sự đoàn kết bây giờ). xin chấp thuận lời xin lỗi của tôi. –

0

Nhờ bagelboy, tôi chỉ có một bản cập nhật:

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

Ví dụ của tôi, [[[UIApplication sharedApplication] keyWindow] bounds] đã không làm việc, và tôi sử dụng self.view.frame

Các vấn đề liên quan