iphone - Cocos2D 和排行榜

标签 iphone objective-c cocos2d-iphone game-center

我正在处理带有 Game Center 排行榜的 Cocos2D iPhone 应用程序。在此应用程序中,用户必须以横向模式(iPhone 是水平的)画线。然后触摸可能会在屏幕外开始(在靠近麦克风的左侧)并在屏幕内继续。一旦手指进入屏幕框架,应用程序就会正确开始绘制内容。但是,如果我显示带有排行榜的 View (实际上是正确描述的)并且我回到游戏,应用程序将停止处理从屏幕外开始的触摸。它实际上只停止处理从屏幕顶部开始的那些,就好像顶部有一行像素没有被考虑一样。

我是这样启动领导板的:

- (void) showLeaderboard
{
   GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != nil){
    tempVC=[[UIViewController alloc] init] ;
    leaderboardController.leaderboardDelegate = self;
    [[[CCDirector sharedDirector] openGLView] addSubview:tempVC.view];

    [tempVC presentModalViewController:leaderboardController animated:YES];
    tempVC.view.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0.0f));
    tempVC.view.bounds = CGRectMake(0, 0, 480, 320);
    tempVC.view.center = CGPointMake(240, 160);

    [leaderboardController release];
}
}

然后这样释放:

-(void) leaderboardViewControllerDidFinish: (GKLeaderboardViewController *) viewController{
[tempVC dismissModalViewControllerAnimated:YES];
[tempVC.view.superview removeFromSuperview];
[tempVC.view removeFromSuperview];

[tempVC release];


}

最佳答案

好吧,你的问题听起来有点讨厌,我所能提供的只是猜测问题可能出在哪里..

我有一个集成了 Leaderboards 的 Cocos2d Game,触摸效果很好,所以让我详细介绍一下我是如何添加 leaderboard viewController 的,您可能想尝试一下:

注意:在 cocos2d 中,使用 v0.99.5 中添加的 RootViewController 通常会更好地使用 UIKit 元素。

//Action method invoked upon pressing the "Show LeaderBoards button"
-(void)showLeaderboardButtonClicked {
    [gameCenterHandler showLeaderboard];
}

//Inside the GameCenter Handler:
-(void) showLeaderboard {
    if (isGameCenterAvailable == NO) {
        return;
    } else if (![[GKLocalPlayer localPlayer] isAuthenticated]) {
        [self authenticateLocalPlayer];
    } else {
        GKLeaderboardViewController* leaderboardVC = [[[GKLeaderboardViewController alloc] init] autorelease];
        if (leaderboardVC != nil) {
            leaderboardVC.leaderboardDelegate = self;
            [rootVC presentModalViewController:leaderboardVC animated:YES];
        }
}

-(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController*)viewController {
    [rootVC dismissModalViewControllerAnimated:YES];
}

rootVCAppDelegate.h 中:

    RootViewController  *viewController;

关于iphone - Cocos2D 和排行榜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9421038/

相关文章:

objective-c - 关于 CLLocationManager startMonitoringForRegion 的 iOS 应用程序生命周期

ios - GKMatchmakerViewController 未在 iOS 7 中打开,但在 iOS 5.1 中工作

iphone - 如何在iPhone上找到一个城市的经度和纬度?

iphone - 如何从左到右更改 UIPickerView 中的文本

objective-c - 如何优化压缩和上传文件的循环

ios - AutoLayout 的 UILabel 最大高度

iphone - openGL 中的 3d 游戏开发人员

iphone - cocos2d 支持视网膜 iPhone 和低清晰度 iPad,但不支持视网膜 iPad?

iphone - 如何使用正则表达式在语句周围加上引号

iphone - sqlite3_prepare_v2失败(Xcode sqlite 3)