zoukankan      html  css  js  c++  java
  • 关于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关键词

  • 相关阅读:
    php基本语法
    php的环境搭建
    Java数组及其内存分配
    最快的maven镜像
    配置maven到运行
    配置maven
    maven的eclise配置
    mysql中bit_count和bit_or函数的含义
    怎样查看MySQL是否区分大小写
    linux忘记mysql密码找回方法
  • 原文地址:https://www.cnblogs.com/HangZhe/p/5496974.html
Copyright © 2011-2022 走看看