// 设置CcmenuItemFont的默认属性 [CcmenuItemFont setFontname:@"Marker Felt"]; [CcmenuItemFont setFontSize:26]; // 生成几个文字标签并指定它们的选择器 CcmenuItemFont* item1 = [CcmenuItemFont itemFromString:@"Go Back!" target:self selector:@selector(menuItem1touched:)]; CCSprite* normal = [CCSprite spriteWithfile:@"Icon.png"]; normal.color = ccRED; CCSprite* selected = [CCSprite spriteWithfile:@"Icon.png"]; selected.color = ccGREEN; CcmenuItemSprite* item2 = [CcmenuItemSprite itemFromnormalSprite:normal selectedSprite:selected target:self selector:@selector(menuItem2touched:)]; // 用其它两个菜单项生成一个切换菜单(图片也可以用于切换) [CcmenuItemFont setFontname:@"STHeitiJ-light"]; [CcmenuItemFont setFontSize:18]; CcmenuItemFont* toggleOn = [CcmenuItemFont itemFromString:@"I'm ON!"]; CcmenuItemFont* toggleOff = [CcmenuItemFont itemFromString:@"I'm OFF!"]; CcmenuItemToggle* item3 = [CcmenuItemToggle itemWithTarget:self selector:@selector(menuItem3touched:) items:toggleOn,toggleOff,nil]; // 用菜单项生成菜单 CcmenuItemLabel *item4 = [CcmenuItemLabel itemWithLabel:label target:self selector:@selector(menuItem1touched:)]; item4.Disabledcolor = ccc3(32,32,64); item4.color = ccc3(200,200,255); Ccmenu* menu = [Ccmenu menuWithItems:item1,item2,item3,item4,nil]; menu.position = CGPointMake(size.wIDth / 2,size.height / 2); [self addChild:menu]; // 排列对齐很重要,这样的话菜单项才不会叠加在同一个位置 [menu alignItemsverticallyWithpadding:40];
第一个菜单项基于CcmenuItemFont,用于显示一条文字。当点击此菜单项,它会调用menuItem1touched方法。在程序内部,CcmenuItemFont只是简单的生成一个cclabel。如果你的场景中已经有一个cclabel,你可以把它与CcmenuItemLabel类结合在一起使用。
同样的,有两个使用图片的菜单项;一个是CcmenuItemImage,它利用图片文件生成菜单项,内部实际上使用了CCSprite来实现。我在上述代码里使用了另一个类:CcmenuItemSprite。我认为这个类使用起来更加方便,因为它可以重复利用已有的精灵作为参数。你可以改变同一个图片的颜色,作为显示触摸后高亮效果的图片
CcmenuItemToggole只接受两个继承自CcmenuItem的对象作为参数,当用户点击菜单时,菜单将会在两个菜单项之间进行切换。你可以在CcmenuItemToggle里使用文字标签或者图片。
最后,Ccmenu本身被生成和放置在场景中。因为所有菜单项都是Ccmenu的子节点,它们放置的位置都是相对于Ccmenu的。为了不让菜单互相叠加在一起,你必须调用一个Ccmenu的排列对齐方法,比如alighItemsverticallyWithpadding
注:从《Learn IPhone and iPad Cocos2d Game Delevopment》书中转载
总结以上是内存溢出为你收集整理的cocos2d开发之菜单CCMenu全部内容,希望文章能够帮你解决cocos2d开发之菜单CCMenu所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)