IOS cocos2d学习笔记-<四>Menu&MenuItem

来源:互联网 发布:淘宝订单信息编辑 编辑:程序博客网 时间:2024/05/19 14:18


(本文写作基于千锋3g学院提供的第三季讲授视频编写,更多资料和资源下载地址请看笔记扉页:传送门


看一下图先。


今天我们进入到游戏开始页面,用到菜单栏CCMenu

终于有个可以碰的东西了,感觉有点摩拳擦掌了对吧?

CCMenu的用处挺广泛的,可设置的东西也地方也很多,我们这里写写基本的用法。

首先我们要了解几个类的继承关系:

(取自原教学视频)

我们今天的重点是:

CCMenuItem

CCMenuItemFont

CCMenuItemSprite

CCMenuItemImage

CCMenu(继承于CCLayer)

总结一下这几个类的使用关系和相应创建和设置方法


(文字打出来发表之后会变样,还是用图片吧。。)


总体来说菜单(CCMenu)里面可以加入纯字体(CCMenuItemLabel)以及图片(CCMenuItemSprite)两种菜单选项(CCMenuItem)

然后是关于CCMenu的设置:

1-注意+(id)menuWithItems:方法可以一次插入多个CCMenuItem对象,最后必须以nil作为结束:

   如:[CCMenu menuWithItems: CCMenuItem1, CCMenuItem2, ....., nil ];

2-(void) setPosition:设置位置

3.如果菜单仲插入多个选项,则需要设置排列方式,水平排列或者是竖直排列。

 -(void) alignItemsHorizontally(WithPadding:) 

 -(void) alignItemsVertically(WithPadding:)

里面的Padding是Items之间的间隔。

4.最后加入到场景或者图层当中,使用CCNode的方法-(void) addChild:


这就可以创建一个可以按的按钮菜单了。

其中说明一下CCMenuItemSprite中的一些使用问题:

我们看到+(id)itemFromNormalSprite:(CCNode<CCRBGAProtocol> *) 

selectedSprite:(CCNode<CCRBGAProtocol> *)

target:self

selector:(SEL)

这个方法里面的(CCNode<CCRBGAProtocol>*)这个参数类型,这里是使用了一些关于着色的代理,我们只需要给它传进一个CCSprite对象就可以了

selectedSprite:选择时显示的图片,可为空nil。但有一点要注意的是,你不可以重复使用已经使用在NormalSprite作为参数的CCSprite对象,你必须为这两个参数分别创建两个CCSprite对象。

为了按起来有点动感,本人用同一张图片创建了两个大小不一样的两个CCSprite对象作为开始按钮的两个参数。这里就出现一个问题了,之前所说过的一个锚点貌似在这里没有发挥作用,当我点击菜单按钮时,图片的确是变大了,但它的锚点始终在cpp(0, 0)处,以致于变大之后很不自然地“走位”了。之后我就把后面的图缩放的比例调到1.03,勉强还可以看一下。= =现在还在纠结中。

最后贴一篇详解文章:这里这里


原创粉丝点击