ClickAndMoveTest
关于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的更多相关文章
- Cocos2d-x 3.2 Lua演示样例 ClickAndMoveTest(点击移动測试)
Cocos2d-x 3.2 Lua演示样例 ClickAndMoveTest(点击移动測试) 本篇博客介绍Cocos2d-x 3.2Lua演示样例中点击移动的样例,在这个样例你能够得到怎样创建单点触 ...
- quick-cocos2d-x之testlua之mainMenu.lua
require "helper" require "testResource" require "ActionsTest.ActionsTest&qu ...
- 按 Eclipse 开发喜好重新布置 cocos2dx 目录层次
[tonyfield 2013.08.29 ] 1. Cocos2dx 库的改动 处于个人的固执,花一天时间重新布置了cocos2dx 2.1.4的目录层次,将android平台无关的代码全数裁剪, ...
- Cocos2d-x 3.1.1 lua-tests 开篇
Cocos2d-x 3.1.1 lua-tests开篇 本篇博客打算从研究Cocos2d-x引擎提供的測试样例来写起,笔者针对Cocos2d-x 3.1.1这个版本号来介绍怎样来学习它给我们提供的 ...
- Cocos2d-x学习笔记(20)(TestCpp源代码分析-4)
本章主要介绍testResource.h与tests.h,当中tests.h主要是存放全部用到的头文件.与菜单相相应的宏定义以及菜单数组,testResource.h主要用是资源文件定义. //tes ...
随机推荐
- HBase数据迁移至Hive
背景:需要将HBase中表xyz(列簇cf1,列val)迁移至Hive 1. 建立Hive和HBase的映射关系 1.1 运行hive shell进入hive命令行模式,运行如下脚本 CREA ...
- VC操作MPP文件
1.背景简介 因需要对Office系列进行程序操作,特需要使用COM编程. Microsoft Project生成进度计划,office家族软件,文件后缀为.mpp. 具体信息见维基百科http:// ...
- python mongodb ubuntu
mongodb install: sudo apt-get install mongodb Install pip 1. $ sudo apt-get install python-pip pytho ...
- php+tomcat 配置运行环境
为了学习php,本教程始于:2017.11.16 完成时的截图! 1.首先下载: VC 2015++ 点击下载 2. 把下载好的php复制到本目录,然后解压并且重命名为“php”,如果没有下载php, ...
- npm之使用淘宝源
暂时使用: npm --registry https://registry.npm.taobao.org i express 永久使用: npm conf set registry https://r ...
- SQLAlchemy数据类型
- cordova 常用插件
一,插件相关常用命令 1,查看所有已经安装的插件 1 cordova plugin ls 2,安装插件(以camera插件为例) 1 cordova plugin add cordova-plug ...
- iOS调试证书/公布证书制作
当已经注冊过applied 开发人员账号后,而且进行付款了,那么接下来就是证书制作了 1.登录membercenter https://developer.apple.com/membercenter ...
- sqlserver 创建对某个存储过程执行情况的跟踪
有时候需要抓取执行存储过程时某个参数的值,有时候程序调用存储过程执行后结果不太对,不确定是程序的问题还是存储过程的问题,需要单独执行存储过程看结果 即可用下面的方法 --=============== ...
- 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.情 ...