cocos2d-android开发菜单篇(一)上
来源:互联网 发布:安卓版cf刷枪软件 编辑:程序博客网 时间:2024/06/06 07:52
下面是基本的菜单操作,还可以继承某些进行改变;
//设置总的菜单的字体大小;
CCMenuItemFont.setFontSize(30);
//设置文字字体,默认使用系统的;
CCMenuItemFont.setFontName("DroidSans");
1.精灵小菜单;
// 图片精灵 Item
CCSprite spriteNormal = CCSprite.sprite("menuitemsprite.png", CGRect.make(0,23*2,115,23));
CCSprite spriteSelected = CCSprite.sprite("menuitemsprite.png", CGRect.make(0,23*1,115,23));
CCSprite spriteDisabled = CCSprite.sprite("menuitemsprite.png", CGRect.make(0,23*0,115,23));
//将精灵添加到菜单中;
CCMenuItemSprite item1 = CCMenuItemSprite.item(spriteNormal, spriteSelected, spriteDisabled, this, "menuCallback");
2.有两个状态(初始和按下)的按钮菜单;
// 单纯的图片菜单;
CCMenuItem item2 = CCMenuItemImage.item("SendScoreButton.png", "SendScoreButtonPressed.png", this, "menuCallback2");
3.有两个渲染颜色显示方式的菜单,
//字体菜单(改变图片文字渲染颜色)----字体标签(颜色(失去焦点的颜色和获得焦点的文字))
//参数:字符串,文字图片,宽,高,分割符;
CCLabelAtlas labelAtlas = CCLabelAtlas.label("0123456789", "fps_images.png", 16, 24, '.');
CCMenuItemLabel item3 = CCMenuItemLabel.item(labelAtlas, this, "menuCallbackDisabled");
item3.setDisabledColor(ccColor3B.ccc3(32, 32, 64));
item3.setColor(ccColor3B.ccc3(200,200,255));
4.就一个简单的字体菜单;
// Font Item 简单的菜单项:参数(字符,父节点,方法名称);
CCMenuItem item4 = CCMenuItemFont.item("I toggle enable items", this, "menuCallbackEnable");
5.自定义字体样式的
// Label Item (BitmapFontAtlas) 自定义字体的菜单项;(该字体会制动转换成大写)
CCBitmapFontAtlas label = CCBitmapFontAtlas.bitmapFontAtlas("configuration", "bitmapFontTest3.fnt");
CCMenuItemLabel item5 = CCMenuItemLabel.item(label, this, "menuCallbackConfig");
// Testing issue #500
item5.setScale(0.8f);//设置大小;
6.就一个单纯的文字,然后不停的闪烁颜色;
// Font Item 文字菜单;
CCMenuItemFont item6 = CCMenuItemFont.item("Quit", this, "onQuit");
CCIntervalAction color_action = CCTintBy.action(0.5f, ccColor3B.ccc3(0, -255, -255));
CCIntervalAction color_back = color_action.reverse();
CCIntervalAction seq = CCSequence.actions(color_action, color_back);
//持续动画---
item6.runAction(CCRepeatForever.action(seq));
7.设置菜单的文字效果;
CCMenuItemFont.setFontName("DroidSans");
CCMenuItemFont.setFontSize(28);
CCBitmapFontAtlas label = CCBitmapFontAtlas.bitmapFontAtlas("Enable AtlasItem", "bitmapFontTest3.fnt");
CCMenuItemLabel item1 = CCMenuItemLabel.item(label, this, "menuCallback2");
CCMenuItemFont item2 = CCMenuItemFont.item("--- Go Back ---", this, "menuCallback");
8.点击交换文字的菜单类似自带的屏幕亮度调节//
//默认为off选项;
CCMenuItemToggle item4 = CCMenuItemToggle.item(this, "menuCallback", CCMenuItemFont.item("Off"));
//多个选项菜单项个list集合;
ArrayList<CCMenuItemFont> more_items = new ArrayList<CCMenuItemFont>();
more_items.add(CCMenuItemFont.item("33%"));
more_items.add(CCMenuItemFont.item("66%"));
more_items.add(CCMenuItemFont.item("100%"));
// TIP: you can manipulate the items like any other NSMutableArray
//添加到字体list集合菜单;
item4.getSubItemsRef().addAll(more_items);
9.
CCMenuItemFont.setFontName("DroidSerif");
CCMenuItemFont.setFontSize(34);
CCBitmapFontAtlas label = CCBitmapFontAtlas.bitmapFontAtlas("go back", "bitmapFontTest3.fnt");
CCMenuItemLabel back = CCMenuItemLabel.item(label, this, "backCallback");
//添加到菜单容器中;
CCMenu menu = CCMenu.menu(title1, title2, item1, item2, title3, title4, item3, item4, back); // 9 items.
//设置:显示优先级;越大越是在前;
menu.alignItemsInColumns(new int[]{2, 2, 2, 2, 1});
addChild(menu);
最后要由CCmenu来管理
CCMenu menu = CCMenu.menu(item1, item2, item3, item4, item5, item6);
menu.alignItemsVertically();
//将菜单设置为垂直的;
menu.alignItemsVertically();
然后就是对菜单的位置进行设置:
CGSize s = CCDirector.sharedDirector().winSize();
int i=0;
//共有6个;循环重新设置位置;--注意这里的getChildren方法是获取该主菜单的所有的子选项;
for (CCNode child : menu.getChildren()) {
final CGPoint dstPoint = child.getPositionRef();
int offset = (int) (s.width/2 + 20);
if( i % 2 == 0)
offset = -offset;
child.setPosition( dstPoint.x + offset, dstPoint.y);
child.runAction(
CCEaseElasticOut.action(CCMoveBy.action(2.0f, CGPoint.ccp(dstPoint.x - offset,0)),
0.35f)
);
i++;
}
//设置3为没有焦点;
disabledItem = item3;
//没有焦点;
disabledItem.setIsEnabled(false);
//最后不要忘了将菜单添加到该布景中;
//这里,位置焦点等属性设置好再添加到主场景中;
addChild(menu);
//设置菜单字宽;
item1.setScaleX(1.5f);
item2.setScaleY(0.5f);
item3.setScaleX(0.5f);
还可以动态改变菜单的位置,颜色等变化;通过动画和一些属性来共同改变;
//比如下边的效果是隐藏父菜单;
public void menuCallbackOpacity (Object sender) {
CCMenuItem item = (CCMenuItem)sender;
CCMenu menu = (CCMenu)item.getParent();
//获取最左边的y轴,
int opacity = menu.getOpacity();
if (opacity == 128)
menu.setOpacity((byte) 255);
else
menu.setOpacity((byte) 128);
}
//改变菜单排列方向;
public void menuCallbackAlign (Object sender) {
alignedH = ! alignedH;
if( alignedH )
alignMenusH();
else
alignMenusV();
}
//先固定菜单,下面的是按比例的最好的;
CGSize s = CCDirector.sharedDirector().winSize();
item1.setPosition(s.width/2 - 150, s.height/2);
item2.setPosition(s.width/2 - 200, s.height/2);
item3.setPosition(s.width/2, s.height/2 - 100);
//返回;
public void menuCallbackBack (Object sender) {
((CCMultiplexLayer)getParent()).switchTo(0);
}
当停止一个菜单的动作时:
//先取消焦点;
disabledItem.setIsEnabled(!disabledItem.isEnabled());
disabledItem.stopAllActions();
- cocos2d-android开发菜单篇(一)上
- cocos2d-android开发基础篇(一)上
- Cocos2D-X 项目发布到Android平台(一)Windows 上搭建Android ADT 开发环境
- cocos2d-android开发基础篇(一)下
- cocos2d-x eclipse android 开发(一)
- 漫谈android开发之菜单(一)
- cocos2d android 游戏开发学习——CCAction(一)
- Android开发笔记(一百零一)滑出式菜单
- Cocos2d开发系列(一)
- Cocos2d开发系列(一)
- Cocos2d开发系列(一)
- Cocos2d开发系列(一)
- cocos2d开发之菜单CCMenu
- cocos2D开发基础-菜单项
- android(一) 菜单创建
- 简单的android选项卡Tab菜单TabHost(一)同一Activity上实现
- 【Cocos2d-x游戏引擎开发笔记(3)】在屏幕上渲染菜单并添加消息响应
- 【Cocos2d-x游戏引擎开发笔记(3)】在屏幕上渲染菜单并添加消息响应
- Android开发仿QQ聊天滑动listview
- 一只小蜜蜂...
- 萨基姆SAGEMPCM FMX12数字接入设备
- 黑马程序员——集合(二)
- shp转featureclass
- cocos2d-android开发菜单篇(一)上
- redis常用命令
- 不容易系列之(3)—— LELE的RPG难题
- pyqt资料汇总
- hadoop 性能调优 重要参数设置技巧
- swoole在mac os上的环境配置
- Android获取设备ip地址和Mac地址
- 骨牌铺方格
- Nodejs处理GET请求中参数和查询参数的不同