今天发现cocos2d-x最新版都已经升到3.9了,升级速度好快啊
创建HelloWorld项目
将下载的压缩包解压到你指定的文件夹里。
进入到目录
cocos2d-x-3.9/tools/cocos2d-console/bin/cocos.py
打开终端运行cocos.py脚本创建文件
./cocos.py new HelloWorldDemo -p com.coco2dx.org -l cpp -d ~/Desktop
或者
python cocos.py new HelloWorldDemo -p com.coco2dx.org -l cpp -d ~/Desktop
参数说明:
- HelloWorldDemo为项目名称
- -p后面接包名
- -l后面接开发语言类型,有cpp, lua, js三种类型
- -d后面接项目存放的目录
运行项目
项目创建完成后,用Xcode打开HelloWorldDemo/proj.ios_mac里的Xcode项目文件,运行项目
增加触摸事件
现在3.0以后的修改了以前2.0的版本增加触摸事件的方法,所以就贴个demo
在初始化中定义响应的触摸事件
auto sprite = Sprite::create("HelloWorld.png"); // position the sprite on the center of the screen sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); // add the sprite as a child to this layer this->addChild(sprite, 0); EventListenerTouchOneByOne *lis = EventListenerTouchOneByOne::create(); //绑定触摸的方法,onTouchMoved这些一样的,只有绑定了才会调用绑定的方法 lis->onTouchBegan =CC_CALLBACK_2(HelloWorld::onTouchBegan, this); //也可以用这个直接定义方法,不用绑定 // lis->onTouchBegan=[](Touch *touch, Event *unused_event){ // CCLOG("ssss"); // Sprite*s = static_cast<Sprite*>(unused_event->getCurrentTarget()); // if (s->getBoundingBox().containsPoint(touch->getLocation())) { // CCLOG("mmmm"); // } // return true; // }; //添加监听器到事件分发器中,设置触摸优先级,或者使用下面这个 Director::getInstance()->getEventDispatcher()->addEventListenerWithFixedPriority(lis, 10); //这个用场景里面的元素的定义优先级 // Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(lis, sprite);
触摸响应之后的函数
bool HelloWorld::onTouchBegan(Touch *touch, Event *unused_event) { CCLOG("ssss"); //通过unused_event->getCurrentTarget()来说明你想要让哪个对象响应绑定的函数 Sprite*s = static_cast<Sprite*>(unused_event->getCurrentTarget()); //然后判断你的点击点是否在对象上面来做不同的处理 if (s->getBoundingBox().containsPoint(touch->getLocation())) { CCLOG("mmmm"); } return true; }
现在是最基础的应用,发现已经和2.0差别好大,虽然不是说重头开始,但是还是要花时间多多研究下啦
参考文章:
版权属于:东哥笔记 - DongGe.org
本文链接:https://dongge.org/blog/265.html
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!