大致介绍cocos2x

下载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*)

 

Cocosupdata:

 

该函数为虚函数可重载 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());

 

posted @ 2020-09-04 11:25  特权E5  阅读(269)  评论(0编辑  收藏  举报