关于ccTouchesEnded看这个博客即可

http://blog.linguofeng.com/archive/2012/09/12/cocos2d-x-touch.html

class ClickAndMoveTestScene : public TestScene
{
public:
virtual void runThisTest();
}; class MainLayer : public CCLayer
{
public:
MainLayer();
virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);
};
void ClickAndMoveTestScene::runThisTest()
{
//创建目标图层
CCLayer* pLayer = new MainLayer();
pLayer->autorelease();
//添加图层
addChild(pLayer);
//替换场景,让改场景为运行时场景
CCDirector::sharedDirector()->replaceScene(this);
}
//目标图层类的构造函数
MainLayer::MainLayer()
{
//开启多点触控
setTouchEnabled(true); CCSprite* sprite = CCSprite::create(s_pPathGrossini);
//设置背景颜色
CCLayer* layer = CCLayerColor::create(ccc4(,,,));
addChild(layer, -); addChild(sprite, , kTagSprite);
sprite->setPosition( ccp(,) );
//对精灵做动作,这里精灵和背景层不在同一树种
sprite->runAction( CCJumpTo::create(, ccp(,), , ) );
//对背景层做动作,1.淡进,2.淡出,重复执行这两个动作
layer->runAction( CCRepeatForever::create(
(CCActionInterval*)( CCSequence::create(
CCFadeIn::create(),
CCFadeOut::create(),
NULL) )
) );
}
//处理松开事件
void MainLayer::ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent)
{
//获取第一个点
CCSetIterator it = pTouches->begin();
CCTouch* touch = (CCTouch*)(*it); CCPoint location = touch->getLocation(); CCNode* s = getChildByTag(kTagSprite);
//停止所有动作
s->stopAllActions();
//向该点移动
s->runAction( CCMoveTo::create(, ccp(location.x, location.y) ) );
//计算精灵的旋转角度,要让头部向着移动方向
float o = location.x - s->getPosition().x;
float a = location.y - s->getPosition().y;
//先通过atoanf 计算出反正弦弧度值,然后通过宏转换成角度值
float at = (float) CC_RADIANS_TO_DEGREES( atanf( o/a) );
//在Cocos2D-x中,顺时针为正,逆时针为负
if( a < )
{
if( o < )
at = + fabs(at);//为什么这里是180在纸上画一下就明白了
else
at = - fabs(at);
}
//执行旋转动作
s->runAction( CCRotateTo::create(, at) );
}

ClickAndMoveTest的更多相关文章

  1. Cocos2d-x 3.2 Lua演示样例 ClickAndMoveTest(点击移动測试)

    Cocos2d-x 3.2 Lua演示样例 ClickAndMoveTest(点击移动測试)  本篇博客介绍Cocos2d-x 3.2Lua演示样例中点击移动的样例,在这个样例你能够得到怎样创建单点触 ...

  2. quick-cocos2d-x之testlua之mainMenu.lua

    require "helper" require "testResource" require "ActionsTest.ActionsTest&qu ...

  3. 按 Eclipse 开发喜好重新布置 cocos2dx 目录层次

    [tonyfield 2013.08.29 ] 1.  Cocos2dx 库的改动 处于个人的固执,花一天时间重新布置了cocos2dx 2.1.4的目录层次,将android平台无关的代码全数裁剪, ...

  4. Cocos2d-x 3.1.1 lua-tests 开篇

    Cocos2d-x 3.1.1 lua-tests开篇   本篇博客打算从研究Cocos2d-x引擎提供的測试样例来写起,笔者针对Cocos2d-x 3.1.1这个版本号来介绍怎样来学习它给我们提供的 ...

  5. Cocos2d-x学习笔记(20)(TestCpp源代码分析-4)

    本章主要介绍testResource.h与tests.h,当中tests.h主要是存放全部用到的头文件.与菜单相相应的宏定义以及菜单数组,testResource.h主要用是资源文件定义. //tes ...

随机推荐

  1. HBase数据迁移至Hive

    背景:需要将HBase中表xyz(列簇cf1,列val)迁移至Hive 1. 建立Hive和HBase的映射关系     1.1 运行hive shell进入hive命令行模式,运行如下脚本 CREA ...

  2. VC操作MPP文件

    1.背景简介 因需要对Office系列进行程序操作,特需要使用COM编程. Microsoft Project生成进度计划,office家族软件,文件后缀为.mpp. 具体信息见维基百科http:// ...

  3. python mongodb ubuntu

    mongodb install: sudo apt-get install mongodb Install pip 1. $ sudo apt-get install python-pip pytho ...

  4. php+tomcat 配置运行环境

    为了学习php,本教程始于:2017.11.16 完成时的截图! 1.首先下载: VC 2015++ 点击下载 2. 把下载好的php复制到本目录,然后解压并且重命名为“php”,如果没有下载php, ...

  5. npm之使用淘宝源

    暂时使用: npm --registry https://registry.npm.taobao.org i express 永久使用: npm conf set registry https://r ...

  6. SQLAlchemy数据类型

  7. cordova 常用插件

    一,插件相关常用命令   1,查看所有已经安装的插件 1 cordova plugin ls 2,安装插件(以camera插件为例) 1 cordova plugin add cordova-plug ...

  8. iOS调试证书/公布证书制作

    当已经注冊过applied 开发人员账号后,而且进行付款了,那么接下来就是证书制作了 1.登录membercenter https://developer.apple.com/membercenter ...

  9. sqlserver 创建对某个存储过程执行情况的跟踪

    有时候需要抓取执行存储过程时某个参数的值,有时候程序调用存储过程执行后结果不太对,不确定是程序的问题还是存储过程的问题,需要单独执行存储过程看结果 即可用下面的方法 --=============== ...

  10. eclipse could not create the Java Vitual Machine

      eclipse could not create the Java Vitual Machine CreateTime--2018年4月27日11:07:15 Author:Marydon 1.情 ...