zoukankan      html  css  js  c++  java
  • 大致介绍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());

    学如逆水行舟,不进则退。 博客园技术交流群 群 号:1073255314 (本群没人,刚刚建立 -_-!!! )
  • 相关阅读:
    pow()函数结果强制转化为int造成误差的分析
    warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    博客园鼠标点击特效代码
    codeblocks更改颜色主题
    codeblocks1712设置中文
    SQl
    项目中nodejs包高效升级插件npm-check-updates
    正则表达式的整理(将金钱数变成带有千分位)
    从一个数组中过滤出另外一个数组中相关字段相等的数据
    IONIC3 打包安卓apk详细过程(大量图文)
  • 原文地址:https://www.cnblogs.com/Mj-NaijAm/p/13612810.html
Copyright © 2011-2022 走看看