下载cocos到本机 配置环境变量后
new 创建一个新的工程。
-h, --help 显示帮助信息。
-p PACKAGE_NAME, --package PACKAGE_NAME
设置工程的包名。 com.表示公司 Pri.表示个人
-d DIRECTORY, --directory DIRECTORY
设置工程存放路径。 以当前控制台目录为根目录
-l {cpp,lua,js}, --language {cpp,lua,js}
设置工程使用的编程语言,可选值:[cpp | lua | js]
所以输入这段话我们就可以看到创建一个当前目录下多了个test的文件
和安装文件模板里面cpp的内容一样 ,其实就是系统复制过来的
打开win32的工程 前面的五项项目是特定的 基本上不可能做什么改变,能改变的也就自
己创造的test
打开文件可以看到封装了两个类和主函数,打开主函数main.cpp可以看到定义了个类,给了个返回值
我们先跟进类里面看看
这里我们可以看到他用了上面的AppDelegate类
里面构造了概念的虚函数 创造了一个实例 getinstance()
在实现中用到了HelloWorldScene类
最后一句产生helloworld类模板 跟进父类
这个函数里面有一些设置地图层的函数
Layer创建
Scene创建
Sprite 创建
Cocos的按键响应:
EventListenerKeyboard类 该类用来生成一个监听事件的对象
使用其提供的create()接口来获取一个对象指针
对象指针内的onKeyPressed就是cocos提供的接口 而我们则需要填写该接口(函数指针)
c格式:
Void fun(EventKeyboard::KeyCode code, Event*)
Void (*)(EventKeyboard::KeyCode,Event*);
此函数指针可以用c++提供的全能函数指针书写格式简写为:
Auto pfun = function<void(EventKeyboard::KeyCode,Event*)>
Lamda:
Auto pfun = [](EventKeyboard::KeyCode ,Event*)->void
{
}
_eventDispatcher->addEventListenerWithSceneGraphPriority(
listenerKeyboard,
this);
cocos的添加精灵:
通常来说 我们创建一个场景scene
场景内由精灵 精灵创建参考cocos文档
创建完成后怎么把精灵添加到场景内呢
Cocos提供一个函数
Scene->addChild(spirit*)
Cocos的updata:
该函数为虚函数可重载 为scene的成员
在某个场景内每一帧都会调用update函数
当然需要手动开关scene->scheduleUpdate();
原型:
Void update(float a)
{
}
添加地图
auto map = TMXTiledMap::create("map.tmx");
map‐>setAnchorPoint(Vec2::ZERO);
map‐>setPosition(Vec2::ZERO);
addChild(map);
为heart层添加精灵
auto hearts = map‐>getObjectGroup("heart")‐>getObjects();
heart层的heat对象
auto heart = Sprite::create("heart.png"); //创建精灵
heart‐>setPosition(x, y); //设置添加坐标
this‐>addChild(heart);
键盘操作
EventListenerKeyboard*listenerKeyboard=
EventListenerKeyboard::create();
将键盘回调告诉cocos
_eventDispatcher->addEventListenerWithSceneGraphPriority
(listenerKeyboard, this);
碰撞检测
一个对象的交叉矩形包含另一个对象
rcBullet.intersectsRect(rcPlane)
切换场景
告诉导演切换背景层
Director* director = Director::getInstance();
director->replaceScene(CWelcomSence::createScene());