• 关于Cocos2d-x很多奇怪的报错


    1.说什么找不到类和命名空间,但是已经包含头文件

    项目-属性-配置属性-C/C++-附加包含目录-编辑-添加新行-写上$(EngineRoot)

    2.很多语句报错,但是都没问题

    我是这样理解的,书上的代码的编码格式是UTF-8,而我们新建的cocos2d-x的解决方案是用GKB编码打开的,如果直接把文件拷贝过去,文件的编码和解决方案(整个环境)的编码不对,这时候编译起来就会各种错误。

    文件-高级保存选项-保存为UTF-8有签名的页面

    每个文件的编码格式要一样,不然会报错

    其实更好的做法是

    文件-高级保存选项-保存为UTF-8无签名的页面,行尾-Windows(CR LF),这么做可以顺便解决中文乱码问题。

    3.很多语句莫名其妙报错

    可能在一些.h文件里面忘记写USING_NS_CC;

    或者一些头文件忘记包含了。

    4.某个自己定义的类有红线

    这个类可能和系统的类名重复了,改个名字就可以了

    5.Cocos2d-X的3.0以后的版本

    ccTouchesBegan要改为onTouchesBegan

    ccTouchesMoved要改为onTouchesMoved

    ccTouchesEnded要改为onTouchesEnded

    6.Cocos2d-X的3.0以后的版本

    要把CCLayer之类的父类改为Layer

    要把CCNode之类的父类改为Node

    7.Cocos2d-X的3.0以后的版本

    CCSizeMake要改为Size

    8.Cocos2d-X的3.0以后的版本

    AppDelegate.cpp里面的applicationDidFinishLaunching方法要这样定义

    bool AppDelegate::applicationDidFinishLaunching() {
      // initialize director
      auto director = Director::getInstance();
      auto glview = director->getOpenGLView();
      if(!glview) {
        glview = GLViewImpl::createWithRect("See", Rect(0, 0, 960, 640));
        director->setOpenGLView(glview);
      }

      director->getOpenGLView()->setDesignResolutionSize(960, 640, ResolutionPolicy::SHOW_ALL);

      // turn on display FPS
      director->setDisplayStats(true);

      // set FPS. the default value is 1.0/60 if you don't call this
      director->setAnimationInterval(1.0 / 60);

      FileUtils::getInstance()->addSearchPath("res");

      // create a scene. it's an autorelease object
      auto scene = HelloWorld::createScene();

      // run
      director->runWithScene(scene);

      return true;
    }

    8.Cocos2d-X的3.0以后的版本要把资源放在Resources文件夹下的Res目录里面,或者直接放在Resources文件夹的根目录下并且根目录下不能有Res文件夹

    是受了AppDelegate.cpp里面的applicationDidFinishLaunching方法的这句话的影响

    FileUtils::getInstance()->addSearchPath("res");

    9.可能是已经在.h文件中定义类型的变量,在.cpp中又用auto定义了一遍,这个会造成系统输出:读取位置 0x0000039C 时发生访问冲突等错误,有时候也会造成运行游戏项目的时候弹出停止运行的框框。

    .h文件中

    Sprite  *confirm;

    .cpp文件中

    auto confirm = Sprite::create();

    解决方法:

    去掉多余的auto关键词

  • 相关阅读:
    互联网人25岁毕业 拿一万块钱月薪 (转)
    在windows平台编译openAL Android 库
    lua简单包装
    libevent 简单学习
    cocos2dx中使用tolua++使lua调用c++函数
    《OpenGL超级宝典》编程环境配置
    快速排序、归并排序、堆排序三种算法性能比较
    二叉树的三种遍历的递归与非递归算法
    boost之bind
    boost之内存管理
  • 原文地址:https://www.cnblogs.com/HangZhe/p/5496974.html
Copyright © 2020-2023  润新知