今天发现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://blog.dongge.org/265.html
本文采用知识共享署名4.0 国际许可协议进行许可。转载或大段使用必须添加本文链接,否则您将构成侵权!
微信公众号: 东哥org
