#ifndef _DRAGLABEL_H_
#define _DRAGLABEL_H_ #include "cocos2d.h"
USING_NS_CC; class DragLabel : public Layer {
private:
Node* pickNode = NULL;
Point delta;
LabelTTF * lbl;
public:
/*得到 Scene 的静态方法,在AppDelegate类中需要使用*/
static Scene* getScene() {
auto sc = Scene::create();
sc->addChild(DragLabel::create());
return sc;
} /*实现init方法,并在一开始需要先调用父类 Layer 的init方法初始化父类*/
virtual bool init() {
if (!Layer::init()) {
return false;
}
// 得到窗口的大小
auto size = Director::getInstance()->getWinSize();
// Label
lbl = LabelTTF::create("I am a Label", "Arial", );
lbl->setPosition(Point(size.width / , size.height - )); this->addChild(lbl, , ); // 注册 触摸事件
this->setTouchEnabled(true); // 注册 Update 事件 : 需要实现 Node 类的 虚函数 void update(float delta)
this->scheduleUpdate(); // 注册一个 固定时间调用的事件 可以指定 间隔时间 (注意调用的方式与普通的
// Callback 不同 : schedule_selector(DragLabel::downLabel) , 方法要写类名
this->schedule(schedule_selector(DragLabel::downLabel), 1.0f); return true;
} // FixedUpdate CallBack Function
void downLabel(float delta) {
lbl->setPositionY(lbl->getPositionY() - );
} // Update Function
virtual void update(float delta) {
lbl->setPositionX(lbl->getPositionX() + 60.0 / );
} // Events
virtual void onTouchesBegan(const std::vector<Touch*>& touches, Event *unused_event) {
if (touches.size() == ) {
Object* tmp = NULL;
Point p = touches[]->getLocation();
CCARRAY_FOREACH(this->getChildren(), tmp) {
Node* node = (Node*)tmp;
if (node->getBoundingBox().containsPoint(p)) {
pickNode = node;
delta = p - node->getPosition();
break;
}
}
}
}
virtual void onTouchesMoved(const std::vector<Touch*>& touches, Event *unused_event) {
if (pickNode) {
pickNode->setPosition(touches[]->getLocation() - delta);
}
}
virtual void onTouchesEnded(const std::vector<Touch*>& touches, Event *unused_event) {
pickNode = nullptr;
} /*这个宏就是帮助我们实现那个 XXX::create() 方法*/
CREATE_FUNC(DragLabel);
}; #endif

cocos2d-x 3.0 学习笔记: 一个可以拖拽的Label及schedule的应用的更多相关文章

  1. DirectX 总结和DirectX 9.0 学习笔记

    转自:http://www.cnblogs.com/graphics/archive/2009/11/25/1583682.html DirectX 总结 DDS DirectXDraw Surfac ...

  2. dhtmlxgrid v3.0学习笔记

    dhtmlxgrid v3.0学习笔记 分类: dhtmlx JavaScript2012-01-31 15:41 1744人阅读 评论(0) 收藏 举报 stylesheetdatecalendar ...

  3. OAuth 2.0学习笔记

    文章目录 OAuth的作用就是让"客户端"安全可控地获取"用户"的授权,与"服务商提供商"进行互动. OAuth在"客户端&quo ...

  4. 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移

    不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.superviso ...

  5. vue2.0学习笔记之路由(二)路由嵌套+动画

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. vue2.0学习笔记之路由(二)路由嵌套

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. hdcms v5.7.0学习笔记

    hdcms v5.7.0学习笔记 https://note.youdao.com/ynoteshare1/index.html?id=c404d63ac910eb15a440452f73d6a6db& ...

  8. dropzonejs中文翻译手册 DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.

    http://wxb.github.io/dropzonejs.com.zh-CN/dropzonezh-CN/ 由于项目需要,完成一个web的图片拖拽上传,也就顺便学习和了解了一下前端的比较新的技术 ...

  9. DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库.

    DropzoneJS是一个提供文件拖拽上传并且提供图片预览的开源类库. 它是轻量级的,不依赖任何其他类库(如JQuery)并且高度可定制. 试试看! 将文件拖至此处或点击上传.(这仅仅是 dropzo ...

随机推荐

  1. 【python】python性能分析--待完善

    http://www.oschina.net/translate/python-performance-analysis http://blog.csdn.net/gzlaiyonghao/artic ...

  2. JAVA Date类与Calendar类【转】

    Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单介绍一下Date ...

  3. bzoj3295 动态逆序对

    Description 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数.给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计 ...

  4. 提取数据之goose使用

    1.简介 Python-goose项目是用Python重写的Goose,Goose原来是用Java写的文章提取工具.Python-goose的目标是给定任意资讯文章或者任意文章类的网页,不仅提取出文章 ...

  5. [转]IIS 允许/禁止 目录浏览

    <?xml version="1.0" encoding="utf-8"?> <configuration> <system.we ...

  6. python selenium-5根据unittest组织测试用例

    driver:浏览器driver存放地址 testcase:测试用例目录 report:测试结果保存目录 runtest.py:执行文件 test_search1.py搜索selenium,test_ ...

  7. wordpress模板里加keywords和description

    刚才我说了,wp会弄的话,功能是很强大的,插件很多,基本上你能想到的功能,插件都开发好了的.现在就来说说这个keywords和description的问题.我在网上找了些资料,总结一下,如果有引用到的 ...

  8. jstack 查看线程状态

    使用jstack pid命令可以查看JVM的线程状态,其中值得关注的线程状态有:死锁,Deadlock(重点关注)执行中,Runnable等待资源,Waiting on condition(重点关注) ...

  9. win10的坑之wifi找不到

    安装了win10一周以来,win10的坑太多太多,微软搞什么pc/mobile二合一,真是脑残行为. 首先是usb设备无缘无故找不到,据说是和杀毒软件/防火墙有关,后来是关掉了windows defe ...

  10. 【C++11新特性】 auto关键字

    原文链接: http://blog.csdn.net/xiejingfa/article/details/50469045 熟悉脚本语言的人都知道,很多脚本语言都引入了“类型自动推断”技术:比如pyt ...