• 大致介绍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 (本群没人,刚刚建立 -_-!!! )
  • 相关阅读:
    JS—超酷时钟
    JS—简单年历表
    ZZULI 1783 简单的求和
    ZZULI 1788 小金刚的宝藏(01背包模板)
    HDU 5172 GTY's gay friends(BestCoder Round #29)
    HDU 2157 How many ways??
    HDU 5171 GTY's birthday gift(BestCoder Round #29)
    在SQL Server 中启用 FileStream
    (转载)SQL Server的一个不显眼的功能 备份文件的分割
    面向对象建模方法与数据库建模方法的比较
  • 原文地址:https://www.cnblogs.com/Mj-NaijAm/p/13612810.html
Copyright © 2020-2023  润新知