2048最近火到不行,今天就教大家做一个自己的2048~
2dx版本cocos2d-2.1rc0-x-2.1.3
分析:
游戏输入:
手势滑动来判断是向哪个方向来滑动.
所以,第一部分我来教大家来做接收手势这部分.
首先,在.h文件里重写生命周期函数
用来注册和移除委托。
//重写生命周期函数
virtual void onEnter();
virtual void onExit();
实现:
void game2048::onEnter()
{
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, false);
CCLayer::onEnter();
}
void game2048::onExit()
{
CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
CCLayer::onExit();
}
一定要记得,委托一般都是成对出现的,有注册就要对应有移除。如果你想对一个CCnode进行委托监听,那么创建这个类的时候就可以进行监听了,而当本类退出时也可以对应删除其监听。
所以一班情况,推荐大家将触屏时间的注册与移除代码都写在onEnter和onExit里。如果注册委托不及时移除掉,就有可能造成程序的异常退出。
接下来,定义一些变量,和触摸事件后的方法。
//坐标
float beginX;
float beginY;
float endX;
float endY;
//滑向上下左右的方法
bool swipeUp();
bool swipeDown();
bool swipeLeft();
bool swipeRight();
bool game2048::swipeUp()
{
CCLOG("doUp");
return true;
}
bool game2048::swipeDown()
{
CCLOG("doDown");
return true;
}
bool game2048::swipeLeft()
{
CCLOG("doLeft");
return true;
}
bool game2048::swipeRight()
{
CCLOG("doRight");
return true;
}
先不写实现,只是为了测试触屏事件,CCLOG即可~
然后,我们重写触屏回调函数
virtual bool ccTouchBegan(cocos2d::CCTouch *touch, cocos2d::CCEvent *unused_event);
virtual void ccTouchEnded(cocos2d::CCTouch *touch, cocos2d::CCEvent *unused_event);
bool game2048::ccTouchBegan(cocos2d::CCTouch *touch, cocos2d::CCEvent *unused_event)
{
//记录初始点
CCPoint curPoint = touch->getLocation();
touch->getLocationInView();
beginX=curPoint.x;
beginY=curPoint.y;
return true;
}
void game2048::ccTouchEnded(cocos2d::CCTouch *touch, cocos2d::CCEvent *unused_event)
{
//获取X轴和Y轴的移动范围
CCPoint curPoint=touch->getLocation();
endX=beginX - curPoint.x;
endY=beginY - curPoint.y;
//判断X轴和Y轴的移动距离,如果X轴的绝对值大,则向左右滑动,如果Y轴的绝对值大,则向上下滑动
if(abs(endX) > abs(endY))
{
//判断向左还是向右
if(endX + 5 >= 0)
{
swipeLeft();
}
else
{
swipeRight();
}
}
else
{
//判断手势向上还是向下
if(endY + 5 >= 0)
{
swipeDown();
}
else
{
swipeUp();
}
}
}
OK,这样简单的触屏测试就写完了~
看看效果~
OK,接下来更精彩~
- 大小: 14.2 KB
分享到:
相关推荐
一系列cocos2dx相关的pdf书籍文档,方便热爱cocos2dx的同学学习
Cocos2dx 教程之 ClockDemo,SweetLover 发布原创教程拓展了 Cocos2dx 官方的教程案例,此为 SweetLover 指定的代码及其资源,视频教程可参考:http://v.youku.com/v_show/id_XODk3Nzk2MTc2.html?firsttime=2.509
Cocos2dx入门初级教程
cocos2dx斗地主服务端,客户端在我的资源列表中
Cocos2dx开发游戏框架搭建.pdf
cocos2d-x进阶教程1_4Lua中函数、条件判断语句.mp4 cocos2d-x进阶教程1_5Lua中循环语句和逻辑运算关键字.mp4 cocos2d-x进阶教程1_6LuaTable使用1.mp4 cocos2d-x进阶教程1_7LuaTable使用2.mp4 cocos2d-x进阶教程1_8...
包括环境搭建,基础和高级教程,微信打飞机,中国象棋等项目的讲解
我的其他资源都是免费的,是对于c语言初学者和想初学游戏者的帮助比较大的,其中有单片机,ARM,数据结构,window编程,MFC编程,cocos2dx,unity3d自己编写的小游戏。个人博客地址:http://blog.csdn.net/luoyikun...
Cocos2dx入门初级教程,方便想学习Cocos2dx的入门初学者,也方便入门者回头的复习用书。
手把手教你如何在Android平台下cocos2dx开发环境的搭建。
cocos2dx引擎做的连连看源码,学习cocos2dx游戏开发的良好教才
本人也是从零开始学习利用cocos2dx游戏引擎来开发游戏,所以,看了这本书,感觉挺适合初学者来看!
cocos2dx3.2坦克大战,这是本人参考一些教程自己写的小游戏,还不是很完善,但基本都已经实现,仅供学习用。
该文档详细说明了如何自定cocos2dx-lua(quick) C++接口并导出接口供lua端调用,从环境配置,文件编译,接口测试,平台(Android和Ios)编译一步一步进行详细说明,按照文档一步步操作就能生成你想要的C++接口,简单...
知易Cocos2D-iPhone_游戏开发 教程