大佬教程收集整理的这篇文章主要介绍了基于Cocos2d-x的英雄联盟皮肤选择菜单,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
最终效果图
英雄联盟皮肤选择
设计说明
实现目标所需要的动作
移动(MoveTo),伸缩(ScaleTo),倾斜(OrbitCamera)
实现目标所需要函数(这是一个数学函数)
x/(x+a)
其中a为常量,用来计算上面三个动作的值
大小
与原版Menu不同,大小不是全屏的,默认是屏幕的(2/3),可以通过setContentSize()函数设置
_index变量
将所有的菜单项平铺构成一个长方形,_index表示目前在中间位置的点,如下图
显示方式
将菜单项距中心的距离(i-_indxE)作为函数变量x,具体内容查看LOLMenu::updatePosition();
操作说明
滑动四分之一菜单宽的距离为一个单位的_index,距离大于0.6小于1.0的部分进1
使用
使用这个菜单只要知道两个函数:
1.构造函数:LOLMenu::create()(由CREATE_FUNC创建)
2.添加MenuItem:void addMenuItem(cocos2d::MenuItem *item);
其它函数可以看代码
菜单代码
LOLMenu.h
#ifndef__LOL__TE_MENU_H__
#define__LOL__TE_MENU_H__
#include"cocos2d.h"
/*
*模仿英雄联盟的皮肤选择菜单
*不同点在于,英雄联盟当皮肤过多时,部分皮肤会移出边缘,不显示
*我会显示所以菜单项,向边缘移动会不断减缓
*/
:
//构造方法
CREATE_FUNC(LOLMenu);
//添加菜单项
void
addMenuItem(cocos2d::MenuItem*item);
//位置矫正修改位置for@R_772_10225@为移动方向当超过1/3,进1
//true为正向false负
//初始化
virtual
init();
//重置显示所引号设置为0
reset();
private
:
//数学计算式width*index/(abs(indeX)+CALC_A),其中CALC_A为常数
:
//菜单菜单项的索引号
_index;
//上一次菜单项的索引号
_lasTindex;
//菜单项集合,_children顺序会变化,新建数组保存顺序
cocos2d::Vector<cocos2d::MenuItem*>_items;
//监听函数
onTouchBegan(cocos2d::Touch*touch,cocos2d::Event*event);
virtual
onTouchEnded(cocos2d::Touch*touch,cocos2d::Event*event);
onTouchMoved(cocos2d::Touch*touch,cocos2d::Event*event);
//动画完结调用函数,这个主要是确定哪一个菜单项在前面
//当前被选择的item
cocos2d::MenuItem*_SELEctedItem;
};
#endif
|
#include"LOLMenu.h"
//菜单的缩小比例最小的比例是1-MENU_SCALE
代码里面还有可以设置的参数,这里没有一一例出或给出函数
USING_NS_Cc;
if
(!Layer::init())
false
;
_index=0;
->ignoreAnchorPointForPosition(
);
;
void
LOLMenu::addMenuItem(cocos2d::MenuItem*item){
->getContentSize()/2);
;
:1.1em!important; margin:0px!important; outline:0px!important; overflow:visible!important; padding:0px!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-family:Consolas,MENU_SCALE))));
->getContentSize();
(xDelta)<size.width/24&&_SELEctedItem)
)(index+0.4);
index,
width){
#include"LOLMenuDemo.h"
"4_LOL_MENU/item2_0.png"
));
"4_LOL_MENU/item4_0.png"
));
"4_LOL_MENU/item5_0.png"
));
);
);
);
Ps.这种类型的菜单在网页里会常见一些,比如优酷的动漫专题或者App Store都可以看到类似的影子,由于是平面的,菜单项的切换不是很自然,我通过倾斜来变得自然。
以上是大佬教程为你收集整理的基于Cocos2d-x的英雄联盟皮肤选择菜单全部内容,希望文章能够帮你解决基于Cocos2d-x的英雄联盟皮肤选择菜单所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。