cocos2d-x3.0 变化不小 弃用了oc的命名规则 还有一种新的写法 lambda (在最后)

//v2.2v3.0

CCDirectorDirector

cclayer Layer

CCScene Scene

CCSpriteSprite


Scene*HelloWorld::createScene()

{

autoscene =Scene::create();

autolayer =HelloWorld::scene->addChild(layer);

returnscene;

}


boolHelloWorld::init()

if( !Layer::init() )

{

return false;

}

//3.0获得导演的单例Director::sharedDirector()改为了Director::getInstance()但是还是向下兼容的CC_DEPRECATED_ATTRIBUTE static Director* sharedDirector() { return Director::getInstance(); }

SizevisibleSize =Director::getInstance()->getVisibleSize();//获得现实区域

Pointorigin =Director::getInstance()->getVisibleOrigin();获得现实的起点坐标

// autococos2d-x3.0变动大得一面

// auto自动类型变量

//比如原来要指定变量是int还是float,现在可以用auto,在赋值的时候,编译器自动识别类型。

//这个是C++11的新标准,你可以参考C++11新标准文档。

//CC_CALLBACK_1是新的事件回调从0-3各自有自己的回调参数 细节可以看次篇博客http://www.2cto.com/kf/201401/275831.html

autocloseItem =MenuItemImage::create(

"Closenormal.png",

"CloseSelected.png",255)">CC_CALLBACK_1(menuCloseCallback,this));

closeItem->setPosition(Point(origin.x+ visibleSize.width- closeItem->getContentSize().width/2,255)">origin.y+ closeItem->height/2));

automenu =Menu::create(closeItem,138)">NULL);

menu->Point::ZERO);//以前cppxy现在左边都是Point比如颜色ccwHITE也改成了Color3B::WHITE

this->addChild(menu,138)">2);

autolabel =LabelTTF::create("Hello World","Arial",138)">24);

label->origin.y+ visibleSize.height- label->height));

addChild(label,138)">1,138)">101);


//这种事件的创建方式 比较以前 更加明了 更加直观

//触摸事件(EventListenerTouch

//键盘响应事件(EventListenerKeyboard

//加速记录事件(EventListenerAcceleration

//鼠标相应事件(EventListenerMouse

//自定义事件(EventListenerCustom

//(移除事件监听器

//移除一个已经被添加了的监听器:

//_eventdispatcher->removeEventListener(listener);

//

//移除当前事件分发器中所有监听器:

//_eventdispatcher->removeAllEventListeners();

autolistener =EventListenerTouchOneByOne::create();//创建一个单点触摸事件:EventListenerTouchAllAtOnce为多点

//设置这些事件的的回调方法

listener->onTouchBegan=CC_CALLBACK_2(onTouchBegan,138)">this);

onTouchEnded=onTouchEnded,168)">onTouchMoved=onTouchMoved,138)">this);

_eventdispatcher->addEventListenerWithSceneGraPHPriority(listener,this);事件调度器

return true}

voidHelloWorld::onTouchMoved(cocos2d::Touch*touch,Event*event){

printf("move");

boolHelloWorld::onTouchBegan(Touch* touch,0)">Event*event)

{

}

//通过点击结束区域 来设置lable的位置

HelloWorld::onTouchEnded(autolocation = touch->getLocation();

s =getChildByTag(101);

//一下 只是个旋转角度 移动的 无关紧要

s->stopAllActions();

s->runAction(Moveto::create(Point(location.x,location.y) ) );

floato = location.x- s->getPosition().x;

floata = location.y- s->y;

floatat = (float)CC_radians_TO_degrees(atanf( o/a) );

if( a <0)

{

if(o <at =180+fabs(at);

else

180-}

Rotateto::normal; word-break:normal; line-height:18px; color:rgb(88,at) );

HelloWorld::menuCloseCallback(Ref* pSender)

automenuItem =static_cast(pSender);获得点击的按钮

"pSender-tag==%d",menuItem->getTag());

MessageBox("你点击了按钮!!","提示"提示框

lambda 写法 挺有意思 下面写的 和上面功能完全一样

获得现实的起点坐标

[](Ref*sender){

static_cast(sender);getTag());

MessageBox("你点击了按钮!!",0)">提示");});

NULL);

menu->setPosition(ZERO);


();

listener->onTouchBegan= [](Touch*touch,Event*event)

return true

;

};

