cocos2dx 3.x(点击屏幕移动精灵,拖动精灵)不需要写回调函数Lua表达式
//
// MainScene.cpp
// helloworld
//
// Created by apple on 16/9/19.
//
// #include "MainScene.hpp"
Scene * MainScene::createScene()
{
auto scene = Scene::create();
//创建层
MainScene *layer = MainScene::create();
scene->addChild(layer);
return scene;
}
bool MainScene::init(){
if (!Layer::init()) {
return false;
} sprite = Sprite::create("hu.png");
sprite ->setPosition(, );
sprite->setAnchorPoint(Vec2(0.5, 0.5));
this->addChild(sprite);// 添加到层 //声明
auto listener1 = EventListenerTouchOneByOne::create();
listener1->setSwallowTouches(true); //通过 lambda 表达式 直接实现触摸事件的回掉方法
listener1->onTouchBegan = [](Touch* touch, Event* event){
auto target = static_cast<Sprite*>(event->getCurrentTarget()); Point locationInNode = target->convertToNodeSpace(touch->getLocation());
Size s = target->getContentSize();
Rect rect = Rect(, , s.width, s.height); if (rect.containsPoint(locationInNode))
{
log("sprite began... x = %f, y = %f", locationInNode.x, locationInNode.y);
target->setOpacity();//点击的时候精灵颜色变暗,255为最大值,0最小
return true;
}
return false;
}; listener1->onTouchMoved = [](Touch* touch, Event* event){
auto target = static_cast<Sprite*>(event->getCurrentTarget());
target->setPosition(target->getPosition() + touch->getDelta());
}; listener1->onTouchEnded = [=](Touch* touch, Event* event){
auto target = static_cast<Sprite*>(event->getCurrentTarget());
log("sprite onTouchesEnded.. ");
target->setOpacity();//手势松开时使精灵恢复原来的颜色
}; //将触摸事件绑定到精灵身上
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite); return true;
}
cocos2dx 3.x(点击屏幕移动精灵,拖动精灵)不需要写回调函数Lua表达式的更多相关文章
- cocos2dx 3.x(精灵的碰撞检测,点击移动与拖动精灵)
// // MainScene.hpp // helloworld // // Created by apple on 16/9/19. // // #ifndef MainScene_hpp #de ...
- cocos2d-x C++ (利用定时器自定义屏幕双击事件函数)
//GameScene.h #include "cocos2d.h" USING_NS_CC; class GameScene : public cocos2d::Layer { ...
- cocos2d-x推断sprite点击
我们经常须要推断用户的点击操作是否落于某个sprite之上,进而让这个sprite做出响应. 可是假设我们通过继承CCSprite类来实现自己的Sprite类的时候,产生的视图尺寸会充满屏幕.多个Sp ...
- Vuforia点击屏幕自动对焦,过滤UGUI的按钮
//点击屏幕自对对焦 #if UNITY_EDITOR )) #elif UNITY_ANDROID || UNITY_IPHONE && Input.GetTouch().phase ...
- android 点击屏幕关闭 软键盘
//点击屏幕 关闭输入弹出框 @Override public boolean onTouchEvent(MotionEvent event) { InputMethodManager im = (I ...
- iOS 点击return或者点击屏幕键盘消失
//定义两个文本框 UITextField *textName; UITextField *textSummary; //点击return 按钮 去掉 -(BOOL)textFieldShouldRe ...
- ios-点击屏幕,隐藏键盘
ios-点击屏幕,隐藏键盘 - (void)getFirstRegist{ //结束键盘编辑 __weak typeof(self)weakSelf = self; UITapGestureRecog ...
- appium点击屏幕(手势)
在android测试过程中,会遇到要点击一下屏幕的需求. 在appium旧版本使用下面代码点击android屏幕,没有报错.Map tap = new HashMap(); tap.put(" ...
- cocos2d-x中的导演、场景、层和精灵
场景(Scenes) 场景在cocos2d-x中是CCScene类实现的,是应用程序流中独立的一部分.一个cocos2dx应用程序可以有许多场景,但是在某一时刻,只有一个场景在运行. 比如,你有一个游 ...
随机推荐
- 如何用Apache POI操作Excel文件-----如何用Apache POI 画一个离散图
有的时候,我们需要Excel中的数据,通过一个图画,可视化的表现出来. 那么这个时候,应该如何做呢?现在就借花献佛,以Apache POI自己提供的一个例子为例,给大家演示一下POI的API 如何画图 ...
- [听听音乐]when you believe [singer: mariah carey]
movie: prince of egypt Lyrics Many nights we prayed With no proof anyone could hear In our hearts ...
- C#winform中ListView的使用
使用ListView模仿Windows系统的资源管理器界面,实现文件(夹)的浏览.重命名.删除及查询等功能,主要功能界面展示如下: 1.MainForm.cs及MainForm.Designer.cs ...
- Jquery--string
--判断string是否为空 state !== undefined || state !== null || state != ""
- iconv vs mb_convert_encoding
iconv 字符串按要求的字符编码来转换 string iconv ( string $in_charset , string $out_charset , string $str ) 将字符串 st ...
- Android Studio 快捷键使用
最近开始全面转向Android Studio开发了,经常要去查快捷键,索性汇总下,自己方便查找 IDE 按键 说明 F1 帮助 Alt(Option)+F1 查找文件所在目录位置 Alt(Opt ...
- 分享一个开源的流程图绘制软件--Diagram Designer
最近在写专利文件,在制作说明书附图时想到自己还只会用wps进行简单的绘制,于是想学习下,填补下这方面的短板.这两天查到了DiagramDesigner这个小工具,派上了大用场.用它写完了一个发明专利, ...
- php--http与https的区别
在URL前加https://前缀表明是用SSL加密的.你的电脑与服务器之间收发的信息传输将更加安全. Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定. http和ht ...
- 使用多种客户端消费WCF RestFul服务(一)——服务端
RestFul风格的WCF既然作为跨平台.跨语言.跨技术的一种方式出现,并且在ASP.NET API流行起来之前还是架构的首选技术之一,那么我们就来简要的介绍一下WCF在各个平台客户端的操作. 开发工 ...
- css背景图片定位练习(一)
首先准备一张雪碧图,Like this 背景图片的定位方法有3种,比较常用的两种为 关键字:background-position: top left; (top/bottom/cennter/lef ...