cocos2d入门教程5:为我们的程序加入菜单

来源:互联网 发布:t2000网管 数据库 编辑:程序博客网 时间:2024/05/17 23:26

上一节讲到helloworld程序。下面加入一些其他功能,在程序中加入菜单。我们都知道游戏中餐单也是必不可少的控件

所以要学会,Let‘s go。

把上个程序中生成标签的代码注释掉,这个应该都会的,呵呵。

加入下面的代码

        [CCMenuItemFont setFontSize:28];        CCMenuItem *itemAchievement = [CCMenuItemFont itemWithString:@"you win" block:^(id sender){            GKAchievementViewController *avc = [[GKAchievementViewController alloc]init];            avc.achievementDelegate = self;            AppController * app = (AppController *)[[UIApplication sharedApplication]delegate];            [[app navController]presentModalViewController:avc animated:YES];            [avc release];        }];
第一行代码我们把菜单字体的大小设为28像素,然后创建一个菜单项,CCMenuItem代表,由类名应该就知道了,e文不好的同学

要加油啦,呵呵。这里面有一个重要的问题就是实现的时候要用CCMenuItemFont类,这个类咋一看是字体类,我也很郁闷,就把

它换成CCMenuItem,结果不能正常显示,查看代码才知道CCMenuItemFOnt继承自CCMenuItem,所以上面的赋值是可以的,

然后后面的block块是相应菜单项消息需要执行的代码。对block块还不是太熟悉,以后查查再说。。

block块中是打开游戏中心的操作。GKAchievementViewController代表iOS的游戏中心类。

下面的代码是生成一个菜单,把菜单项加入到菜单中。

 CCMenu *menu = [CCMenu menuWithItems:itemAchievement, nil];        //[menu setPosition:ccp( size.width/2, size.height/2 - 50)];        menu.position = ccp(size.width / 2, size.height / 2 - 50);        [self addChild:menu];

都差不多的实现方式。一看就很清楚的。

运行,结果正常,点击菜单项,进入游戏中心。

重点是响应菜单项消息是要取的AppDelegate类中的导航控制器,把游戏中心视图推入导航控制器的栈中。如果不这么做,那进入游戏中心后

就不好返回了。好了,前台催着要走了,明天继续努力。

原创粉丝点击