cocos2d开发之菜单CCMenu

cocos2d开发之菜单CCMenu,第1张

概述// 设置CCMenuItemFont的默认属性 [CCMenuItemFont setFontName:@"Marker Felt"]; [CCMenuItemFont setFontSize:26]; // 生成几个文字标签并指定它们的选择器 CCMenuItemFont* item1 = [CCMenuItemFont ite
// 设置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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1090770.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存