学习菜单过程中的疑问和解决

http://www.cnblogs.com/andyque/archive/2011/07/15/2107758.html

http://www.iphonegametutorials.com/2010/09/07/cocos2d-menu-tutorial/#comment-32512





以上博客是介绍cocos2d里菜单的使用第一篇,我照着跑了一遍,发现自己编译后菜单项无法选择。


对每个方法一个个都追溯回去看,中间语法知识不足又上apple的library查了一下selector和block的语法,最后得出结论:



在MenuLayer.m里

1 - (void)onNewGame:(id)sender{
2 [SceneManager goMenu];
3 }
4 
5 - (void)onCredits:(id)sender{
6 [SceneManager goMenu];

 


应该改成

1 - (void)onNewGame:(id)sender{
2 [SceneManager goPlay];
3 }
4 
5 - (void)onCredits:(id)sender{
6 [SceneManager goCredits];
7 
8 }


这样再编译运行就没问题了。

但以上两篇博客看的人不少,为什么就没有人发现过这个问题?莫非是我哪里写的不对其实是乱改的?

PS 还有问题没搞懂:menu创建CCMenuItemFont时,响应单击action是怎么实现的?我在往上追溯各个方法的时候

一路查到宏定义NASssert 就看不懂了。
在CCMenuItem.m里 InitWithString: target: selector:这个方法初始化的时候,那个performSelector: 这里是不是就调用了goPlay、goCredits? 

在子龙山人建议下对于涉及底层的东西,暂且不刨根问底,先用再说。

 

 



今天又仔细研究了一下,发现果然是我搞错情况了。菜单教程第二篇里,将goMenu调用修改成了goPlay、goCredits。虽然是自己搞的小失误,但是这是自己第一次跳出一步步的教程自己深究问题,获益还是不少的。

posted @ 2012-06-12 13:08  ArtSun  阅读(140)  评论(0编辑  收藏  举报