onTouchEnded= [](Event*event){

getLocation();

autotarget =static_cast

(event->getCurrentTarget());

autos = target->getChildByTag(

//一下 只是个旋转角度 移动的 无关紧要

s->stopAllActions();

{

at =}

onTouchMoved= [](};

事件调度器

}

cocos2d-x3.0的touch事件的更多相关文章

  1. ios – 链接点击监听器上的WKWebView?

    在WKWebView类中是否存在类似onLinkClickListener的东西?我试着谷歌搜索但没有发现任何东西,我也发现了一些关于simillar类型的stackoverflow的未解答的问题.我需要一个linkClickListener的原因是,当我点击链接并且页面尚未加载时,它不会加载网站.当页面加载了监听器时,我也可以创建一个花哨的加载屏幕.解决方法你可以这样做将WKNavigation

  2. 多个监听器用于委托iOS

    我有一个带有代理didSelectString的类搜索栏.我有一个实现委托的A类和一个实现委托的B类.但是只有来自A类的代理才被执行.代表可以有多个监听器吗?并且如何实现这一点解决方法该委托是单一消息传递协议.如果要发送更改的多个对象,则需要使用NSNotifications.您可以使用通知中心传递对象,如下所示:想要收听通知时并设置选择器

  3. [翻译]Swift编程语言——造型

    Swift的造型通过is和as操作符实现。类似的,itemisSong检查当前内容是否是一个Song实例。)在每次循环中检查向下造型的做法是合适的:例子一开始是这将当前的item向下造型为Movie。对Any和AnyObject造型Swift提供了两个特殊的类型别称表示没有指定的类型:AnyObject可以表示任意类的实例。这是因为OC语言没有明确类型的数组。可以在switch的case语句中使用is和as操作符,从仅仅已知为Any或者AnyObject类型的常量或者变量中发现特定的类型。

  4. 《swift2.0 官方教程中文版》 第2章-19类型转换

    library的类型是在它被初始化时根据它数组中所包含的内容推断来的。letaa=Songletlibrary:[AnyObject]=[Movie,Song,Movie,Song,Song]//thetypeof"library"isinferredtobe[MediaItem]/*检查类型******************************************************/varmovieCount=0varsongCount=0foriteminlibrary{ifitemi

  5. swift中提供属性监听器,可以监听属性的改变

  6. swift基础学习(06)[必要构造器,可空链式调用,错误处理,类型转换]

    swift提供了在运行对可恢复错误抛出,捕获传送和操作的高级支持表示并抛出错误:在Swift中,错误用遵循ErrorType协议类型的值来表示enumvendingMachineError:ErrorType{caseInvalidSelection//选择无效caseInsufficientFunds//金额不足caseOutOfStock//缺货}错误处理:用throwing函数传递错误用do-catch处理错误4.类型转换classMediaItem{varname:Stringinit{self.

  7. [swift]-属性监听器

    1:swift中监听属性的变化是通过属性监听器来监听OC中监听属性变化是通过set方法来监听属性变化2:代码演示意见反馈邮件:1415429879@qq.com欢迎你们的阅读和赞赏、谢谢!

  8. Swift学习:2.18 类型转换

    类型转换在Swift中使用is和as操作符实现。Swift的类型检测器能够演绎出Movie和Song有共同的父类MediaItem,所以它推断出MediaItem[]类作为library的类型。若当前MediaItem是一个Movie类型的实例,itemisMovie返回true,相反返回false。同样的,itemisSong检查item是否为Song类型的实例。事前你不知道每个item的真实类型,所以这里使用可选形式的类型转换(as?Any和AnyObject的类型转换Swift为不确定类型提供了两种

  9. Swift3.0 类型检查

    Swift的类型检测器能够演绎出Movie和Song有共同的父类MediaItem,所以它推断出MediaItem[]类作为library的类型。同样的,itemisSong检查item是否为Song类型的实例。事前你不知道每个item的真实类型,所以这里使用可选形式的类型检查(as?Any和AnyObject的类型检查Swift为不确定类型提供了两种特殊类型别名:AnyObject可以代表任何class类型的实例。在switchcase语句的内容中这种检查总是安全的。

  10. Swift - 属性监听器

    属性监听器介绍:属性监听器,监听属性的值改变,就像按钮的点击事件一样来监听其他的值改变举例:监听scrollView的contentOffset属性的改变

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部